For loop 系统Verilog,如何对数组值求和?

For loop 系统Verilog,如何对数组值求和?,for-loop,sum,verilog,system-verilog,vivado,For Loop,Sum,Verilog,System Verilog,Vivado,我正在尝试使用System Verilog对数组值求和 我的数据声明如下: reg signed [23:0] n2 [31:0]; reg signed [15:0] w2 [195:0]; w2是一个带有库存值的注册表 for(int i2=0; i2<32; i2++) begin for(int j2=0; j2<196; j2++) begin n2[i2] <= n2[i2] + w2[j2

我正在尝试使用System Verilog对数组值求和

我的数据声明如下:

reg     signed  [23:0]    n2 [31:0];
reg     signed  [15:0]    w2 [195:0];
w2
是一个带有库存值的注册表

for(int i2=0; i2<32; i2++) begin
        for(int  j2=0; j2<196; j2++) begin
            n2[i2] <= n2[i2] + w2[j2];
        end
    end
end
但我不知道为什么

我在n2注册表中只有X

当然有。
开始时,n2未初始化,因此它包含所有X-E。现在你给X-es加上数字,它仍然会给你X-es。这与在大多数语言中添加到未初始化的变量相同。
试试这个:

for(int i2=0; i2<32; i2++) begin
    n2[i2] <= w2[0];
    for(int  j2=1; j2<196; j2++) begin
        n2[i2] <= n2[i2] + w2[j2];
    end
end
for(int i2=0;i2
for(int i2=0; i2<32; i2++) begin
    n2[i2] <= w2[0];
    for(int  j2=1; j2<196; j2++) begin
        n2[i2] <= n2[i2] + w2[j2];
    end
end