SystemVelog学习随记(四)——定宽数组

声明和初始化

一维数组声明

int lo_hi[0:15];                                    //16个整数[0]...[15]
int c_style[16];                                    //16个整数[0]...[15]

二维数组声明

int array2[0:7][0:3];                            //完整的声明
int array3[8][4];                                  //紧凑的声明
array2[7][3] = 1;                                 //最后一个元素赋值

如果代码从一个越界的地址读取数据,SystemVerilog将会返回数据缺省值,四状态返回X,双状态返回0,线网在没有驱动的时候输出Z。

常量数组

int ascend[4] = '{0,1,2,3};                   //对4个元素进行初始化
int descend[5];

descend = '{4,3,2,1,0};                       //为5个元素进行 赋值
descend[0:2] = '{5,6,7};                      //为前3个元素赋值
ascend = '{4{8}};                                 //为4个元素全部赋值为8
descend = '{9,8,default:1};                 //{9,8,1,1,1}

基本的数组操作——for和foreach

for和foreach循环

initial begin
    bit [31:0] src[5],dst[5];
    for(int i = 0;i<$size(src);i++)            //$size函数返回数组的宽度
        src[i] = i;
    foreach(dst[j])
        dst[j] = src[j] * 2;                  //dst的值是src的二倍
end

对多维数组使用foreach

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值