声明:本内容来自于学习路科验证发布在B站上的免费视频课程后的笔记
一、非组合型数组unpacked array
1、在verilog中,数组经常会被用来存储数据。
reg [15:0] RAM [0:4095];
//RAM是数组名,[0:4095]是元素,表示有4096个元素,每个元素有16位。reg是元素的类型
2、在SV中,就将上面这种方式声明的数组称之为非组合型数组,它表示数组中的成员之间存储的数据是相互独立的。
wire [7:0] table [3:0]; //有4个元素,每个元素有8个bit。这些元素的类型是线网类型。
3、在SV中,它保留了verilog中非组合型数组的声明方式,同时也扩展了一些类型:event、logic、bit、byte、int、longint、shortreal、real。它也保留了verilog索引非组合型数组和数组片段的方式,这种方式为数组和数组片段的拷贝带来了方便。
int a1 [7:0] [1023:0];
int a2 [1:8] [1:1024]; //[1:8]是高维,[1:1024]是低维
a2 = a1; //复制一整个数组
a2[3] = a1[0]; //此处的a2[3]等同于a2[3][1:1024],表示将右边a1的1024个元素赋值给左边的a2的1024个元素
4、 声明非组合型数组的方式
logic [31:0] data [1024];
logic [31:0] data [0:1023];
此处不理解,我的理解是

本文详细介绍了Verilog与System Verilog(SV)中的数组概念,包括非组合型数组(unpacked array)和组合型数组(packed array)的声明、初始化及使用方法,并探讨了数组在循环结构foreach中的应用。
最低0.47元/天 解锁文章
4102

被折叠的 条评论
为什么被折叠?



