像访问一维一样访问二维压缩数组
Access 2D packed array as if it were one dimensional
我有一个压缩数组,用于保存一系列单词,如下所示:
reg [31:0][79:0] H;
据我了解,打包数组存储为连续的内存块,因此我想知道是否有一种方法可以访问这些值,就好像它们是在这样的一维数组中声明的那样:
H[500] <= x;
与H[11][15] <= x
相同。这可能吗?我需要填充数组中不在字边界处的各种块,因此这会使事情变得容易得多。
你需要的是压缩联合
union packed {
logic [31:0][79:0] words;
lofic [0:2559] bits;
logic [7:0][319:0] bytes;
} H;
如果数学正确,则以下内容是等价的
H.words[11][15] <= x;
H.bits[500] <=x;
我有一个压缩数组,用于保存一系列单词,如下所示:
reg [31:0][79:0] H;
据我了解,打包数组存储为连续的内存块,因此我想知道是否有一种方法可以访问这些值,就好像它们是在这样的一维数组中声明的那样:
H[500] <= x;
与H[11][15] <= x
相同。这可能吗?我需要填充数组中不在字边界处的各种块,因此这会使事情变得容易得多。
你需要的是压缩联合
union packed {
logic [31:0][79:0] words;
lofic [0:2559] bits;
logic [7:0][319:0] bytes;
} H;
如果数学正确,则以下内容是等价的
H.words[11][15] <= x;
H.bits[500] <=x;