写了一段激励代码,用for循环,依次把一个寄存器的bit[32*(i+1) : 32*i]赋值给一个axi数据总线,代码基本结构如下:
integer i;
initial begin
for(i=0;i<=NUM;i=i+1) begin
axi_wdata[31:0] <= wdat[32*(i+1) : 32*i];
@(negedge clk);
end
end
用modelsim仿真后,报range must be bounded by constant expressions。
这个和语言语法有关系,就不深入分析了。
一个简单的解决方法是,每次把wdat[31:0]赋值给axi_wdata,但是赋值完后,将wdat右移32bit。