Allow deferred declarations in Entity + architecture pairs.
Capability/request summary
some verification methodologies are now using multiple architecture on an entity to define different tests. To make certain object interrogation simpler and better contained (via external names for example) it would be advantageous to allow deferred constants in entities and architecture pairs. Eg:
entity test_ctrl_e is
constant test_val : integer;
end entity;
architecture test1 of test_ctrl_e is
constant test_val : integer := 1;
beign
end architecture;
architecture test2 of test_ctrl_e is
constant test_val : integer := 2;
beign
end architecture;
-- testbench:
architecture harness of tb is
component test_ctrl_e is
end component;
begin
ctrl_inst : test_ctrl_e;
process
begin
report "test val is " & to_string( <<constant ctrl_inst.test_val : integer>> );
wait;
end process;
end architecture;
Current Status
Currently deferred constants are only allowed in package + body.
Questions
Is this likely a breaking change? as constants declared in architecture would currently override ones declared in architecture?