如何修复矢量分配 (vlog-13069) 错误

How to fix vector assignment (vlog-13069) error

我的变量声明如下:

output [6:0] dout_7seg_3, dout_7seg_2, dout_7seg_1, dout_7seg_0;    
wire   [6:0] dout_7seg [3:0];

我尝试通过如下编码将每个 dout_7seg_i 分配给 dout_7seg [i]

assign dout_7seg_3 = dout_7seg [6:0][3];

我得到这样的错误结果:

Error: (vlog-13069) "[": syntax error, unexpected '[', expecting ';' or ','.

我也尝试过使用 generate 块:

genvar i;
generate for (i = 0; i<7; i = i+1) begin
    assign dout_7seg_3 = dout_7seg [i:0][3]; //I wanted to code like dout_7seg_i = dout_7seg [6:0][i]
    end
endgenerate

也有相同的

vlog-13069 error

你能帮我解决这些错误吗?

你打乱了索引的顺序。它应该如下所示:

assign dout_7seg_3 = dout_7seg [3][6:0];

打包维度放在最后。

由于您要分配所有 7 位,因此无需使用压缩范围 ([6:0])。只需使用:

assign dout_7seg_3 = dout_7seg[3];
assign dout_7seg_2 = dout_7seg[2];
assign dout_7seg_1 = dout_7seg[1];
assign dout_7seg_0 = dout_7seg[0];