공부/Verilog

플립플롭(Flip - Flop) S-R , D , J-K , T

오비루 2022. 2. 26. 16:24
728x90
728x90

플립플롭은 1비트의 정보를 저장하는 회로를 뜻한다.

이러한 플립플롭은 클럭 펄스를 기반으로 동작이 되며 크게 SR , D , JK , T 로 구성되어있다.

 

1. SR F/F

S R Q(t+1)
0 0 Q(t)
0 1 0
1 0 1
1 1 X

 

SR 플립플롭은 가장 기본적인 플립플롭으로 clock 신호가 1이 될 때 신호가 전달된다.

한번 R = 0 , S = 1 의 상황을 가정하여 설명을 하자면, (초기 상태이기에 Q = X 의 값을 지님)

AND (R = 0 , clk = 1) => 0 ($R_{A}$), AND (S = 1 , clk = 1) => 1 ($S_{A}$)

NOR ($R_{A}$ = 0 , Q' = X) =>  ? , NOR ($S_{A}$ = 1 , Q = X) => Q 가 어떤 값이 들어오든 0.

따라서, Q' = 0이 나오며 해당 값이 위로 전달되어 NOR ($R_{A}$ = 0 , Q' = 0) =>  1 로 나온다.

 

2. D F/F

D Q(t+1)
0 0
1 1

 

D 플립플롭은 데이터의 전달을 늦추는 회로로, 다음 클럭까지 D값을 기억하는 회로이다.

회로를 살펴보면 SR 플립플롭에서 R 신호 대신 D' 의 신호가 들어가도록 되어있음을 확인 가능하다.

 

3. JK F/F

 

 

J K Q(t+1)
0 0 Q(t)
0 1 0
1 0 1
1 1 Q'(t)

 

JK 플립플롭은 SR 플립플롭에서 정의되지 않았던 1 1 신호가 Q' 로 출력되는 기능이 구현되었다.

여기서 JK 의 회로를 살펴보면 SR과 달리 AND 게이트에 Q의 값을 포함한 3 입력이 들어간다.

마찬가지로 J = 1 , K = 1 일때의 상황을 가정하여 설명을 해보겠다. (초기 상태이기에 Q = 1 의 값을 지님)

AND (K = 1 , clk = 1 , Q = 1) => 1, ($K_{A}$), AND (J = 1 , clk = 1 , Q' = 0) => 0 ($J_{A}$)

NOR ($K_{A}$ = 1 , Q' = 0) =>  0 , NOR ($J_{A}$ = 0 , Q = 1) => 0.

따라서, Q = 0이 나오며 해당 값이 아래로 전달되어 NOR ($J_{A}$ = 0 , Q = 0) =>  1 (Q')로 나오고, 해당 값이 다시 위로 전달되어 NOR ($K_{A}$ = 1 , Q' = 1) =>  0 (Q)의 값으로 고정된다.

최종적으로 Q = 1 -> 0 으로 Toggle 되었음을 확인 가능하다.

 

4. T F/F

 

T Q(t+1)
0 1
1 0

 

T 플립플롭은 T 가 0 이면 1로, T 가 1이면 0으로 바꾸는 기능이 있는 회로이다.

 


앞으로 디지털 회로에 관한 공부를 하다 애매한 부분이 생기면 공부 & 내용 정리 후 포스팅 예정!

728x90
반응형

'공부 > Verilog' 카테고리의 다른 글

Combinational logic delay  (2) 2022.08.26
Verilog - Assign & Always 차이  (0) 2022.08.22
[그냥 공부]#2 signed & unsigned  (1) 2022.03.06
[그냥 공부]#1 등가 연산자 , 타이밍 제어  (0) 2022.03.01