微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求助,verilog中如何能够访问到寄存器数组中的某个元素

求助,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访问范围不固定,但是我上面的这种访问方式,其实也没固定下来,是不是说,只有在“:”符号两边不能出现变量?

我是初学者,求指导啊,有简便的方法吗?



    第一种访问方式是可以的,你可以这样记,中括号里如果是索引可以有变量,但如果是位宽的话,就不可以了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top