首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >维度列表中的“变化最快”一词意味着什么?

维度列表中的“变化最快”一词意味着什么?
EN

Stack Overflow用户
提问于 2020-05-11 16:44:04
回答 2查看 113关注 0票数 0

例如:

代码语言:javascript
复制
bit [1:10] v1 [1:5];     //1 to 10 varies most rapidly; compatible with memory arrays
bit v2 [1:5][1:10];      //1 to 10 varies most rapidly, compatible with C;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-11 20:45:21

如果按照所有元素在内存中的顺序(或作为位流)排列,那么其索引在每个元素之间发生变化的维度是变化最快的维度。内存布局并不那么重要,因为SystemVerilog没有指针。但是,当您尝试选择数组的部分时,索引选择从最少到最不同都很重要。

v1[2][3]是5个中的2个,其次是10个中的3个。

票数 0
EN

Stack Overflow用户

发布于 2020-05-12 07:26:49

除了@dave_59说的话外,使用foreach也很重要,例如:

代码语言:javascript
复制
module M;
  bit [1:10] v1 [1:5];
  initial
    foreach(v1[i,j])
      $display("v1[%0d][%0d]= %b", i, j, v1[i][j]);      
endmodule

https://www.edaplayground.com/x/5b9m

显示

代码语言:javascript
复制
# KERNEL: v1[1][1]= 0
# KERNEL: v1[1][2]= 0
# KERNEL: v1[1][3]= 0
# KERNEL: v1[1][4]= 0
# KERNEL: v1[1][5]= 0
# KERNEL: v1[1][6]= 0
# KERNEL: v1[1][7]= 0
# KERNEL: v1[1][8]= 0
# KERNEL: v1[1][9]= 0
# KERNEL: v1[1][10]= 0
# KERNEL: v1[2][1]= 0
# KERNEL: v1[2][2]= 0
...
# KERNEL: v1[5][7]= 0
# KERNEL: v1[5][8]= 0
# KERNEL: v1[5][9]= 0
# KERNEL: v1[5][10]= 0

你可以看到,j尺寸,尺寸-10维,包装尺寸“变化最快”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61734842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档