2

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

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

4

1 回答 1

2

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

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;   
于 2019-07-15T20:11:08.320 回答