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
cout
port of theCARRY_SUM
primitive can feed one or two cones of logic. If theCARRY_SUM
primitive feeds two cones of logic, then one and only one of the cones of logic must be buffered by anotherCARRY_SUM
primitive. 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
cin
port of aCARRY_SUM
primitive can have up to two inputs. A third input is allowed only if it is aCARRY_SUM
input, or aqfeedback
from the register. - The
cout
port of theCARRY_SUM
primitive cannot feed anOUTPUT
pin. - The
cin
port of theCARRY_SUM
primitive cannot be fed by anINPUT
pin. - The
cout
port of two differentCARRY_SUM
primitives 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.