byte数组初始化_SystemVerilog数组类型与操作

一、数组操作1.非组合型数组Reg [15:0] RAM [0:4095] //存储数组SV将verilog这种声明数组的方式称为非组合型声明,即数组中的成员之间存储数据都是相互独立的;(优点:易于查找元素; 缺点:消耗更多存储空间)SV保留了非组合型的数组声明方式,并扩展了允许的类型:event、logic、bit、byte、int、longint、shortint和real;SV保留了v...
摘要由CSDN通过智能技术生成

cb18c6e25e56f3108117e53ebd965c15.png

一、数组操作

1.非组合型数组

Reg [15:0] RAM [0:4095] //存储数组

  • SV将verilog这种声明数组的方式称为非组合型声明,即数组中的成员之间存储数据都是相互独立的;

(优点:易于查找元素; 缺点:消耗更多存储空间)

  • SV保留了非组合型的数组声明方式,并扩展了允许的类型:event、logic、bit、byte、int、longint、shortint和real;
  • SV保留了verilog索引非组合型数组或者数组片段的能力,这种方式为数组以及数组片段的拷贝带来了方便;

Int a1[7:0] [1023:0] //非组合型数组

Int a2[1:8] [1:1024] //非组合型数组

a2=a1; //拷贝整个数组;

a2[3]=a1[0]; //拷贝某个元素或者一个数组片段

  • 声明数组的方式,以下两种都可:

Logic [31:0] data [1024];

Logic [31:0] data [0:1024];

可以指定其内部元素个数或者元素索引值的范围;

2.组合型数组

  • SV将Verilog的向量作为组合型数组声明方式;

Wire [3:0] select;//4bit组合型数组

Reg [63:0] data;// 64bit组合型数组

  • SV允许多维组合型数组的声明;

Logic [3:0] [7:0] data;//2维组合数组 32bit字

组合型数组更节省空间

  • 组合型还可以用来定义结构体的存储方式:

Typedef struct packed {

Logic [7:0] crc;

Logic [63:0] data;

}data_word;

Data_word [7:0] darray;//1位组合型数组,元素也为组合型结构体

  • 组合型数组中的元素和片段也可以单独拷贝和赋值;

Logic [3:0] [7:0] data;//2维组合型数组

Wire [31:0] out=data; //整个数组赋值

Wire sign=data[3] [7]; //单个bit

Wire [3:0] nib=data[0] [3:0]; //数组片段

Byte high_byte;

Assign high_byte=data[3] ;//8bit数组片段

Logic [15:0] word;

Assign word=data[1:0]; //2个数组片段、

3.初始化

  • 组合型数组初始化,可以对其所有元素统一赋值;

logic [3:0] [7:0] a=32’h0; //向量赋值

logic [3:0]

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值