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 the CARRY_SUM
primitive can feed one or two cones of logic. If the
CARRY_SUM primitive feeds two cones of logic, then one
and only one of the cones of logic must be buffered by another
CARRY_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 a
CARRY_SUM primitive can have up to two inputs. A third
input is allowed only if it is a CARRY_SUM input, or a
qfeedback from the register.
- The cout port of the CARRY_SUM
primitive cannot feed an OUTPUT pin.
- The cin port of the CARRY_SUM
primitive cannot be fed by an INPUT pin.
- The cout port of two different
CARRY_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.
Note: For information about Quartus® Prime Standard Edition primitive instantiation, go to Using a Quartus® Prime Standard Edition
Logic Function.