[an error occurred while processing this directive]
|
Компоненты вы продекларировали. Но это только интерфейсы. А архитектурные тела кто к ним привязывать будет? Компилятор сам догадываться не обязан. :-)
Вообще непонятно, зачем это надо. component RAMB16_S18_S18 ведь уже описан в UNISIM.VComponents.all. Вы фактически создаете новый компонент с таким именем, но поведенческого описания этого компонента ни даете. Поэтому компилятор и ругается. Надо смотреть в сторону configuration. Но я эту штуку не использовал...
Я делаю так. Вот, например, мне нужен SRL16. Но при этом я хочу получить код, одинаковый для симуляции и синтеза.
-- synthesis translate_off library UNISIM; use UNISIM.VComponents.SRL16; -- synthesis translate_on
entity MyEntity is
(...);
attribute box_type : string; -- XST
end MyEntity.
architecture rtl of MyEntity is
-- declare black box component
component SRL16 is port( D : in std_logic; CLK : in std_logic; A0 : in std_logic; A1 : in std_logic; A2 : in std_logic; A3 : in std_logic; Q : out std_logic ); end component; attribute box_type of SRL16 : component is "primitive";
-- synthesis translate_off -- simulaton models
-- associate black box interface with simulation model
for all: SRL16 use entity UNISIM.SRL16(SRL16_V); -- synthesis translate_on
begin
...
mapSRL16: SRL16 port map( D => D, CLK => Clk, A0 => '0', A1 => '0', A2 => '1', A3 => '1', Q => Q );
...
end rtl;
E-mail: info@telesys.ru