如何让 vdhl 代码向自身添加文本
Posted
技术标签:
【中文标题】如何让 vdhl 代码向自身添加文本【英文标题】:how to have the vdhl code add text to itself 【发布时间】:2017-05-18 18:53:10 【问题描述】:在尝试查看是否可以通过设置“通用”来想出一种使输出数量可变的方法时,我想到了以下想法。这个想法是在“端口”声明内的 VHDL 代码中有一个例程,这样该例程将添加文本“输出(X):out std_logic_vector(bits-1 downto 0);在“端口”声明中。请请注意 (X) 表示输出端口的数量,即 output1、output2 等。这个想法是,当 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
);
【讨论】:
以上是关于如何让 vdhl 代码向自身添加文本的主要内容,如果未能解决你的问题,请参考以下文章