我有一个VHDL设计,具有两个名为fast
和slow
的体系结构。我希望能够在仿真/精化时使用命令行和泛型在它们之间进行选择。
我无法弄清楚如何选择配置,即使用VHDL泛型实例化具有所需架构的组件。
有没有办法做到这一点,或者我需要使用generate
语句并对所选择的体系结构进行硬编码吗?
答案 0 :(得分:0)
结果是您不能使用泛型来控制配置语句。而是使用generate
使用通用的架构:
LIBRARY ieee;
use ieee.std_logic_1164.all;
entity dut is
generic (
SPEED : string := "fast"
);
port(
clk : in std_logic;
reset: in std_logic;
start: in std_logic;
done: out std_logic);
end entity dut;
architecture dutarch of dut is
component delay is
port (
clk : in std_logic;
reset: in std_logic;
start: in std_logic;
done: out std_logic
);
end component delay;
begin
d1g: if (SPEED = "fast") generate
d1 : entity work.delay(fast)
port map (
clk => clk,
reset => reset,
start => start,
done => done
);
else generate
d1 : entity work.delay(slow)
port map (
clk => clk,
reset => reset,
start => start,
done => done
);
end generate;
end architecture dutarch;