받으신 자료 유료 레포트 사이트에 올리지 말아주세요.


dflipflop_decoder.zip



1. 개 요

. 플립플롭(Flip-Flop)의 한 종류이고 PLD(Programmable Logic Device)에서 사용되며, 가장 간단하고 보편적인 D플립플롭을 구성해본다.

. D플립플롭이 클록(Clock) 상태에 따라서 어떤 파형이 나오는지 확인해 본다.

. enable input 포함된 2 디코더를 구성해보고, enable input 따른 결과를 살펴본다.


2.
알고리즘

. D Flip-Flop

1) D 플립플롭은 클럭 펄스에 의해서 input값이 output 영향을 미치는지 여부를 결정할 있다.

2) 보통 상승에지 트리거와 하강에지 트리거의 종류가 사용되는데 실험에서는 상승에지 트리거 D 플립플롭을 구현하였다.

3) D 플립플롭의 진리표는 아래와 같다.

D

CLK

Q

NQ

0

0

1

1

1

0

D input, Q, NQ output

D 0 클럭이 상승에지라면 Q 값도 0으로 되고 NQ(Not Q) 반대값이 1 된다.

D 1 클럭이 상승에지라면 Q 1 반전되고 NQ 역시 0으로 반전된다.

. Decoder

1) enable input 포함된 2 디코더를 구현하였다.

2) enable input 따라서 출력을 제어할 있다.

enable 0이면 모든 출력은 1111 나타나며, 1이면 input 의해서 각기 다른 값이 출력된다.

3) 디코더는 입력단자의 (N) 따라서 출력단자의 (2N) 결정되는데, 이번 실험에서는 2개의 입력단자에 따른 4개의 출력단자에 대한 파형을 측정한다.

4) 디코더의 진리표는 아래와 같다.

input

output

enable

a

b

d3

d2

d1

d0

0

×

×

1

1

1

1

1

0

0

1

1

1

0

1

0

1

1

1

0

1

1

1

0

1

0

1

1

1

1

1

0

1

1

1

enable 0이면 a, b 관계없이 출력은 1111 나타난다.

enable 1이면 a, b 따라서 출력이 결정되며, 값은 각기 다르다.


3.

. Flip-Flop

module dflipflop(D, Q, NQ, CLK);

 

input D, CLK;

output Q, NQ;

reg Q, NQ;

 

always@(posedge CLK) // clock이 상승일 때만 아래 구문 실행

begin

if(D == 1'b0) // D 0이면 Q 0, NQ 1로 설정

begin

Q = 1'b0;

NQ = ~Q;

end

else // D 1이면 Q 1, NQ 0으로 설정

begin

Q = 1'b1;

NQ = ~Q;

end

end

 

endmodule

. Decoder

module decoder(a, b, en, o);

 

input a, b, en;

output [3:0]o;

reg [3:0]o;

 

always@(a, b, en)

begin

if(en==1'b1) // en값이 1이면 input에 의해서 output이 결정

begin

if(a==1'b0 && b==1'b0) // a 0, b 0이면 o 1110

o = 4'b1110;

else if(a==1'b0 && b==1'b1) // a 0, b 1이면 o 1101

o = 4'b1101;

else if(a==1'b1 && b==1'b0) // a 1, b 0이면 o 1011

o = 4'b1011;

else // a 1, b 1이면 o 0111

o = 4'b0111;

end

else // en값이 0이면 output은 항상 1111

o = 4'b1111;

end

 

endmodule


4.
파형 분석

. D Flip-Flop

1) D, CLK input, Q, NQ output이다.

2) 파형 출력 6ns 딜레이가 발생한다.

3) 클럭펄스(CLK) 인가(상승) 때만 D 신호가 출력(Q) 나타난다.

4) D 초기입력은 0이고 Q 1 상태에서 CLK 상승(1)하면, 약간의 딜레이 Q 값은 반전되어 0으로 바뀌고, NQ Q 반대 파형을 출력한다.

5) 마찬가지로 Q 0인 상태에서 D 1로 바뀌고 그 때 CLK가 상승(1)하면, Q 반전되어 1 바뀐다.

6) 그에 반하여 CLK 하강(0)하면, D Q 영향을 미치지 못하고 Q 원래 값을 그대로 출력하게 된다.

. Decoder

1) a, b, en input, o output이다.

2) 파형 출력 7ns 딜레이가 발생한다.

3) enable input 가진 2 디코더의 특징대로, en 0 때는 output 1111이고 en 1 때는 a, b 의해서 output 바뀐다. (이런 enable input 사용하는 이유는 디코더들의 회로동작을 제어하기 위해서 이다. enable input으로 회로를 동작시키거나 멈추게 있다.)

4) a, b 0이면 output 1110이고, a 1, b 0이면 output 1011, a 0, b 1이면 oupt 1101, a, b 1이면 output 0111이다.


참고 문헌

. 디지털 시스템(인터비젼 / Alan B. Marcovitz )

. 디지털 시스템 설계(양서각 / 이채봉, 정완영 공저)

. HDL Chip Design(Doone Publications / Douglas J Smith )


저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License