V
valentin tihomirov
Guest
Here is synthax:
label : entity lib_name.entity_name(architecture_name) port map (.....);
The problem is to use any different library rather than 'work'. Even
simulator refuses to compile this:
-- declare libs
library IEEE, LibraryA, LibraryB;
use IEEE.STD_LOGIC_1164.ALL;
--interface
entity MULTILIB_DESIGN is
port (
A, B: in std_logic;
O : out std_logic
);
end MULTILIB_DESIGN;
--implementation
architecture RTL of AND2 is
signal AND_O, XOR_O: std_logic;
begin
AND_U: entity libraryA.AND2(RTL) port map (A, B, AND_O); -- Unknown
identifier LibraryA
XOR_U: entity libraryB.XOR2(RTL) port map (A, B, XOR_O);-- Unknown
identifier LibraryB
O <= AND_O or XOR_O;
end RTL;
As far as I can understand, the idea of libraries is to isolate primitives
into namespaces. This is what I want to achieve. The VHDL must be
synthesizable.
label : entity lib_name.entity_name(architecture_name) port map (.....);
The problem is to use any different library rather than 'work'. Even
simulator refuses to compile this:
-- declare libs
library IEEE, LibraryA, LibraryB;
use IEEE.STD_LOGIC_1164.ALL;
--interface
entity MULTILIB_DESIGN is
port (
A, B: in std_logic;
O : out std_logic
);
end MULTILIB_DESIGN;
--implementation
architecture RTL of AND2 is
signal AND_O, XOR_O: std_logic;
begin
AND_U: entity libraryA.AND2(RTL) port map (A, B, AND_O); -- Unknown
identifier LibraryA
XOR_U: entity libraryB.XOR2(RTL) port map (A, B, XOR_O);-- Unknown
identifier LibraryB
O <= AND_O or XOR_O;
end RTL;
As far as I can understand, the idea of libraries is to isolate primitives
into namespaces. This is what I want to achieve. The VHDL must be
synthesizable.