We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 17524

6.1i CPLD - "ERROR:Cpld:1063 - Design contains XXX macrocells, exceeds device limit YYY"


General Description:

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.

AR# 17524
Date Created 09/03/2007
Last Updated 12/15/2012
Status Active
Type General Article