SystemVerilog----关于foreach
来源:互联网 发布:数据运营属于什么行业 编辑:程序博客网 时间:2024/06/06 08:42
foreach结构指定在数组元素上的迭代。它的自变量是一个指明任意类型数组(固定尺寸的、动态的、及联合数组)的标识符,然后紧跟着一个包围在方括号内的循环变量的列表。每一个循环变量对应于数组的某一维。foreach结构类似于一个使用数组范围替代一个表达式来指定重复次数的repeat循环。
例子:
string words[2] = {"hello", "world"};int prod[1:8][1:3];foreach (words[j]) $display(j, words[j]); // 打印每一个索引和值foreach (prod[k,m]) prod[k][m] = k * m; // 初始化
循环变量的数目必须匹配数组变量的维数。空循环变量可以用来指示在对应的数组维数上没有迭代,并且趋向于尾部的连续空循环变量可以被忽略。循环变量是自动的、只读的,并且它们的作用范围对于循环来讲是本地的。每一个循环变量的类型被隐含地声明成与数组索引的类型一致。数组中任何具有相同标识符的循环变量都是错误的。
循环变量到数组索引的映射由维基数确定,如23.7节所描述的那样。对于foreach循环,更高基数的索引变化也更快。
// 1 2 3 3 4 1 2 -> 维数int A [2][3][4]; bit [3:0][2:1] B [5:1][4];foreach(A[i, j, k]) ...foreach(B[q, r, , s]) ...
对于第一条foreach子句,i从0到1迭代,j从0到2迭代,k从0到3迭代。对第二条foreach子句,q从5到1迭代,r从0到3迭代、s从2到1迭代(第三个索引的迭代被忽略)。
多个循环变量对应于在指定索引上迭代的嵌套循环。循环的嵌套由维基数确定;外层循环对应于较低的基数索引。在上面的第一个例子中,最外层的循环在i上迭代,最内层的循环在k上迭代。
当循环变量用在表达式当中而不是作为指定数组的索引的时候,它们被自动地强制转换到与索引类型一致的类型。对于固定尺寸或动态数组,强制转换类型时int。对于以特定索引类型索引的联合数组,强制转换类型与索引类型一致。对于使用通配符索引(*)进行索引的联合数组,强制转换类型是无符号的longint类型。为了使用不同的类型,可以使用一个显式的强制类型转换。
- SystemVerilog----关于foreach
- SystemVerilog--关于force用法
- 关于SystemVerilog中的随机化问题
- 关于foreach
- systemverilog中关于事件的那些事
- 关于foreach的使用
- 关于C#的Foreach
- 关于Java中的foreach
- 关于foreach和section
- 关于<c:forEach>
- 【JavaSE】关于foreach
- 关于foreach 循环引用
- 关于foreach遍历
- 关于JAVA的foreach
- 关于php的foreach
- systemverilog 语法
- systemverilog interface
- systemverilog数据类型
- linux命令之调试工具gdb
- 简单工厂模式
- 32位机和64位机下面各类型sizeof的大小
- Android中使用Pull解析器解析xml文件+进行简单的单元测试
- 轻量级MySQL备份方案:AutoMySQLBackup
- SystemVerilog----关于foreach
- nor flash、nand flash 、sdram的区别
- QT 图片浏览器(二)
- log4j配置祥解
- SystemVerilog------2011新解
- JS脚本使用RAR制作安装包
- SQL搜索下划线,like中不能匹配下划线的问题
- Visual Leak Detector (VLD)使用
- 背景建模或前景检测(Background Generation And Foreground Detection) 六 Emvisi2