|
You can limit the extent of logic synthesis by changing NODE
variables into SOFT and LCELL primitives. NODE
variables and LCELL primitives provide the greatest control over logic synthesis. SOFT primitives provide less control over logic synthesis.
NODE
variables, which are declared with a Node Declaration in the Variable Section, place very few restrictions on logic synthesis. During synthesis, the Logic Synthesizer replaces each instance of a NODE
variable with the logic that the variable represents. It then minimizes the logic to fit into a single logic cell. This method usually yields the greatest speed, but may result in logic that is too complex or hard to fit.
SOFT
buffers provide more control over resource usage than NODE
variables. The Logic Synthesizer chooses when to replace instances of SOFT primitives with LCELL primitives. SOFT
buffers may help eliminate logic that is too complex and make the project easier to fit, but may increase logic cell utilization and reduce speed performance.
LCELL primitives provide the most control. The Logic Synthesizer minimizes all logic that drives an LCELL primitive so that the logic fits into a single logic cell. LCELL primitives are always implemented in a logic cell, and they are never removed from the project even if they are fed by a single input. If the project is minimized so that an LCELL primitive is fed by a single input, you can use a SOFT primitive instead of an LCELL primitive so that the SOFT primitive is removed during logic synthesis.
The Quartus® II software provides several logic options that automatically insert or remove SOFT
and LCELL
buffers at appropriate locations in the project.
The following illustration shows two versions of a Text Design File (.tdf): one is implemented with NODE
variables and one with SOFT primitives. In nodevar
, the variable odd_parity
is declared as a NODE
, and then assigned the value of the Boolean expression d0 $ d1 $ ... $ d8
. In softbuf
, the Compiler will replace some of the SOFT primitives with LCELL primitives during processing to improve device utilization.
TDF with NODE Variables: | TDF with SOFT Primitives: |
SUBDESIGN nodevar ( ) VARIABLE odd_parity : NODE; BEGIN odd_parity = d0 $ d1 $ d2 $ d3 $ d4 $ d5 $ d6 $ d7 $ d8; END; |
SUBDESIGN softbuf (
) VARIABLE odd_parity : NODE; BEGIN odd_parity = SOFT(d0 $ d1 $ d2) $ SOFT(d3 $ d4 $ d5) $ SOFT(d6 $ d7 $ d8); END; |
- PLDWorld - |
|
Created by chm2web html help conversion utility. |