求助,verilog中如何能够访问到寄存器数组中的某个元素
时间:10-02
整理:3721RD
点击:
请问各位,
使用verilog语句,声明了一个寄存器数组
reg [7:0] buffer[18:0] ;
实际上就是一个19*8的缓存。
现需要对某个8bit单元中的某个bit进行赋值操作,不知道要怎么弄,是buffer[X][Y]如此的访问?
如果,需要对buffer中的某连续的64个bit,也就是8*8单元中的bit进行移位操作,是否也可以按照[X][Y]的方式进行,
如果,有个reg [5:0] cnt;可否这样访问buffer:buffer[cnt[5:4]][cnt[2:0]] <= signal_a ;
以前经常遇到这样的错误:buffer[cnt:cnt-2]<= 3'b000;错误理由就是buffer访问范围不固定,但是我上面的这种访问方式,其实也没固定下来,是不是说,只有在“:”符号两边不能出现变量?
我是初学者,求指导啊,有简便的方法吗?
第一种访问方式是可以的,你可以这样记,中括号里如果是索引可以有变量,但如果是位宽的话,就不可以了。
