본문 바로가기
Design

[RTL Design] Clock generator

by VIR&US 2023. 7. 20.
반응형

목차


    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
    반응형

    'Design' 카테고리의 다른 글

    [RTL Design] Counter  (0) 2023.07.21
    [RTL Design] APB의 State FSM, 간단한 Master Code  (0) 2023.07.21
    [RTL Design] Full-adder, Ripple-carry adder  (0) 2023.07.20
    [RTL Design] D F/F  (0) 2023.07.19
    [RTL Design] Ram Model example Code  (0) 2023.07.06