verilog中,for循环的循环变量i的初始值一定是常量吗?可不可以是reg或者wire类型的变量如:reg [6:0] counter=1;reg a = 0;integer i;always @ (posedge clk)begin for (i=counter;i<=100;i=i+counter) begin a <= a + 1; endend
收起
这种不是静态的循环结构,包括初始化条件非静态,终止条件非静态等的结构,仿真是没有问题的。因为仿真只是像C语言一样执行语句罢了。但是,这是一种不可综合的结构,意味着综合器无法通过Verilog代码推断出真实电路,所以最好只在仿真验证时使用。如还有疑问,可以追问,如解决问题,请采纳。
报告相同问题?