다운/퍼 가실 때 댓글 부탁드려요. 그리고 받으신 자료 유료 레포트 사이트에 올리지 말아주세요.
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 저)
나. 디지털 시스템 및 설계(양서각 / 이채봉, 정완영 공저)
'레포트 자료' 카테고리의 다른 글
| 컴퓨터구조 설계 및 실험 - 유한상태기계(FSM - Finite State Machine) (2) | 2009/01/30 |
|---|---|
| 컴퓨터구조 설계 및 실험 - ripple carry adder(가산기) 및 감산기 (4) | 2009/01/29 |
| 컴퓨터구조 설계 및 실험 - D Flip-Flop & Decoder (1) | 2009/01/29 |
| 컴퓨터구조 설계 및 실험 - Multiplexer(멀티플렉서) (0) | 2009/01/29 |
| 자료구조(Data Structure) - Binomial Heap 과제 (1) | 2009/01/29 |
| 자료구조(Data Structure) - Graph 과제 (0) | 2009/01/29 |


dflipflop_decoder.zip



