使用VHDL泛型选择实体

时间:2019-07-15 18:03:28

标签: vhdl

我有一个VHDL设计,具有两个名为fastslow的体系结构。我希望能够在仿真/精化时使用命令行和泛型在它们之间进行选择。

我无法弄清楚如何选择配置,即使用VHDL泛型实例化具有所需架构的组件。

有没有办法做到这一点,或者我需要使用generate语句并对所选择的体系结构进行硬编码吗?

1 个答案:

答案 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;