与一个时钟边沿的所有迭代不同,如何在每个时钟边沿进行一次迭代

时间:2014-04-20 18:48:17

标签: if-statement for-loop verilog

以下代码中的for循环在一个posedge clock中开始执行。我希望每次迭代都在一个时钟边沿发生,这样在第5个时钟边沿我的if将被激活。

begin 
  temp_number3=contact;
    for(i3=0;i3<10;i3=i3+1)
     begin //for loop beign 
     count3=i3;
     if(count3==5)
        begin //beign for if 
        message=1;
         contact_num=temp_number3; 
        end// end for if 
    end // end of for loop 
end

1 个答案:

答案 0 :(得分:0)

您不需要for-loop,而是需要在posedge时钟上激活的始终阻止,即:

begin
    always@(posedge clk)
    begin
       if(count3 == 5) begin
          message <= 1;
          contact_num <= temp_number3;
          count3 <= count3 + 1;
       end else if(count 3 == 9) begin
          count3 <= 0;
          stopFlag <= 1;
       end else if(~stopFlag)
          count3 <= count3 + 1;
    end
end