首页 > 其他分享 >SystemVerilog -- 3.2 SystemVerilog foreach loop

SystemVerilog -- 3.2 SystemVerilog foreach loop

时间:2024-05-05 18:44:59浏览次数:18  
标签:md end -- sum 3.2 foreach 0d array SystemVerilog

SystemVerilog foreach loop

SystemVerilog数组是允许在单个变量中存储多个值的数据结构。循环仅用于遍历此类数组,并且是执行此操作的最简单和最简单的方法。foreach

Syntax

循环从0开始循环访问每个索引。如果循环中有多个语句,则必须像所有其他过程块一样用foreachforeach begin end关键字括起来。

foreach (<variable>[<iterator>])
  // Single statemnet

foreach (<variable>[<iterator>]) begin
  // Multiple statemnets
end

Example #1: Single dimensional Arrays

module tb;
  int array[5] = '{1, 2, 3, 4, 5};
  int sum;

  initial begin
    foreach (array[i])
      $display ("array[%0d] = %0d", i, array[i]);

    foreach (array[l_index]) begin
      sum += array[l_index];
      $display ("array[%0d] = %0d, sum = %0d", l_index, array[l_index], sum);
    end
  end
endmodule

模拟日志

ncsim> run
array[0] = 1
array[0] = 2
array[0] = 3
array[0] = 4
array[0] = 5
array[0] = 1, sum = 1
array[0] = 2, sum = 3
array[0] = 3, sum = 6
array[0] = 4, sum = 10
array[0] = 5, sum = 15
ncsim: *W,RNQUIE: Simulation is complete.
Note that is just a shorter version to the following loop : `foreach` `for`
for (int i = 0; i < $size(array); i++) begin
  // Statements inside the for loop
end

Example #2: Multidimensional Arrays

module tb;
  int  md_array [5][2] = '{'{1,2}, '{3,4}, '{5,6}, '{7,8}, '{9,10}};

  initial begin
    foreach (md_array[i])
      foreach (md_array[i][j])
        $display ("md_array[%0d][%0d] = %0d", i, j, md_array[i][j]);
  end
endmodule

模拟日志

ncsim> run
md_array[0][0] = 1
md_array[0][1] = 2
md_array[1][0] = 3
md_array[1][1] = 4
md_array[2][0] = 5
md_array[2][1] = 6
md_array[3][0] = 7
md_array[3][1] = 8
md_array[4][0] = 9
md_array[4][1] = 10
ncsim: *W,RNQUIE: Simulation is complete.

标签:md,end,--,sum,3.2,foreach,0d,array,SystemVerilog
From: https://www.cnblogs.com/sys-123456/p/18173701

相关文章

  • Redis基础篇笔记
    一、Redis入门1.认识NoSQL1.1 什么是NoSQLNoSQL最常见的解释是"non-relational",很多人也说它是"NotOnlySQL"NoSQL仅仅是一个概念,泛指非关系型的数据库区别于关系数据库,它们不保证关系数据的ACID特性NoSQL是一项全新的数据库革命性运动,提倡运用非关系型的数据存储,相对于......
  • 你钱包里一张卡:全国336个城市都能刷
     “ 很多人吐槽去外地旅游坐地铁公交不方便,就是因为他们不知道这个东西,我在手机上申请的北京交通卡,在贵阳工作,去湖南出差,到浙江旅游,都可以用。” 想想真是这样,出游的时候公共交通挺烦。有些城市,得入乡随俗,专门下个APP。每到一个城市就得申请一张新卡,下新APP,又是实名认......
  • 基于WOA优化的CNN-GRU-Attention的时间序列回归预测matlab仿真
    1.算法运行效果图预览woa优化前      woa优化后    2.算法运行软件版本matlab2022a 3.算法理论概述      时间序列回归预测是数据分析的重要领域,旨在根据历史数据预测未来时刻的数值。近年来,深度学习模型如卷积神经网络(ConvolutionalNeur......
  • 2024年13个最佳Scrum工具评测
    Scrum 管理工具有:PingCode、Jira、Trello、ZohoSprints、ActiveCollab、ProProfsProject、Scrumwise、ClickUp、Monday.com、QuickScrum、Yodiz、ScrumDo、nTask在过去几年中,Scrum方法论已成为敏捷项目管理的主要框架之一。使用Scrum,项目管理过程将变得更加灵活和透明,同时......
  • 鸿蒙开发前四章
    鸿蒙开发前四章第二章:开发环境搭建首先要创建project,然后用EmptyActivity模版,可以选visual(支持低代码可视化的开发)一个项目可以有多个module,newmodule选择同上,还可以导入module。 第三章:开发一个harmonyOs应用(1)创建一个新项目(用java写)那么sdk版本要选择<=7创建一个新项......
  • 2024牛客五一集训-1
    CoffeeChicken基本思路:f[i]表示s[i]的字符串长度即f[i]=f[i-2]+f[i]solve(n,k)表示s[n]中第k个字符当n<=2时,直接返回答案当n>2时,k>f[i-2]时solve(n-1,k-f[n-2]);说明要找的字符在前一天中,也就是不在前两天的数据范围之内,因此直......
  • pyqt5设计图片背景和颜色
        tianqi.qrc 根据大小重新 <RCC><qresourceprefix="media"><file>天气.jpg</file><file>音乐.jpg</file><file>map.png</file><file>车.png</file></qresource></RCC>......
  • 06. C语言指针
    【指针】C语言使用数据名调用数据,数据名相当于C语言的直接寻址,直接寻址只能调用固定数据,而指针是间接寻址,指针存储了另一个数据的地址,使用指针调用数据时首先取指针存储的内存地址,之后使用此地址调用数据,使用间接寻址有如下几点优势:1.统一数据的调用方式,因为指针是调用数据的中间......
  • 程序员天天 CURD,怎么才能成长,职业发展的思考(2)
    接着上一篇:程序员天天CURD,怎么才能成长,职业发展思考上一篇写到了用年限来谈程序员的发展,在4-6年这个时间段需要做的一些事情,接着写这个时间段的。第4、5年时候,你可能会做一些关于基层管理工作。这个时期会遇到一些困难。这个时期,既要编写代码,又要做基层管理工作,你肯定很......
  • CSS 盒模型
    在css中,所有元素都被一个个的"box"包围着,理解这些盒子的基本原理,是实现用css实现精准布局,处理元素排列的关键.标准盒模型盒子模型的组成元素:content:内容区padding:内天成border:边框margin:外边距在标准盒模型中,盒的width/height指......