我正在尝试以这种形式创建一个二维数组:
reg arr[5:0][0:5];
Run Code Online (Sandbox Code Playgroud)
当我尝试为它分配一个值时,我们可以说
assign arr[1] = 22;
Run Code Online (Sandbox Code Playgroud)
它给出了一些错误说:
"引用标量寄存器数组'arr'不是合法的净左值"和"连续分配的非法左手边".
所以我的目的是在数组的索引中分配一个数字.这项任务如何运作?任何帮助,建议将受到高度赞赏.
Tim*_*Tim 14
首先,你不能注册assign.assigns驱动线类型,而不是reg类型.要驱动一个reg类型,你需要一个逻辑块内的语句,如always块.
其次,基于你所写的内容,我认为你正在寻找一个多位元素阵列,而不是二维阵列.
reg arr[5:0][0:5];定义单个位的2D数组.如果你想要一个可以容纳大于一位的多位值数组,你可以这样声明:
reg [M:0] arr[0:N] - 这描述了(N + 1)个元素的数组,其中每个元素是M + 1位数.如果以这种方式声明它,那么您应该能够将22之类的值存储到其中,假设您使用always块.