【问题标题】:VHDL: Conditionally Instantiate Components using GenericsVHDL:使用泛型有条件地实例化组件
【发布时间】:2019-07-15 18:24:53
【问题描述】:

我想使用在命令行上设置的泛型有条件地实例化组件。我更喜欢将字符串作为通用字符串(即fastslow)而不是数字。

我在 stackOverflow 上找不到任何这样的例子,所以我想问问。

【问题讨论】:

  • 考虑为此目的使用枚举类型而不是字符串。

标签: vhdl


【解决方案1】:

这是一个使用泛型有条件地实例化组件架构的示例。相同的代码可以用于实例化不同的组件:

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;   

【讨论】:

    猜你喜欢
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 2011-04-02
    相关资源
    最近更新 更多