안녕하세요.
이번 시간부터 순서 논리회로에 대해 알아보겠습니다. 우선 가장 기본적이면서 디지털 회로설계에 주요한 래치와 플립플롭에 대해 알아보겠습니다.
순서논리 회로에는 다양한 내용이 있습니다. 필요에 따라 아래 글들도 참고해보세요~!!~
1. Latch(래치)와 Flip-flop(플립플롭)
https://semicircuit.tistory.com/37
2. 비동기 카운터
https://semicircuit.tistory.com/38
3. 동기 카운터
https://semicircuit.tistory.com/39
4. 불규칙 카운터
https://semicircuit.tistory.com/40
5. State Machine 설계
https://semicircuit.tistory.com/41
6. UP/DOWN Counter
https://semicircuit.tistory.com/42
7. 시프트 레지스터
https://semicircuit.tistory.com/43
※1. latch(래치)와 Flip-flop(플립플롭)
cf) clock: gate들의 delay로 일정시간의 주기를 갖도록 하는 소자
※2. latch(래치) vs Flip-flop(플립플롭) 차이
1. 데이터 저장 타이밍을 저장하는 신호를 1과 0으로 받으면(Level-sensitive 방식), 정확한 타이밍을 알기 어렵다. 이를 보안하기 위해 0과 1 Level 대신 Risig Edge와 Fallind Edge를 활용하고(Edge-sensitive) 이것을 위해 사용하는 Clock신호는 래치와 클럭의 주된 차이를 가지고 온다. latch(래치)는 Clock(클럭)을 사용하지 않고 Frip-flop(플립플롭)은 Clock(클럭)을 사용한다. Clock의 사용 유무가 원인이 되어 아래의 차이가 발생한다.
2. Level-sensitive 특징에 따라 연속적으로 입력을 확인하고 그에 따른 출력을 변경하며, 플립플롭은 입력을 계속 확인하지만 클럭신호와 대응하는 방식으로 Edge-Sensitive에 따른 Edge(상승,하강)에서 출력을 변경한다. (즉, 트리거 방식의 차이)
3. 구성의 부분에서 latch(래치)는 논리게이트의 조합으로 회로를 구성하는데 Frip-flop(플립플롭)은 클록 신호와 래치를 조합하여 구성된다.
4. latch(래치)는 비동기식(Asynchronous)신호이고 입력신호만 사용하여 입력개수=입력신호 이지만 Flip-frop(플립플롭)은 동기식(Synchronous)신호이고 입력신호와 clock신호를 사용하여 입력개수=입력신호+clock신호이다.
5. 결론적으로 래치는 클럭신호가 없어 레지스터로 사용할 수 없다. 그러나 플립플롭은 함께 레지스터로 작동 할 수 있다.
※3. latch(래치)의 종류
▶1. S-R Latch
▶2. J-K Latch
cf) 다음처럼 래치 앞에 gate회로를 통해 1때는 정상적인 동작, 0일 때는 무조건 Hold하는 회로를 구상할 수 있다.
▶3. T Latch
▶4. D Latch
cf) Comments
⓵ Hold/유지 : Q의 이전의 출력 상태 기억 (초기상태는 Q=0)
⓶ Set : Q=1인 상태
⓷ Reset : Q=0인 상태
⓸ Unknown/Not used : 존재 할수 없는 상태(에러)
⓹ Toggle/반전 : Q의 이전의 출력 상태를 반전해서 기억
※4. Flip-flop의 종류
▶1. S-R Flipflop
▶2. J-K Flipflop
▶3. T Flipflop
▶3. T Flipflop
cf) CLK에 버블이 붙지 않으면 rasing Edge Triggering
CLK에 버블이 붙으면 Falling Edge Triggering
※5. 트리거 방식(Tringging)
▶1. 래치의 트리거 방식
입력 EN에 버블이 붙으면 DIsable(Low level Triggering), 붙지 않으면 ENABLE(High level Triggering)
▶2. 플립플롭의 트리거 방식
입력 CLK에 버블이 붙으면 하강 에이지(Negative Edge Triggering, CLK에 버블이 붙지 않으면 상승 에이지(Positive Edge Triggering)
Solution||
1) 데이터 저장 타이밍을 저장하는 신호를 1과 0으로 받으면(Level-sensitive 방식), 정확한 타이밍을 알기 어렵다. 이를 보안하기 위해 0과 1 Level 대신 Risig Edge와 Falling Edge를 활용하고(Edge-sensitive) 이것을 위해 사용하는 Clock신호는 래치와 클럭의 주된 차이를 보여주게 한다. latch(래치)는 Clock(클럭)을 사용하지 않고 Frip-flop(플립플롭)은 Clock(클럭)을 사용한다. Clock의 사용 유무가 원인이 되어 아래의 차이가 발생한다.
2) Level-sensitive 특징에 따라 연속적으로 입력을 확인하고 그에 따른 출력을 변경하며, 플립플롭은 입력을 계속 확인하지만 클럭신호와 대응하는 방식으로 Edge-Sensitive에 따른 Edge(상승,하강)에서 출력을 변경한다.
3) 구성의 부분에서 latch(래치)는 논리게이트의 조합으로 회로를 구성하는데
Frip-flop(플립플롭)은 클록 신호와 래치를 조합하여 구성된다.
4) latch(래치)는 비동기식(Asynchronous)신호이고 입력신호만 사용하여 입력개수=입력신호 이지만 Flip-frop(플립플롭)은 동기식(Synchronous)신호이고 입력신호와 clock신호를 사용하여 입력개수=입력신호+clock신호이다.
5) 결론적으로 래치는 클럭신호가 없어 레지스터로 사용할 수 없다. 그러나 플립플롭은 함께 레지스터로 작동 할 수 있다.