请问一下各位verilog当中最多支持多少位的寄存器?这根具体芯片相关还是和verilog语言本身相关?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问一下各位verilog当中最多支持多少位的寄存器?这根具体芯片相关还是和verilog语言本身相关?相关的知识,希望对你有一定的参考价值。

你对verilog的理解还需要加强
多看看verilog的书,用fpga做些实验
verilog只是用来描述你所设计的硬件电路的,其实你没必要去关系他最多支持多少位寄存器。在时序电路里,reg类型的变量的每一位在硬件里代表一个D触发器,在组合逻辑中,每一位代表一根线,你有多少就布多少。假如你写了一个[10000000:0]的reg,只要你这个模块在综合时没有面积,功耗,时序的要求,是肯定能帮你综合出来的。

如果你问的是verilog软件所支持的位宽上限,那我就不得而知了,但能肯定的是,够你用!
参考技术A 没有限制了。跟芯片和语言都没有关系。
如果寄存器是给总线读写用的,那么如果是32位总线的话,寄存器位数最好小于等于32位。如果超过32位,你得搞多组32位寄存器,而且读写地址也要多个了。
参考技术B 1.不考虑route的问题
2.假设资源无限大
那么多少位的寄存器理论上多少位宽都可以
至于能否综合过或者route过,跟器件的资源是相关的

请教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当中最多支持多少位的寄存器?这根具体芯片相关还是和verilog语言本身相关?的主要内容,如果未能解决你的问题,请参考以下文章

verilog的寄存器默认初始值是多少?

verilog语法,有关case语句

请教Verilog 中memory 型数据的问题

Verilog里面如何初始化数组才能被Quartus II综合?

verilog中如何实现上电复位给寄存器赋初值?

verilog 寄存器初始化