我有一个 VHDL 设计,具有两种名为快速
和慢速
的架构。我希望能够在模拟/细化时使用命令行和泛型在它们之间进行选择。
我不知道如何选择配置,即使用 VHDL 泛型实例化具有我想要的架构的组件。
有没有办法做到这一点,或者我是否需要使用generate
语句并对所选架构进行硬编码?
最佳答案
事实证明,您不能使用泛型来控制配置语句。而是使用 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;
关于vhdl - 使用 VHDL 泛型选择实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57045008/