Verilog:部分选择或索引部分选择不能应用于内存

时间:2014-06-25 06:56:19

标签: verilog

在Verilog中:

对于数组reg queue[3:0] = 4'b1010;,我可以queue <= {queue[0], queue[3:1]}; 但是,当涉及到2d数组reg [1:0] queue [3:0];时,当我对它queue <= {queue[0], queue[3:1]};做同样的事情时报告错误。 &#34; part-slect或indexed part-slect无法应用于内存&#34;

因此,我只是以愚蠢的方式做到这一点:

queue[0] <= queue[1];
queue[1] <= queue[2];
queue[2] <= queue[3];
queue[3] <= queue[0];

有没有更好的方法来做到这一点,只有一句话。

THX!

1 个答案:

答案 0 :(得分:4)

您始终可以使用for loop来执行此操作:

queue[3] = queue[0];
for(i = 2; i >= 0; i = i - 1) begin
  queue[i] = queue[i+1];
end