请教Verilog 中memory 型数据的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教Verilog 中memory 型数据的问题相关的知识,希望对你有一定的参考价值。
请教Verilog 中memory 型数据的问题
在Verilog中定义一个memory型的数据,如:
reg [7:0] mem1[255:0]
如果想引用其中第七行第八列元素应如何引用:reg[6][7]怎么不对的?请各位大虾指教一下。
首先你要明确mem1不是一个二维数组,它是一维的。reg表示mem1中的元素都是寄存器类型,reg后面的[7:0]表示的是mem1每个数组的元素的位宽是8bit。
如果想表示mem1数组的第A个元素的第B到第C位的内容,可表示如下
mem1[A][B:C]
凭记忆写的,大致如上,你可以查阅verilog相关书籍的语法部分验证一下~
参考资料:大脑中关于verilog的记忆
参考技术A 应该是 mem[6][7]吧,reg是类型。这个mem是一维压缩数组,mem[6][7]表示第7个元素的第8位,只是一位。 参考技术B mem1[6][7] 参考技术C 起码也应该是 mem1[6][7] 吧……
verilog 定义memory类型变量 reg[16:1] a[7:0], 赋值时候可不可以这样:a[5][16:9]=8'b11111111;
参考技术A 可以,IEEE-Verilog-2001中有这么一段,你可以参考一下reg [7:0] twod_array[0:255][0:255];
wire threed_array[0:255][0:255][0:7];
Examples:
twod_array[14][1][3:0] // access lower 4 bits of word
twod_array[1][3][6] // access bit 6 of word
twod_array[1][3][sel] // use variable bit select
threed_array[14][1][3:0] // Illegal
以上是关于请教Verilog 中memory 型数据的问题的主要内容,如果未能解决你的问题,请参考以下文章
verilog 定义memory类型变量 reg[16:1] a[7:0], 赋值时候可不可以这样:a[5][16:9]=8'b11111111;
您好,刚开始接触verilog 请问,是否reg型信号必须在always块中,而always块的输出可以不是reg型数据