SystemVerilog 中的二维切片
Slicing of two dimensions in SystemVerilog
在 SystemVerilog 中,我正在尝试执行以下操作:
wire signed [0:95][0:4][0:4][31:0] X;
wire signed [0:31][0:31][31:0] Y;
assign X[0] = Y[0:4][0:4];
assign X[1] = Y[0:4][1:5];
assign X[2] = Y[1:5][0:4];
assign X[3] = Y[1:5][1:5];
...
错误:
Error-[SE] Syntax error
Following verilog source has syntax error :
"try.sv", 399: token is '[', column 53
assign X[0] = Y[0:4][0:4];
请帮忙
SystemVerilog 不允许表示数组 non-contiguous 区域的切片。您必须使用 for
或 foreach
循环来执行此操作。我不确定你的意图是什么,但这应该让你继续。
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
X[0][i][j] = Y[i][j];
在 SystemVerilog 中,我正在尝试执行以下操作:
wire signed [0:95][0:4][0:4][31:0] X;
wire signed [0:31][0:31][31:0] Y;
assign X[0] = Y[0:4][0:4];
assign X[1] = Y[0:4][1:5];
assign X[2] = Y[1:5][0:4];
assign X[3] = Y[1:5][1:5];
...
错误:
Error-[SE] Syntax error
Following verilog source has syntax error :
"try.sv", 399: token is '[', column 53
assign X[0] = Y[0:4][0:4];
请帮忙
SystemVerilog 不允许表示数组 non-contiguous 区域的切片。您必须使用 for
或 foreach
循环来执行此操作。我不确定你的意图是什么,但这应该让你继续。
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
X[0][i][j] = Y[i][j];