Language/Verilog & SV

[Verilog] Clock generator

VIR&US 2023. 7. 20. 17:22
반응형

목차


    Clock generator

    • Blocking assignment(BA)을 사용해야 합니다. NonBlocking assignment(NBA)는 사용하지 말아야 합니다.
    • 시작신호(time-0)는 Low로 권장합니다.
    • negedge로 초기화해야 합니다.
    • start_delay 사용을 권장합니다.

    Clock을 BA로 설계해야 하는 이유

    BA로 표현한 문장은 처리되는 중 다른 이벤트들이 처리되지 않습니다. Clock은 모델의 작동에 기준이 되기 때문에 BA로 작성하여 확실한 이벤트 처리 기준이 되어야 합니다.

     

    // Clock generator model
    
    `timescale 1ns/1ns
    `define CYCLE 10 
    `define START_DLY 5
    
    module clkgen; 
      reg clk ; 
     
      initial begin
        clk <= 0; 
        #`START_DLY
        forever #(`CYCLE/2) clk = ~clk;
      end
    
    endmodule
    

     

    728x90
    반응형