gpt4 book ai didi

arrays - 如何定义和分配 Verilog 二维数组

转载 作者:行者123 更新时间:2023-12-01 11:47:14 25 4
gpt4 key购买 nike

我正在尝试以这种形式创建一个二维数组:

reg arr[5:0][0:5];

当我尝试为其分配一个值时,可以说

assign arr[1] = 22;

它给出了一些错误说明:

"Reference to scalar reg array 'arr' is not a legal net lvalue" and "Illegal left hand side of continuous assign".

所以我的意图是在数组的索引中分配一个数字。这项任务如何运作?任何帮助,建议将不胜感激。

最佳答案

首先,你不能assign给regs。 assigns 驱动 wire 类型,而不是 reg 类型。要驱动 reg 类型,您需要在逻辑 block 内添加一条语句,例如 always block 。

其次,根据您所写的内容,我认为您正在寻找一个多位元素数组,而不是一个二维数组。

reg arr[5:0][0:5]; 定义单个位的二维数组。如果你想要一个多位值的数组,可以容纳大于一位的值,你可以这样声明它:

reg [M:0] arr[0:N] - 这描述了一个包含 (N+1) 个元素的数组,其中每个元素都是一个 M+1 位数。如果您以这种方式声明它,那么假设您使用 always block ,您应该能够将 22 之类的值存储到其中。

关于arrays - 如何定义和分配 Verilog 二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16045332/

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