【问题标题】:how to have the vdhl code add text to itself如何让 vdhl 代码向自身添加文本
【发布时间】:2017-05-18 18:53:10
【问题描述】:

在尝试查看是否可以通过设置“通用”来想出一种使输出数量可变的方法时,我想到了以下想法。这个想法是在“端口”声明内的 VHDL 代码中有一个例程,这样该例程将添加文本“输出(X):out std_logic_vector(bits-1 downto 0);在“端口”声明中。请请注意 (X) 表示输出端口的数量,即 output1、output2 等。这个想法是,当 VHDL 解析器读取代码时,它会在编译时看到所需的输出数量。这是可以做到的吗?

【问题讨论】:

    标签: vhdl


    【解决方案1】:

    如果我对您的理解正确,您希望进行元编程并拥有通用数量的端口。这在 VHDL 中是不可能的。但是,您可以为此使用多维数组:

    -- declare array type VHDL-2008-style
    -- put this in a package
    type slv_array is array(natural range<>) of std_logic_vector;
    
    entity test is
    generic (
        -- number of outputs, at least one output
        num_outputs : positive := 1
    );
    port (
        my_inputs  : in  std_logic_vector(1 downto 0);
        my_outputs : out slv_array(num_outputs - 1 downto 0)(1 downto 0)
    );
    end entity test;
    

    然后您就可以像这样使用该组件了:

    comp0 : component test
        generic map (
            num_outputs => 1
            )
        port map (
            my_inputs => "10",
            my_outputs(0) => my_output0
            );
    
    comp1 : component test
        generic map (
            num_outputs => 2
            )
        port map (
            my_inputs => "00",
            my_outputs(0) => my_output1
            my_outputs(1) => my_output2
            );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      相关资源
      最近更新 更多