When fitting a CPLDdesign, I encounter an error message similar to the following during execution of CPLDFit (formerly Hitop in 3.1i and earlier):
"Insufficient number of product terms: needs at least 194 but only 180 left after allocating other resources.
Device XC9536XL-PC44 was disqualified."
It is probable that the fitter is attempting to collapse all logic into the fewest levels of logic for the highest speed performance. A drawback to this is that shared logic becomes duplicated and therefore consumes additional product term resources.
Example of collapsed equations:
Dataout_one <= a or b or c or d; (1 MC, 4 product terms)
Dataout_two <= a or b or c or e; (1 MC, 4 product terms)
Same equations, but sharing logic:
Dataout_one <= node or d; (1 MC, 2 product terms)
Dataout_two <= node or e; (1 MC, 2 product terms)
node <= a or b or c; (1 MC, 3 product terms)
The above example shows how the creation of an extra node saves product terms.
To resolve this problem, try the following solutions:
1. Re-fit the design using density mode. This tells the fitter to allow more sharing at the cost of speed.
2. Adjust the Product Term limit. Lower this value to allow for more levels of logic, which allows for more logic sharing.
3. Select a larger device.