순차회로(Sequential circuit)란?
출력이 현재의 입력뿐만 아니라 이전 상태에도 의존하는 디지털 회로이다.
이제 우리는 이 순차회로도가 주어지면 그 회로도를 보고 어떤 입력들이 왔을 때, 어떤 값을 출력하는지에 대한 분석을 해보려고 한다.
[분석 방법]
1. 회로도를 보고 각 플립플랍과 출력에 대한 function 도출하기
2. 도출된 function을 바탕으로 State table 도출하기
3. State table을 바탕으로 State diagram 만들기
아래 JK flip-flop 순차회로를 바탕으로 분석을 해보자!
1. function 도출하기
우선, 각 플립플랍과 출력에 대한 function을 도출해야하지만 현재 출력은 없기 때문에 각 플립플랍에 대한 function만 도출해보자.
플립 플랍은 출력 A에 있는 J, K와 출력 B에 있는 J, k가 있기 때문에 이에 대한 function을 도출해보자.
J(A) = B
K(A) = BX'
J(B) = X'
K(B) = A⊕X = AX' + A'X
2. State table 만들기
<채우는 순서>
순서 - 1
Present state(현재) | Input | Next state(현재 +) | Output | Flip - Flop Inputs | 필수x | |||||
A | B | X | A+ | B+ | 없음 | J(A) | K(A) | J(B) | K(B) | A' |
0 | 0 | 0 | ||||||||
0 | 0 | 1 | ||||||||
0 | 1 | 0 | ||||||||
0 | 1 | 1 | ||||||||
1 | 0 | 0 | ||||||||
1 | 0 | 1 | ||||||||
1 | 1 | 0 | ||||||||
1 | 1 | 1 |
넣은 값은 그냥 3 변수에서 나올 수 있는 모든 경우의 수를 작성한 것이다.
순서 - 2
Present state(현재) | Input | Next state(현재 +) | Output | Flip - Flop Inputs | 필수x | |||||
A | B | X | A+ | B+ | 없음 | J(A) | K(A) | J(B) | K(B) | A' |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | |||
0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | |||
0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | |||
0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | |||
1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | |||
1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |||
1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | |||
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
참고) A'는 K(B) 연산을 위해서 만들어 놓은 것으로 필수는 아니지만 옆에 만들어 놓으면 편해진다.
Function을 기반으로 A, B, X 값에 따른 연산 값을 넣은 것이다.
순서 - 3
Present state(현재) | Input | Next state(현재 +) | Output | Flip - Flop Inputs | 필수x | |||||
A | B | X | A+ | B+ | 없음 | J(A) | K(A) | J(B) | K(B) | A' |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | |
0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | |
0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | |
1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |
1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | |
1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
A+와 B+는 JK 진리표를 기반으로 입력하면 된다.
4개의 경우의 수를 따져보자.
J(A) = 0, K(A) = 0 인 경우 Q -> Q+ 이다. 따라서 A의 현재 상태는 0이기 때문에 A+는 0이다.
J(A) = 0, K(A) = 1 인 경우 Q -> 0 이다. 따라서 A의 현재 상태는 0이기 때문에 A+는 0이다.
J(A) = 1, K(A) = 0 인 경우 Q -> 1 이다. 따라서 A의 현재 상태는 0이기 때문에 A+는 1이다.
J(A) = 1, K(A) = 1 인 경우 Q -> Q+' 이다. 따라서 A의 현재 상태는 0이기 때문에 A+는 1이다.
B도 마찬가지이다.
3. State Diagram 만들기
[State Diagram의 규칙]
1. 화살표 시작에는 입력 값 A B의 현재 값이, 화살표 끝에는 입력 값 A B의 다음 값이 있어야한다.
2. 화살표 중간에는 Input / Output 형식으로 작성되어야한다. (출력 값이 없다면 Input만 작성)
상태표를 분석해보자.
- 현재 값 A = 0, B = 0 이고 Input X = 0이면 다음 값은 A = 0, B = 1
- 현재 값 A = 0, B = 0 이고 Input X = 1이면 다음 값은 A = 0, B = 0
- 현재 값 A = 0, B = 1 이고 Input X = 0이면 다음 값은 A = 1, B = 1
- 현재 값 A = 0, B = 1 이고 Input X = 1이면 다음 값은 A = 1, B = 0
- 현재 값 A = 1, B = 0 이고 Input X = 1이면 다음 값은 A = 1, B = 1
- 현재 값 A = 1, B = 0 이고 Input X = 0이면 다음 값은 A = 1, B = 0
- 현재 값 A = 1, B = 1 이고 Input X = 1이면 다음 값은 A = 0, B = 0
- 현재 값 A = 1, B = 1 이고 Input X = 0이면 다음 값은 A = 1, B = 1
이제 이 분석으로 그림을 그리면 아래와 같다.
'2학년 2학기 > 컴퓨터 구조' 카테고리의 다른 글
2024.09.25 - ch1관련 문제 (0) | 2024.09.26 |
---|---|
1.7 Sequential circuit - 순차회로의 설계 (0) | 2024.09.22 |
1.6 Flip-flop(SR, D, JK, T) - 암기 (0) | 2024.09.22 |
1.6 Flip-flop을 하기전 래치에 대해서 (0) | 2024.09.21 |
1.5 Combinational circuits (0) | 2024.09.21 |