|
FUNCTION CARRY_SUM (sin, cin) RETURNS (sout, cout)
COMPONENT CARRY_SUM PORT (sin, cin : IN STD_LOGIC; sout, cout : OUT STD_LOGIC;); END COMPONENT;
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.
The CARRY_SUM primitive is not supported for MAX® 3000 or MAX 7000 devices. |
- PLDWorld - |
|
Created by chm2web html help conversion utility. |