【发布时间】:2019-07-15 18:24:53
【问题描述】:
我想使用在命令行上设置的泛型有条件地实例化组件。我更喜欢将字符串作为通用字符串(即fast 或slow)而不是数字。
我在 stackOverflow 上找不到任何这样的例子,所以我想问问。
【问题讨论】:
-
考虑为此目的使用枚举类型而不是字符串。
标签: vhdl
我想使用在命令行上设置的泛型有条件地实例化组件。我更喜欢将字符串作为通用字符串(即fast 或slow)而不是数字。
我在 stackOverflow 上找不到任何这样的例子,所以我想问问。
【问题讨论】:
标签: vhdl
这是一个使用泛型有条件地实例化组件架构的示例。相同的代码可以用于实例化不同的组件:
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
d1f : entity work.delay(fast)
port map (
clk => clk,
reset => reset,
start => start,
done => done
);
else generate
d1s : entity work.delay(slow)
port map (
clk => clk,
reset => reset,
start => start,
done => done
);
end generate;
end architecture dutarch;
【讨论】: