When I run CPLDFit on my design, an error message similar to the following occurs:
"ERROR:Cpld:1063 - Design contains 166 macrocells, exceeds device limit 128."
A macrocell consists of a combinatorial section followed by a register. The number of macrocells in each device is listed in the device data sheet. You can access device family data sheets at:
You can use the following method to determine the absolute minimum number of macrocells in your design:
1. Find the total number of combinatorial outputs and bidirectional outputs in your design.
2. Find the total number of registers and latches in your design.
3. Add 1. and 2. to find a minimum macrocell requirement. This number is the absolute minimum number of macrocells that your design can use, regardless of the CPLD architecture or synthesis tool selected.
After you perform these steps, and the result is far below the number reported in the error message, the constraints (timing constraints or fitting options) in your design are probably causing the design to be fit in such a way that it consumes more macrocell resources.
Try fitting your design using the Optimize Density template (Implementation property for Fit process) to direct the Fitter to make the best use of logic in terms of density at the cost of speed. Another option for minimizing the number of registers in your design is to use binary encoding for state machine encoding instead of one-hot encoding.