我试图了解我们如何从凿子中的“for”循环中生成 verilog 代码。通常,verilog 代码用于展开主体的次数与循环进度一样多,但在 chisel 中它只展开一次。
val io = new Bundle {
val a = UInt(INPUT, 2)
val output = UInt(OUTPUT, 2)
}
io.output := UInt(0)
for(j <- 0 to 4){
io.output := io.a
}
上述程序对应的verilog代码为:
module LutSimpleALU(
input [1:0] io_a,
output[1:0] io_output
);
assign io_output = io_a;
endmodule
如果有人能说出 for 循环是如何工作的,那将非常有帮助。