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 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 primitive instantiation, go to Using a Quartus® Prime Logic Function.