CARRY_SUM Primitive
The CARRY_SUM primitive is a two-input, two-output
primitive that designates the carry-out and sum-out logic for a
function. The cout port of the primitive acts as the
carry-in for the next element of the carry chain. The carry
function implements fast carry-chain logic for functions such as
adders and counters.
When you use a CARRY_SUM primitive, you must
observe the following rules:
- The
coutport of theCARRY_SUMprimitive can feed one or two cones of logic. If theCARRY_SUMprimitive feeds two cones of logic, then one and only one of the cones of logic must be buffered by anotherCARRY_SUMprimitive. In this case, both cones of logic are implemented in the same logic cell. You must follow this rule to tie down the sum and carry-out functions for the first stage of an adder or counter. - A cone of logic that feeds the
cinport of aCARRY_SUMprimitive can have up to two inputs. A third input is allowed only if it is aCARRY_SUMinput, or aqfeedbackfrom the register. - The
coutport of theCARRY_SUMprimitive cannot feed anOUTPUTpin. - The
cinport of theCARRY_SUMprimitive cannot be fed by anINPUTpin. - The
coutport of two differentCARRY_SUMprimitives cannot feed the same gate.
You can direct the Compiler to automatically insert
CARRY_SUM primitives during logic synthesis with the
Auto Carry
Chains logic option.