Search code examples
vhdl

VHDL - Conditional attribute declaration depending on a generic


How do I write a code segment which would evaluate a generic and create (or not create) an attribute accordingly?

Example :

if G_MY_GENERIC then
    attribute my_attribute_typ : string;
    attribute my_attribute_typ of signal_having_an_attr : signal is "value";
else
    --nothing is created
end if;

Solution

  • It is perfectly possible to write something similar to that, but the attribute will only be visible in the scope of the generate statement.

    g_something: if test_condition generate
       attribute my_attribute_typ : string;
       attribute an_attribute of my_attribute_typ: signal is "value";
    begin
        -- attribute is visible in this scope
    
        p_my_process: process(clk)
        begin
            -- attribute is also visible here
        end process;
    end generate;
    
    -- but not here