플립플롭의 기능차례1.Latch와 Flip-Flop 2.RS Flip-Flop 3.D Flip-Flop 4.JK Flip-Flop 5.T Flip-Flop 6.예비 문제 7.시뮬레이션 결과1.Latch란?2개 이상의 게이트를 가지고 각 게이트의 출력이 피드백되어 다시 게이트의 입력으로 들어가는 기억장치1-1)RS Lactch1-2)D Lactch1-3)Flip Flop이란?래치는 클럭과 무관하게 동작하지만 플립플롭은 클럭의 변화에 따라 움직이는 것. Edge trigger2.RS Flip FlopRS Flip Flop 동작3.D Flip Flop4.JK Flip Flop5.T Flip Flop6.예비 문제(2) RS flip flop을 JK flip flop으로 변환1001110110110X*************110X000100X1100X00000RSQ(t+1)Q(t)KJRS flip flop을 D flip flop으로 변환0X1110110110010X0000RSQ(t+1)Q(t)DRS flip flop을 T flip flop으로 변환10011011010X110X0000RSQ(t+1)Q(t)T6.(3)Race 문제Race problem현상은 하나의 게이트에 대한두 개 이상의 상태 변수가 동시에 변할 때 일어나는 문제를 말한다.7.시뮬레이션 결과1.2.3.4.5.6.7.END{nameOfApplication=Show}
설계이론1. 동기식 modulo-N 카운터 설계에 있는 디지털 전체 블록도처럼 모든 카운터가 하나의 공통 클럭 펄스에 동기되어 있기 때문에 만일 enable 제어 기능이 없다면 클럭 펄스가 인가될 때마다 모든 카운터가 동시에 각각 1씩 증가하게 된다.따라서 시계는 시,분, 초 마다 카운터가 되는 방식이 달라야 한다.즉 전체적으로 시계의 각 자리별 카운터가 1이 증가하는 시점을 정리하면 다음과 같다.? 초의 일의자리 10진카운터 증가시점 : 1Hz 클럭이 인가될 때마다? 초의 십의자리 6진카운터 증가시점 : 초의 일의자리 10진 카운터가 9에서 0으로 변할 때? 분의 일의자리 10진카운터 증가시점 : 초의 십의자리 6진 카운터가 5에서 0으로 변할 때 (즉, 59초에서 00초로 변할 때)? 분의 십의자리 6진카운터 증가시점 : 분의 일의자리 10진 카운터가 9에서 0으로 변할 때 (즉, x9분 59초에서 y9분 00초로 변할 때)? 시를 나타내는 12진 카운터 증가시점 : 분의 십의자리 6진 카운터가 5에서 0으로 변할 때 (즉, 59분 59초에서 00분 00초로 변할 때)이와 같이 시계를 구성하는 각 카운터가 1이 증가하는 시점이 다르기 때문에 각 카운터마다 enable 기능을 갖는 카운터를 설계해야 한다.즉, 각 카운터는 자신의 우측에 있는 카운터로부터 입력되는 enable 제어신호 Ei가 1일 때만 동작(1증가)하도록 설계해야 하며, 또한 자신의 좌측에 있는 카운터로 공급할 enable 신호 Eo를 만들어 출력해주어야 한다.●Eo 출력신호 제작방법으로부터 알 수 있듯이 초를 나타내는 부분이 50초를 넘어서면서부터 초부분의 6진 카운터는 최상위값 5를 나타냄. 이때 Eo가 1로 출력이 되면 분 부분의 10진 카운터의 Ei가 1로 되어 분의 10진 카운터도 클럭펄스에 동기되어 초 부분의 10진 카운터와 같이 증가된다. 이는 오동작이기 때문에 단순히 출력 Eo를 만들기 위해 자신의 카운터 값이 최대값인 경우만을 디코딩해서는 안 되며, 카운터의 단계가 올라갈수록 현재 자신의 값을 비롯하여 자신의 밑에 있는 모든 카운터가 각자의 최상위 값을 가지고 있을 경우에 출력 Eo를 1로 만들어 줘야 한다.그리고 이와 같이 하기 위해서는 에 나타낸 것과 같이 모든 카운터는 자신이 최대값이 되었을 때 1이 되는 신호 Eo*와 자신에게 입력으로 들어오는 Ei 신호를 AND 연산한 결과를 출력 Eo로 내보내면 된다. 이와 같은 원리에 따라 설계된 enable 출력신호 Eo 생성회로는 다음과 같다.● 입력 Ei가 1일 때만 동작하는 카운터 자체 설계설계하고자 하는 카운터는 입력 Ei가 0일 경우에는 동작을 하지 않고 현재 값을 유지하면 된다. 따라서 JK 플립플롭의 입력 J와 K에 각각 0이 들어오면 현재 값을 유지하는 특성을 이용하여 입력 Ei와 각 플립플롭의 입력 J, K로 들어가는 값을 각각 AND 연산하여 J, K에 입력하면 이 카운터는 enable 기능을 갖는 카운터로 바뀌게 될 것이다. 을 보면 enable 기능이 없는 6진 카운터와 enable 기능을 갖는 6진 카운터이다. enable 기능이 있는 카운터에서 Ei가 0일 경우에 모든 플립플롭의 J, K 입력은 0이 되어 현재 값이 유지되어 카운터가 멈추게 되고, 1일 경우에는 Ei를 연결하기 전과 같은 값이 플립플롭의 입력 J, K로 들어가기 때문에 Ei가 없었을 때와 같이 동작한다.의 enable 출력 Eo는 에서 살펴본 바와 같이 카운터가 최대값일 때 Ei와 AND 연산을 하여 출력하면 된다. 즉 6진 카운터에서 최대값(101)은 C와 A가 1일 때이므로 C,A,Ei를 AND 연산하면 Eo가 된다.2. 시간을 표시하기 위한 디코더 설계시계를 만들기 위해서는 앞에서 설계한 카운터들의 값을 눈으로 볼 수 있도록 7세그먼트를 사용하여 숫자를 표시해야 한다. 분이나 초를 나타내는 6진 또는 10진 카운터들은 BCD-to-7세그먼트 디코더(TTL 7447)를 이용하여 값을 쉽게 표시할 수 있다. 그러나 시를 나타내는 12진 카운터인 경우에는 다르다. 일상생활에 쓰이는 시계를 보면 0시 대신 12시로 표시되기 때문에 12진 카운터 값이 0일 경우 12시로 표시되도록 해야 할 필요가 있다. 또한 12진 카운터의 값이 10 또는 11일 경우 하나의 TTL 7447 디코더와 7세그먼트 표시기로 값을 표시하면 하나의 자리로 표시되기 때문에 10 이상의 수는 두 자리로 표현하기 위해서 디코더를 설계해야 한다. 설계하는 디코더의 기능은 2진수를 입력받아 BCD로 변환하여 출력하는 디코더이다. 그리고 그 디코더는 과 과 같이 설계할 수 있다.에 나타낸 디코더는 12진 카운터의 값을 입력으로 받아 직접 7세그먼트 표시기를 구동할 수 있는 출력을 만들어내도록 설계하는 경우이다.이 경우 와 같은 진리표에 따라 디코더 회로를 설계할 수 있다.에 나타낸 12시간 표시기 디코더 회로는 보다 쉽게 회로를 설계할 수 있도록 TTL 7447을 이용하는 경우이다. 즉 TTL 7447은 0에서 9사이의 값을 입력받을 경우 7세그먼트 표시기에 우리가 실제 사용하는 숫자 모양으로 표시할 수 있도록 해주는데 착안하여 의 진리표에 나타낸 것과 같이 입력되는 2진수를 BCD로 변환하는 역할만을 수행하도록 디코더를 설계한다. 진리표에서 출력 E는 입력받은 숫자의 십의 자리를 나타내는 것으로 십진수로 10, 11 또는 0이 입력될 때 1이 출력된다. 진리표에서 나머지 출력 F, G, H, I는 일의 자리를 나타내기 위한 4비트를 의미한다. 표에서 입력이 0000일 경우 출력은 10010(BCD로 12)이 출력되고, 1010 또는 1011이 입력될 경우에는 각각 10000(BCD로 10), 10001(BCD로 11)이 출력됨을 볼 수 있다.3. 오전/오후 표시 회로 설계오전/오후의 표시는 시간이 11시 59분 59초에서 12시로 변할 때에 맞추어 표시가 바뀌도록 하면 된다. 따라서 에 나타낸 회로와 같이 시를 나타내는 12진 카운터의 enable 출력 Eo를 T 플립플롭의 입력에 연결해주면 된다. 참고로 앞에서 설계했던 시분초들을 나타내는 각 카운터들의 E0 출력은 자신의 카운터 카운터 값이 최대값이면서 동시에 아랫자리로부터의 Ei가 1이 입력될 때 Eo 출력이 1이 되도록 설계하였고, 또한 아랫자리 플립플롭의 Eo를 윗자리 플립플롭의 Ei로 차례로 연결하여 사용한다. 따라서 결국 시를 나타내는 12진 카운터는 자신의 카운터값이 최대값(11시)인 구간의 마지막 한 클럭 주기 동안(11시 59분 59초)만 1이 출력된다. 따라서 의 T 플립플롭은 정확히 12시간마다 한번씩 상태값을 바꾸게 된다.에 나타낸 오전/‘오후 표시 회로에서는 LED 2개를 사용하여 오전/오후를 표시하도록 하였으며, T 플립플롭의 값에 따라 오전 또는 오후에 해당하는 LED가 켜지게 된다.4. 시간 설정 회로앞에서 설계한 시계 회로의 시분초를 표시하는 각 카운터는 enable 입력 Ei에 1이 들어오고 있을 때 클럭에 맞추어 자신의 값을 1씩 증가시킨다. 값을 변화시키고자 하는 카운터의 Ei 입력을 적당한 시간동안 1로 만들어주면 시간을 맞출 수 있다.
설계프로젝트 1그림의 (a) 회로는 4개의 변수 vs, R1, R2, R3를 갖고 있다. 이 회로를 설계하기 위하여 이 4개의 변수값을 결정하여야 한다. (b)회로는 전류 i와 전압 v의 관계를 나타낸 것이다. 그림 (a)회로 내의 전압 v와 전류 i가 그림 (b)의 그래프에 나타낸 관계를 충족하도록 변수 vs, R1, R2, R3의 값을 결정하라.힌트 1: (b)의 직선방정식은v = -Rti + voc즉, 직선의 기울기는 테브난 저항 Rt에 -1배한 것이고 V축상의 절점은 개방 회로 전압과 동일하다.힌트 2: 이 문제에는 1개 이상의 정답이 있다. R1 = R2로 하라.(a) (b)* 첨부되는 설계프로젝트 보고서 양식에 맞게 작성하여 제출하시오.설계프로젝트 1 결과보고서1. 상황 설정과 가정주어진 (b)번의 그래프를 보면 V가 5V일 때 I는 0mA이고, I가 8mA일 때, V는 0V인 것을 확인할 수 있다. 따라서와,를 구할 수 있다. 그리고 구한 그 값으로부터 그에 따른 원하는 변수들의 값들을 모두 결정할 수 있다.2. 설계 목표주어진 (a)회로에 주어진 변수들을 결정하고, PSPCIE를 이용하여 (b)번의 직선 방정식을 확인한다.3. 계획수립1)힌트의 직선방정식을 활용하여와를 구한다.2)를 구한다.3)를 이용하여값을 결정한다.4. 계획수행먼저 이 주어진 문제에서로 표현하였다.1)(b)번의 그래프에서 V=5V일 때 I=0mA이다. 따라서 주어진 직선의 방정식에 대입하면----(1)이다. 또한 V=0일 때 I=8mA이다. 따라서 주어진 직선의 방정식에 대입하면----(2)이다. 위의 두 수식에서 (1)의 값을 (2)에 대입해보면이다.(2)마디 해석법을 이용하여 첫 번째 마디에서이고이므로 수식을 정리하면이고,이므로는 10V이다.3)(a)의 회로에서는()이다. 그리고이므로