See LRM section 4.3.1.1
Rules and Examples |
constant BUS_WIDTH : integer := 8; constant FOUR_ONES : std_logic_vector(3 downto 0):= "1111"; constant PERIOD : time := 10 ns; constant MAX_SIM_TIME : time:= 50 * PERIOD;
type T_CLOCK_TIME is ARRAY(3 downto 0) of integer range 0 to 9; constant TWELVE_O_CLOCK : T_CLOCK_TIME := (1,2,0,0);
package P is constant C : integer; end P; package body P is constant C : integer := 200; end P;
process type T_DATA is array (0 to 3) of bit_vector(7 downto 0); constant DATA : T_DATA := ("00001000", "00010001", "00100010", "01000011"); begin for I in DATA'range loop serialize_byte(DATA(I),DOUT); end loop; end process;
Synthesis Issues |
Constants are supported for synthesis, providing they are of a type acceptable to the logic synthesis tool. They are either synthesised as connections to logic '1' or '0', or are used to help minimise the number of gatyes required. Deferred constants may not bwe supported.
Whats New in '93 |
Constants and constant expressions may also be associated with input ports of component instances in VHDL-93. In VHDL-87 this was only possible via an intermediate signal.