我正在尝试编译类似于此的代码:
`define CORES_NUM 4
reg [1:0] core = 'h0;
reg [`CORES_NUM-1:0] result = 'h0;
integer i;
always @ (posedge clk) begin
case (core)
for (i = 0; i < `CORES_NUM; i = i + 1) begin
i: begin
result[i] <= 1;
end
end
endcase
end
目前只有一个核心处于活动状态。我希望我的代码与此相同:
case (core)
0: begin
result[0] <= 1;
end
1: begin
result[1] <= 1;
end
2: begin
result[2] <= 1;
end
3: begin
result[3] <= 1;
end
endcase
换句话说,我只需要'for loop'进行自动设置 - 如果我更改CORES_NUM,则会自动更改大小写状态。 但我的代码构建错误。如何在case语句中使用for循环?
答案 0 :(得分:1)
为什么不:
always @(posedge clk) if (core < `CORES_NUM) result[core] = 1;