matlab中size函数的用法_SystemVerilog中的数组维度,以及$size()函数

最近有个学弟问我一个细节上的问题,对一个多维数组a,$size(a)到底计算的是谁的长度?

在此讨论一小下,做一个便于理解和记忆的总结。

1、多维数组的声明

以二维数组为例,类比矩阵,高维度称之为行,低维度称之为列。

//8行4列
int a[0:7][0:3];
int b[8][4];

int [7:0][3:0] c;
int [8][4] d;

刚开始学的时候会有疑问,什么时候声明用[7:0],何时要用[0:7]?

若矩阵名为a,则写在其右边的用[0:7],左侧则为[7:0]。

2、维度与$size()

先附上SV的IEEE标准文档中的一段代码:

76e85c7816942b3e3513cc953754613f.png

可见,对于unpacked类型数组n,声明时写在数组名“n”右侧的维度等级高于左侧的维度等级。在同一侧中,位于更左侧"[ ]"中的等级要高。

因此,

int a[0:7][0:3];//高等级为[0:7],低等级为[0:3]
int [3:0] unpacked_a [0:7];//高等级为[0:7],低等级为[3:0]

而$size()函数可以选择需要计算的维度,例如

$size(a,1);//数组高维度是几?答案8
$size(a,2);//数组低维度是几?答案4
$size(a);//答案8,默认为高维
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值