sv绿皮书第三版数组练习

sv绿皮书第三版练习

eg0210

复制代码
initial begin
  bit [31:0] src[5], dst[5];
  for (int i = 0; i < $size(src); i++) src[i] = i;  //初始化src数组
  foreach (dst[j]) dst[j] = src[j] * 2;  // dst 的值是 src 的两倍
end

仿真代码

复制代码
initial begin
  bit [31:0] src[5], dst[5];
  for (int i = 0; i < $size(src); i++) src[i] = i;  //初始化src数组
  foreach (dst[j]) dst[j] = src[j] * 2;  // dst 的值是 src 的两倍

  $display("%p",src); //'{0,1,2,3}
  $display("%p",dst); //'{0,1,2,3}

end

仿真结果

复制代码
'{'h0, 'h1, 'h2, 'h3, 'h4} 
'{'h0, 'h2, 'h4, 'h6, 'h8} 

eg0211

复制代码
int md[2][3] = '{'{0, 1, 2}, '{3, 4, 5}};
initial begin
  $display("Initial value:");
  foreach (md[i, j])  // 这是正确的语法格式
  $display("md[%0d][%0d] = %0d", i, j, md[i][j]);

  $display("New value:");
  // 对最后三个元素重复赋值5
  md = '{'{9, 8, 7}, '{3{5}}};
  foreach (md[i, j])  // 这是正确的语法格式
  $display("md[%0d][%0d] = %0d", i, j, md[i][j]);
end

仿真结果

eg0212

复制代码
Initial value:
md[0][0] = 0
md[0][1] = 1
md[0][2] = 2
md[1][0] = 3
md[1][1] = 4
md[1][2] = 5
New value:
md[0][0] = 9
md[0][1] = 8
md[0][2] = 7
md[1][0] = 5
md[1][1] = 5
md[1][2] = 5

eg0213

仿真代码

复制代码
initial begin
  byte twoD[4][6];
  foreach (twoD[i, j]) twoD[i][j] = i * 10 + j;

  foreach (twoD[i]) begin  // 遍历第一个维度
    $write("%2d:", i);
    foreach (twoD[, j])  // 遍历第二个维度
    $write("%3d", twoD[i][j]);
    $display;
  end
end

仿真结果

复制代码
 0:  0  1  2  3  4  5
 1: 10 11 12 13 14 15
 2: 20 21 22 23 24 25
 3: 30 31 32 33 34 35
相关推荐
克里斯蒂亚诺更新2 小时前
ruoyi角色权限的对应关系
笔记
a1117764 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
破碎的南瓜6 小时前
sqli--sql注入过关笔记(1,2,3,4,5,9)
数据库·笔记·sql
你想知道什么?6 小时前
线性回归-学习笔记
笔记·学习·线性回归
谙弆悕博士7 小时前
系统集成项目管理工程师教程(第3版)笔记——第17章:法律法规和标准规范
笔记·职场和发展·学习方法·业界资讯·软考·法律·法规
谙弆悕博士8 小时前
系统集成项目管理工程师教程(第3版)笔记——第4章:信息系统架构
笔记·系统架构·项目管理·创业创新·学习方法·业界资讯·物理
茯苓gao10 小时前
嵌入式开发笔记:Qt信号槽机制深度解析——从原理到实战的全方位指南
开发语言·笔记·嵌入式硬件·qt·学习
A.零点11 小时前
【期末复习,408 考研计组全程笔记 】— 第4章 :指令系统
笔记·考研·408·计算机组成原理
早茶cc12 小时前
sqli1-5 9报错注入 笔记
笔记
摇滚侠12 小时前
Java 全栈开发实战教程 课程笔记 34-36
java·笔记