Verilog For loop:初始值错误

Verilog For loop:初始值错误,verilog,Verilog,我试图在我的verilog设计中使用for循环,由于某些原因,for循环的初始值没有设置正确。 我尝试在verilog中编写一个简单的for循环,并检查了模拟。我仍然得到了错误的初始值 这是我尝试过的简单for循环: integer j; always @(posedge clk) begin for (j=0; j< 16; j=j+1) begin count <= count+1; end end 整数j; 始终@(posedge clk) 开始

我试图在我的verilog设计中使用for循环,由于某些原因,for循环的初始值没有设置正确。 我尝试在verilog中编写一个简单的for循环,并检查了模拟。我仍然得到了错误的初始值

这是我尝试过的简单for循环:

integer j; 
always @(posedge clk)
begin 
  for (j=0; j< 16; j=j+1)
  begin 
    count <= count+1;
  end 
end 
整数j;
始终@(posedge clk)
开始
对于(j=0;j<16;j=j+1)
开始
count如注释
always@(posedge-clk)
中所述,表示触发器,其中包含的所有内容都在时钟周期的模拟中完成

要数到15,您可能需要:

reg [3:0] count;
always @(posedge clk) begin 
  if (count < 5'd15) begin 
    count <= count+1;
  end 
end 
reg[3:0]计数;
始终@(posedge clk)开始
如果(计数<5'd15)开始
计算循环在一个时钟周期内完成的次数,即在一个时钟周期内j从0增加到16。因此,您只能看到j的最终值,即16。j=x,因为之前没有初始化。