SystemVerilog学习笔记2 ---《多维数组的遍历》

本文详细介绍了如何使用foreach和for循环来遍历一维数组及多维数组,并通过具体实例展示了不同循环方式的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 一维数组遍历

  • 数组遍历一般使用foreach或者使用for循环
  • for和foreach都使用 begin … end 表示作用范围

1.1 foreach

 int array[3] = '{9, 5, 8};
 foreach(array[i])
       $display("array[%0d] = %d", i, array[i]);
  • foreach循环相当于从数组的宽度的左端点,向数组宽度的右端点循环。
  • int array[3]; 等价于 int array[0:2]; 即索引变量从0开始,遍历到2。
    在这里插入图片描述

1.2 for循环

  • 注意for循环需要自己声明循环变量\color{red}{注意for循环需要自己声明循环变量}for
 int array[3] = '{9, 5, 8};
for(int i=0; i < $size(array); i++)
       $display("array[%0d] = %d", i, array[i]);

2. 多维数组的遍历

2.1 foreach

  • 注意循环变量为 [i,j]\color{red}{[i,j]}[i,j],而索引的时候为[i][j]\color{red}{[i] [j]}[i][j]
  • 会先遍历 j,然后遍历 i
int md[2][3] ='{'{0,1,2},{3,4,5}};
foreach(md[i,j])
    $display("md[%0d][%0d] = %0d", i,j,md[i][j]);

在这里插入图片描述

2.2 for循环

int md[2][3] ='{'{0,1,2},{3,4,5}};
for(int i=0;i < $size(md); i++)
    for(int j=0; j < $size(md[i]); j++)
        $display("md[%0d][%0d] = %0d", i,j,md[i][j]);
SystemVerilog中的二维数组可以通过以下方式使用。在SystemVerilog中,二维数组的大小可以在变量名后面指定,可以是升序或降序。例如,int arrays\[0:7\]\[0:3\]定义了一个大小为8x4的二维数组。\[2\] 使用二维数组时,可以通过数组索引来访问和操作数组元素。例如,arrays\[2\]\[3\]表示访问二维数组中的第3行第4列的元素。\[2\] 在SystemVerilog中,二维数组可以用于存储和处理多维数据,例如矩阵、图像等。通过使用循环结构,可以方便地遍历和操作二维数组中的元素。\[2\] 需要注意的是,二维数组的使用需要根据具体的应用场景和需求进行选择。如果需要以字节或字为单位对存储单元进行操作,或者需要等待数组中的变化,则可以选择使用合并数组。而如果需要处理多维数据,可以选择使用二维数组。\[3\] 总之,SystemVerilog中的二维数组提供了一种方便的方式来存储和处理多维数据,可以根据具体的需求进行灵活的使用。 #### 引用[.reference_title] - *1* [(156)SystemVerilog[二维数组]](https://blog.csdn.net/m0_46498597/article/details/129640347)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [IC学习笔记:04.SystemVerilog中的数组维度,$size()函数以及解释填充数组和非填充数组定义的区别](https://blog.csdn.net/weixin_56245975/article/details/122417255)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值