问题描述
在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不允许切片表示数组的非连续区域。您必须使用for
或foreach
循环来执行此操作。我不确定您的意图是什么,但这应该可以助您一臂之力。
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
X[0][i][j] = Y[i][j];