gpt4 book ai didi

vector - VHDL如何使用std_logic_vector作为数组的索引

转载 作者:行者123 更新时间:2023-12-01 23:43:55 25 4
gpt4 key购买 nike

我想使用 std_logic_vector 作为数组的索引,例如:

Data: in std_logic_vector(7 downto 0);
signal counter : std_logic_vector(3 downto 0);

output <= Data(counter);

由于VHDL语法检查告诉我应该使用带有Data的整数作为索引,所以我想问是否可以使用std_logic_vector作为索引。

如果不是,如果我使用这样的计数器:

signal counter : integer range 0 to 7 := 7;

合成器将创建一个 8 位计数器(因为 7 是最大值)还是将创建一个 32 位计数器?我问这个问题是因为如果我分配一个值 8 来计数器 vhdl 语法检查并不会告诉我这是一个错误。

最佳答案

要使用 std_logic_vector,您必须对其进行转换:

Data: in std_logic_vector(7 downto 0);
signal counter : std_logic_vector(3 downto 0);

output <= Data(to_integer(unsigned(counter)));

关于你的第二个问题,这将是一个 3 位计数器:

signal counter : integer range 0 to 7 := 7;

从物理上讲,整数和 std_logic_vector 没有区别。综合后将产生完全相同的硬件。使用在代码中最有意义的数据类型。

关于vector - VHDL如何使用std_logic_vector作为数组的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29718278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com