Return to Support Page
 homesearchagentssupportask xilinxmap

Answers Database


XABEL-CPLD: Controlling optimization using 'keep' and 'LOGIC_OPT'


Record #1846

Product Family:  Software

Product Line:  Data I/O

Problem Title:
XABEL-CPLD:  Controlling optimization using 'keep' and 'LOGIC_OPT'


Problem Description:
The CPLD Fitter will attempt to reduce the number of logic
levels for all signal paths.  This means that the resulting
logic functions have a wider signal fan-in and may require more
product terms than if some of the reduced combinatorial nodes
were retained.

If the design is running out of function block inputs or
product terms, and it has combinatorial nodes which are being
collapsed, you can selectively control the optimization, and
preserve selected nodes.  This can free up additional function
block inputs and/or macrocell product terms at the expense of
the macrocells used to implement the combinatorial nodes.



Solution 1:

To prevent optimization of selected nodes, you must instruct
BOTH the Abel compiler AND the CPLD fitter to preserve the
specified nodes.  The 'keep' attribute will tell Abel not to
collapse the node, and the 'LOGIC_OPT' property statement will
tell the Fitter not to optimize it.

In the ABEL file, the following 2 lines must be included in the
Declarations section to prevent the collapsing of the node
MY_NODE.

MY_NODE    node istype 'com, keep';
XEPLD Property 'LOGIC_OPT OFF MY_NODE';






Solution 2:

In M1 (EDIF flow), the KEEP attribute tells both the ABEL compiler and the CPLD
fitter to preserve the node; the LOGIC_OPT attribute is no longer needed and is
obsolete on M1.



End of Record #1846

For the latest news, design tips, and patch information on the Xilinx design environment, check out the Xilinx Expert Journals!

© 1998 Xilinx, Inc. All rights reserved
Trademarks and Patents