비동기 클리어로 포지티브 에지 트리거 T 플립 플롭 모델링

Aug 19 2020

비동기 클리어로 포지티브 에지 트리거 T 플립 플롭을 모델링하고 있습니다. 다음은 코드입니다.

module t_flip_flop_exam (q,clk,clear,t);
  input t ;
  input clk;
  input clear;
  output reg q ;
  reg internal_t;
  always @ (clear)begin
    if (clear==1)
      q=0;
    else 
      q=q;
  end
  always @ (posedge clk)begin
        if (t==1)
          q=~q;
        else 
          q=q;
     
  end
  
endmodule

이것은 효율적인 코드입니까? always블록 을 분리해야 하나요? 아니면 단일 블록 에 신호 동작 코드 clearclk신호를 모두 포함 할 수있는 방법이 always있습니까?

답변

1 toolic Aug 19 2020 at 17:33

다음은 always블록 을 결합하는 일반적인 방법입니다 .

module t_flip_flop_exam (q,clk,clear,t);
    input t;
    input clk;
    input clear;
    output reg q;

    always @(posedge clk or posedge clear) begin
        if (clear)
            q <= 0;
        else if (t)
            q <= ~q;     
    end
endmodule

단일 always블록 의 신호에 할당하는 것이 좋습니다 .

을 트리거 always상의 블록 posedgeclear합성이 원하는 로직을 추론 할 수 있도록 (비동기 명확한 동기 전환).

<=순차 논리 에는 비 차단 할당 ( )을 사용합니다 .

q=q암시 적이므로 명시 적으로 수행 할 필요가 없습니다 .