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
相关推荐
白夜111719 分钟前
C++(标签派发 Tag Dispatching)
开发语言·c++·笔记·算法
xuhaoyu_cpp_java1 小时前
Spring学习(一)
java·经验分享·笔记·学习·spring
ZC跨境爬虫1 小时前
跟着 MDN 学 HTML day_15:(媒体缓冲、拖动与时间范围控制)
前端·笔记·ui·html·edge浏览器·媒体
东京老树根4 小时前
SAP学习笔记 - BTP CAP开发06 - Customize Criticality,Map Page,Value help
笔记·学习
AM越.5 小时前
助睿:!!零代码解决!!订单利润分流数据加工o(* ̄▽ ̄*)ブ
数据仓库·笔记·etl·助睿
魔都大虾6 小时前
旧时光里面有那些情话句子 什么比较热门
笔记
Java成神之路-6 小时前
【算法刷题笔记】全题型导航目录
笔记·算法
zhangrelay6 小时前
云课实践速通系列-基础篇汇总-必修-通识基础和专业基础-2026--工科--自动化、电气、机器人、测控等
linux·笔记·单片机·学习·ubuntu·机器人·自动化
05候补工程师6 小时前
【编译原理】自顶向下语法分析深度解析:从 LL(1) 文法判定、改写到预测分析表
经验分享·笔记·考研·自然语言处理
ErizJ8 小时前
Linux|学习笔记
linux·笔记·学习