UPGRADE YOUR BROWSER

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)

Description

Keywords: XABEL, CPLD, CARRY

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.

Solution

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
equations.

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