关于verilog for循环的展开
verilog语言把一个简单的for循环展开。for 循环为:
module forloop(in,out,clk);
output reg[7:0] out;
input [7:0] in, clk;
integer i ;
always @ (clk)
begin
for( i=0; i<3; i=i+1 )
out = in + 1;
end
endmodule
展开写成:
module forloop(in,out,clk);
output reg[7:0] out;
input [7:0] in, clk;
integer i ;
always @ (clk)
begin
i = 0;
if (i<3)
begin
out = in + i;
i = i + 1;
end
if (i<3)
begin
out = in + 1;
i = i + 1;
end
if (i < 3)
begin
out = in + 1;
i = i + 1;
end
end
endmodule
以上2程序均可在ModelSim中运行,请问展开后的verilog程序可以这样写吗?感觉有点怪。请高手指点。谢谢!