C
chris
Guest
Hi, <p>I'm trying to used the primitive <BR>
ROM128X1 in my design and I want to initialise the attribute INIT of this primitive. <BR>
This is working fine when I use only one primitive like : <p>---------------------------- <BR>
architecture ... <p>component ROM128X1 <BR>
&nbsp;-- synthesis translate_off <BR>
&nbsp;generic (INIT : bit_vector := X"128"); <BR>
&nbsp;-- synthesis translate_on <BR>
&nbsp;port ( <BR>
&nbsp;&nbsp;&nbsp;&nbsp;O : out std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A0 : in std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A1 : in std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A2 : in std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A3 : in std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A4 : in std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A5 : in std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A6 : in std_ulogic <BR>
&nbsp; <BR>
&nbsp;end component; <p>attribute INIT : string; <BR>
attribute INIT of U : label is ".."; <p>begin <BR>
&nbsp;&nbsp;&nbsp;&nbsp;U : ROM128X1 <BR>
&nbsp;&nbsp;&nbsp;&nbsp;port map( <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;O => data_out, <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A0 => addr_in(0), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A1 => addr_in(1), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A2 => addr_in(2), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A3 => addr_in(3), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A4 => addr_in(4), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A5 => addr_in(5), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A6 => addr_in(6) <BR>
&nbsp;&nbsp;&nbsp;&nbsp; <BR>
end; <BR>
---------------------------- <p>but in the case I used a generate statement like : <p>---------------------------- <BR>
begin <BR>
&nbsp;&nbsp;&nbsp;&nbsp;t : for i in 0 to 1 generate <BR>
&nbsp;&nbsp;&nbsp;&nbsp;U : ROM128X1 <BR>
&nbsp;&nbsp;&nbsp;&nbsp;port map( <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;O => data_out(i), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A0 => addr_in(0), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A1 => addr_in(1), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A2 => addr_in(2), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A3 => addr_in(3), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A4 => addr_in(4), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A5 => addr_in(5), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A6 => addr_in(6) <BR>
&nbsp;&nbsp;&nbsp;&nbsp; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;end generate; <BR>
end; <BR>
--------------------------- <p>what name of instance do I have to use to declare the attributes INIT. <p>Thanks
ROM128X1 in my design and I want to initialise the attribute INIT of this primitive. <BR>
This is working fine when I use only one primitive like : <p>---------------------------- <BR>
architecture ... <p>component ROM128X1 <BR>
&nbsp;-- synthesis translate_off <BR>
&nbsp;generic (INIT : bit_vector := X"128"); <BR>
&nbsp;-- synthesis translate_on <BR>
&nbsp;port ( <BR>
&nbsp;&nbsp;&nbsp;&nbsp;O : out std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A0 : in std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A1 : in std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A2 : in std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A3 : in std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A4 : in std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A5 : in std_ulogic; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;A6 : in std_ulogic <BR>
&nbsp; <BR>
&nbsp;end component; <p>attribute INIT : string; <BR>
attribute INIT of U : label is ".."; <p>begin <BR>
&nbsp;&nbsp;&nbsp;&nbsp;U : ROM128X1 <BR>
&nbsp;&nbsp;&nbsp;&nbsp;port map( <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;O => data_out, <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A0 => addr_in(0), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A1 => addr_in(1), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A2 => addr_in(2), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A3 => addr_in(3), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A4 => addr_in(4), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A5 => addr_in(5), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A6 => addr_in(6) <BR>
&nbsp;&nbsp;&nbsp;&nbsp; <BR>
end; <BR>
---------------------------- <p>but in the case I used a generate statement like : <p>---------------------------- <BR>
begin <BR>
&nbsp;&nbsp;&nbsp;&nbsp;t : for i in 0 to 1 generate <BR>
&nbsp;&nbsp;&nbsp;&nbsp;U : ROM128X1 <BR>
&nbsp;&nbsp;&nbsp;&nbsp;port map( <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;O => data_out(i), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A0 => addr_in(0), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A1 => addr_in(1), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A2 => addr_in(2), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A3 => addr_in(3), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A4 => addr_in(4), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A5 => addr_in(5), <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A6 => addr_in(6) <BR>
&nbsp;&nbsp;&nbsp;&nbsp; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;end generate; <BR>
end; <BR>
--------------------------- <p>what name of instance do I have to use to declare the attributes INIT. <p>Thanks