多位逻辑和数组逻辑声明中的系统Verilog差异

时间:2018-12-19 19:53:35

标签: verilog system-verilog

我是系统Verilog的新手,因此找不到任何来源。

我写的时候

logic [3:0] buttonsInc;

及之后

assign buttonsInc[0] = 0;
assign buttonsInc[1] = 0;

我收到一条错误消息,提示无法索引到非数组类型...我认为是因为buttonInc现在是4位数字,而不是数组。我应该如何编写它来声明一个数组,例如保存3个4位数组? 像这样吗?

logic[0:3][4:0] buttonsInc;

logic[4:0][3:0] buttonsInc;

[0:3][3:0]在定义逻辑上又有什么区别?

1 个答案:

答案 0 :(得分:0)

逻辑[3:0] buttons_inc表示一个名为button_inc的4位向量,[3:0]表示索引3(0至3)是MSB位,而[0:3]表示索引0是MSB位。 MSB位。 [3:0]->(MSB)3 2 1 0 ||| [0:3]-> 3 2 1 0(MSB)

logic [3:0] [4:0] buttons_inc将创建一个压缩数组,即4个向量,每个5位宽。请注意,打包数组本质上是向量,与连续的未打包数组不同,细分为较小的sub_vector。

相关问题