Specifications
How to Control the Implementation of VHDL
VHDL Reference Manual 4-17
or2: out std_logic);
end component;
attribute macrocell: boolean;
attribute macrocell of submod_def: component is true;
begin
myblock: submod_def
port map(in1=>a, in2=>b, and1=>out1, or2=>out2);
end schematic;
In this example, the hierarchical reference to the submod_def design
unit will result in a reference being generated for an external module
named submod_def. The VHDL synthesizer will not attempt to find or
synthesize the submod_def design unit.
To use the macrocell attribute when referencing hard and soft
macros, you must specify the actual name of the macro, as defined in
the appropriate device kit documentation, and provide component port
mapping that exactly matches the argument list of the hard or soft
macro. Refer to your device kit documentation for information about
available hard or soft macros.
Critical Attribute
The critical attribute allows you to flag signals used in your design as
nodes to be preserved in the final implementation. This is particularly
useful for debugging. To flag a signal as a node (and prevent its being
collapsed out of the design), you must first define the critical attribute
as a Boolean type:
attribute critical: boolean;
and then write an attribute statement for the desired signal (or
signals):
attribute critical of a,b,c: signal is true;
If you have some knowledge of the structure of your design, you may
be able to improve the timing characteristics of a large, combinational
function by using the critical attribute to flag certain signals in the
design. One example of this is a carry chain, in which a critical flag
applied to each carry signal can result in the individual logic blocks
operating faster than if the entire combinational circuit was optimized
for a minimum gate count.
Note: When you specify the critical attribute for a signal, the resulting
preserved node (or nodes) may have an unexpected name. For
example, if the signal is used at a lower level in a hierarchical design, it
is possible that the name will be prefixed with instance or block labels,
or will have a numeric suffix. If the signal is redundant, it may be
reduced out of the design entirely, even with the critical attribute.
Device fitting software may also modify or remove signals that have
been flagged as critical, depending on the device-specific
optimizations performed by the software.