D-Flip Flop(플립플롭)을 Verilog로 구현한 코드

Flip Flop(플립플롭)과 Latch(래치)는 1 또는 0을 저장 하는 소자이다.

Latch는 값이 변화하는 즉시 즉시 작동되는 소자이고, FlipFlop은 클럭에 의해서만 작동되는 소자이다.

D-Flip Flop을 Verilog HDL Behavior모델로 작성한 코드는 아래와 같다.

module DPETflipflop (D,CLK,PR,CLR,Q,iQ);
   output Q,iQ;
   input D,CLK,CLR,PR;
   reg Q,iQ;

   always @ (posedge CLK or negedge CLR or negedge PR)
   if((~CLR)&(~PR))
      begin
         Q = 1’b1;
         iQ = 1’b1;
      end
    else if(CLR&(~PR))
      begin
         Q = 1’b1;
         iQ = 1’b0;
      end
    else if((~CLR)&PR)
      begin
         Q = 1’b0;
         iQ = 1’b1;
      end
    else if(CLK&PR&CLR)
     begin
         Q = D;
        iQ = ~Q;
     end
endmodule


D-Flip Flop 작동되는 기준은 아래의 Truth Table이다.

——————————————————-
                INPUT                               |       OUTPUT
   Preset       Clear      Clock       D      |       Q        Q’
——————————————————-
       0             1            X          X       |      1         0
       1             0            X          X       |      0         1
       0             0            X          X       |      1         1
——————————————————-
       1             1            ↑          0       |      0         1
       1             1            ↑          1       |      1         0
       1             1            0           X      |      No Change
——————————————————-

Preset 과 Clear가 1,1 일 경우에만 클럭에 의해 작동되고
Preset과 Celar가 1,1이 아닐경우에는 각각 표에 따라 값이 출력된다.

이것이 Asynchronous(비동기) Preset 과 Clear를 가진 D-Flip Flop이다.

D-Flip Flop(플립플롭)을 Verilog로 구현한 코드”의 1개의 댓글

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.