gpt4 book ai didi

vhdl - VHDL 中数组的硬件表示

转载 作者:行者123 更新时间:2023-12-04 18:16:31 33 4
gpt4 key购买 nike

使用 VHDL,我希望有一些寄存器在每个寄存器中存储 16 位。
所以我发现 VHDL 有一个内置数组,我想用它在 iy 中的每个元素中存储 16 位,所以我想知道 VHDL 是否将此数组映射到实际寄存器?

最佳答案

简短的回答是否定的——数组类型不映射到寄存器。

长答案:
VHDL 中的数组类型只是相同类型元素的索引集合。在您的情况下,您可能会使用数组作为寄存器库的输出。

因此,假设您有一组 8 个寄存器,每个寄存器包含 16 位。该库的输出将是一个 16 位向量的数组(大小为 8)。此寄存器库的组件声明如下所示:

组件 reg8x16
港口(
时钟:在 std_logic 中;
重置:在 std_logic 中;
启用:在 std_logic 中;
溃败:输出 r_array(0 到 7)
);
末端组件;
rout是来自寄存器库的注册输出数组。因此,您可以使用 rout(0) 从银行取消引用寄存器 0 的输出。 ,其类型为 std_logic_vector(15 downto 0) .

另外,不要忘记在某处(通常在包文件中)声明数组类型。它看起来像:
type r_array is array (integer range <>) of std_logic_vector(15 downto 0);(integer range <>) statement 是数组索引范围的一种占位符——它会在以后使用数组类型时填充(例如在我们上面的组件声明中)。

我不确定这是否回答了你的问题。我不会详细介绍如何创建 reg8x16 组件。基本上,您只需创建一个 16 位寄存器,其输出类型为 std_logic_vector(15 downto 0); (您可以在线查找如何执行此操作……这是非常基本的 VHDL)。然后您只需实例化其中的 8 个寄存器,并将它们放入名为 reg8x16 的组件中。 .

关于vhdl - VHDL 中数组的硬件表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2418432/

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