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# 1669

XABEL-CPLD: Out Of Memory error or long compile times (@CARRY directive)



Urgency: Standard

General Description:
Designs that have wide with arithmetic functions, 16 bit adders
for example, may take a long time to compile or cause an
Out of Memory error to appear.


Use the @CARRY compiler directive to limit the bit width of
arithmetic functions.

Syntax: @carry <expression>;

Use: The @CARRY directive specifies how adders, counters,
and comparators are generated, enabling you to
reduce the amount of logic required for processing
large arithmetic functions.

For example, for a 16-bit adder, an @CARRY statement
with an expression that results in 4 would divide
the 16-bit adder into four 4-bit adders, creating
intermediate nodes, thereby reducing the amount of
logic generated. @CARRY 4 limits the lookahead
carry by generating chains of 4-bit adders and
comparators for all subsequent adder and comparator

If the @CARRY directive is not used or @CARRY 0 is
specified, full lookahead carry is generated.

Example: Equations
@CARRY 4; " generate adder chain
[s16..s0] = [.x., a15..a0] + [.x., b15..b0];
AR# 1669
Date Created 01/08/1997
Last Updated 08/27/2001
Status Archive
Type General Article