-- -- -- -- Illustrates GHDL 0.29.1 WinXP problem with attributes and aliases -- -- Problem: -- A signal attribute, placed after an alias on the signal, causes errors like this: -- -- .\alias_bug.vhd:35:13: alias "address_ms" does not denote the entire object -- -- -- Workaround: move the attribute before the alias -- library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity alias_bug is end alias_bug; architecture test of alias_bug is signal processor_address : std_logic_vector(15 downto 0); -- -- if alias is _NOT_ declared, error goes away -- alias address_ms : std_logic_vector(3 downto 0) is processor_address(15 downto 12); -- -- if the keep attribute is placed _BEFORE_ the alias, no error occurs -- attribute keep : boolean; attribute keep of processor_address: signal is TRUE; begin processor_address <= X"1234"; end test;