|
|
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. |