21. 플립 플롭과 래치 (Flip Flops and Latchs: Sequential Logic)
- 순차 회로는 정보를 저장할 시점을 정하기 위해 주기적인 신호를 필요로 한다.
- Clock 신호가 이를 위해 쓰일 수 있다.
- 1 bit를 저장하는 요소를 Flip Flop이라 한다.
- Flip Flop의 기본형을 latch라고 한다. (레벨 기반 방식)
- Latch는 아래 논리 게이트로 만들 수 있다.
- NAND, NOR, AND, OR, Inverter
지금까지 배운 것들로는 여러 개의 순차적 데이터를 처리하거나 input이 없어진 후에 데이터를 저장할 수가 없었다. 지금까지의 조합 회로에 Flip Flop을 더해서 이러한 문제를 해결할 수 있다.
플립 플롭 (Flip Flop)
플립 플롭은 FF라고도 하는데, 휘발성 메모리의 역할을 한다.
조합 회로에 들어오는 Input 신호가 변화했을 때, 플립 플롭으로 Next State가 입력된다. Flip Flop은 CLOCK에서 오는 timing signal을 받고 조합 회로에 Present state를 전달한다. 저장 공간의 기능을 하는 것이다.
Timing Signal은 0과 1이 주기적으로 반복되며 들어오게 되는데, 0에서 1로 값이 바뀌는 순간을 상승 엣지(Rising Edge), 1에서 0으로 바뀌는 순간을 하강 엣지(Falling Edge)라 한다.
S-R Latch with NORs
S-R latch는 교차 연결된 NOR 게이트들로 구성된다. R은 reset, S는 set 신호를 의미한다.
R에 신호가 들어오면 출력이 0이 되고, S에 들어오면 1이 된다. 전원이 공급되는 한, 교차 연결된 NOR 게이트 사이에서 값이 순회하며 저장된다. 진리표는 아래와 같다.
S | R | Q | Q' | 뜻 |
1 | 1 | 예측불가한 값 | 정의 안됨 | |
1 | 0 | 1 | 0 | SET |
0 | 1 | 0 | 1 | RESET |
0 | 0 | 지난 상태를 유지 | Stable |
NAND 게이트로도 같은 회로를 구성할 수 있는데, 이 때는 S와 R이 반전되어 S'-R' Latch 라고도 불린다.
Control 신호가 있는 S-R Latch
다음과 같이 Control 신호를 추가할 수 있다. 이 경우 Control 신호가 1이 아니면 값은 변하지 않는다.
D Latch
D Latch에는 S와 R의 두 입력을 D라는 하나의 입력으로 합친다.
어차피 S와 R이 함께 1인 경우는 고려할 필요가 없기 때문에, 두 입력을 D로 통일할 수 있다.
D | E | Q | Q' |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
X | 0 | 저장된 값 |
메모리 블록을 구성할 때, 보통 D FF나 add latch를 사용한다.
플립플롭 회로도
출처: 위키백과
플립플롭은 NOR로 구성했는지 NAND로 구성했는지에 따라 표기가 약간 바뀐다는 점에 유의하자.
Flip Flop VS Latch
데이터 저장 타이밍을 정하는 Control 신호를 1과 0으로 받으면, 정확한 타이밍을 알기 어렵다는 단점이 있다.
이를 보완하기 위해 0과 1 대신 Rising Edge와 Falling Edge를 활용한다. 이 경우 회로도는 다음과 같이 변한다.
이러한 Edge를 활용한 방식을 Flip Flop, Level을 이용한 방식을 Latch라 부른다.
이 경우, 진리표도 아래와 같이 변한다.
D | E | Q | Q' |
0 | ↑ | 0 | 1 |
1 | ↑ | 1 | 0 |
X | 0 | 저장된 값 |
플립플롭이 Falling Edge에서 작동하게 하고 싶다면, 간단하게 CLK 앞에 Inverter를 하나 붙여주면 된다.
Master-Slave D Flip Flop
위 경우, CLK가 각 D latch에 다르게 들어가기 때문에, 최종 결과는 falling edge에서 변화하게 된다. 두 Latch를 이용하여 Flip Flop을 구현한 것이다.
J-K Flip Flop
기존 S-R 플립플롭에서 사용되지 않던 11 입력에 토글 기능을 추가하였다. 기본적으로 J는 S, K는 R의 역할을 수행하며, 11이 입력되면 토글이라는 기능을 수행한다. 토글은 저장된 값을 반전시킨다.
T Flip Flop
토글 기능만을 사용할 수 있는 FF. CLK 타이밍에 T가 1이면 저장된 값이 토글된다.
비동기 입력 (Asynchronous Inputs)
S-R, D, J-K, T 플립플롭을 거치면 입력데이터가 플립플롭의 CLOCK에 의해 동기되어 출력에 전달되기에 동기 입력이라 한다. 플립플롭은 이러한 입력외에 비동기 입력을 갖기도 하는데, 바로 PRESET 입력과 CLEAR입력이다.
비동기 입력이 11일 때는 일반적인 플립플롭으로써 동작하지만, 각 입력이 0이 되면 아래와 같은 결과를 출력한다.
PRESET | CLEAR | FF 출력 |
1 | 1 | CLOCK에 따라 정상 작동 |
0 | 1 | 1 (CLOCK 타이밍과 무관하게) |
1 | 0 | 0 (CLOCK 타이밍과 무관하게) |
0 | 0 | 사용안함 |
D 플립플롭의 경우, RESET이라는 비동기 신호를 사용하는데, 해당 신호가 0이 되면 출력도 0이 된다.
'학부 수업 > 디지털시스템' 카테고리의 다른 글
23. 레지스터와 시프트 레지스터 (Register) (0) | 2020.06.27 |
---|---|
22. 유한 상태 기계 (Finite State Machine) (0) | 2020.06.26 |
20. Programmable Logic Device: PLD (0) | 2020.05.24 |
19. Read-Only Memories: ROM (0) | 2020.05.24 |
18. 3 상태 버퍼 (Tristate Buffer) (0) | 2020.05.24 |
댓글
이 글 공유하기
다른 글
-
23. 레지스터와 시프트 레지스터 (Register)
23. 레지스터와 시프트 레지스터 (Register)
2020.06.27 -
22. 유한 상태 기계 (Finite State Machine)
22. 유한 상태 기계 (Finite State Machine)
2020.06.26 -
20. Programmable Logic Device: PLD
20. Programmable Logic Device: PLD
2020.05.24 -
19. Read-Only Memories: ROM
19. Read-Only Memories: ROM
2020.05.24