4비트 동기 이진 카운터 설계 (JK 플립플롭 사용)
1. 개요
4비트 동기 이진 카운터는 클럭 신호에 동기화되어 0부터 24−1=152^4 – 1 = 15까지의 이진수를 반복적으로 카운트하는 디지털 회로입니다.
- 4비트: 카운트는 4개의 출력(Q3, Q2, Q1, Q0)으로 표현됩니다.
- 동기: 모든 플립플롭은 동일한 클럭 신호에 의해 동시에 작동합니다.
- JK 플립플롭: 이 카운터의 기본 빌딩 블록으로, 적절한 J와 K 입력 값을 통해 상태를 제어합니다.
2. JK 플립플롭의 동작
JK 플립플롭은 입력 JJ와 KK에 따라 다음 상태가 결정됩니다.
다음 상태 Qn+1Q_{n+1}은 아래 진리표에 따릅니다:
J | K | Qn+1Q_{n+1} (다음 상태) | 동작 설명 |
---|---|---|---|
0 | 0 | QnQ_n | 유지 (No change) |
0 | 1 | 0 | 리셋 (Reset) |
1 | 0 | 1 | 세트 (Set) |
1 | 1 | Qn‾\overline{Q_n} | 토글 (Toggle) |
3. 4비트 동기 카운터 설계
4비트 카운터는 Q3Q_3, Q2Q_2, Q1Q_1, Q0Q_0 네 개의 플립플롭으로 구성됩니다. Q0Q_0는 LSB(최하위 비트), Q3Q_3는 MSB(최상위 비트)입니다.
- 입력 JJ와 KK 값 결정
- 각 플립플롭의 토글 조건을 만족하도록 JJ와 KK를 설정합니다.
- 플립플롭은 이전 출력의 상태를 기준으로 동작합니다.
- 플립플롭 연결 규칙
- Q0Q_0 (LSB): 항상 J=1J = 1, K=1K = 1 (항상 토글).
- Q1Q_1: J=1,K=1J = 1, K = 1이지만, Q0=1Q_0 = 1일 때만 토글. 즉, Q0Q_0이 클럭 역할.
- Q2Q_2: J=1,K=1J = 1, K = 1, Q1⋅Q0=1Q_1 \cdot Q_0 = 1일 때만 토글.
- Q3Q_3 (MSB): J=1,K=1J = 1, K = 1, Q2⋅Q1⋅Q0=1Q_2 \cdot Q_1 \cdot Q_0 = 1일 때만 토글.
- 논리식 정리
- J0=K0=1J_0 = K_0 = 1
- J1=K1=Q0J_1 = K_1 = Q_0
- J2=K2=Q1⋅Q0J_2 = K_2 = Q_1 \cdot Q_0
- J3=K3=Q2⋅Q1⋅Q0J_3 = K_3 = Q_2 \cdot Q_1 \cdot Q_0
- 클럭 입력
- 모든 플립플롭은 동일한 클럭에 연결되므로 동기식 작동이 가능합니다.
4. 회로도
- 플립플롭 구성: 4개의 JK 플립플롭을 직렬 연결.
- 논리 게이트 사용: 각 플립플롭의 JJ와 KK 입력을 제어하기 위해 AND 게이트를 추가.
- 회로의 입력은 클럭이며, 출력은 Q3,Q2,Q1,Q0Q_3, Q_2, Q_1, Q_0입니다.
5. 상태 변환표
아래는 4비트 동기 카운터의 상태 변화를 나타낸 표입니다:
클럭 | Q3Q_3 | Q2Q_2 | Q1Q_1 | Q0Q_0 | 출력 값 |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 1 |
2 | 0 | 0 | 1 | 0 | 2 |
3 | 0 | 0 | 1 | 1 | 3 |
4 | 0 | 1 | 0 | 0 | 4 |
5 | 0 | 1 | 0 | 1 | 5 |
… | … | … | … | … | … |
15 | 1 | 1 | 1 | 1 | 15 |
16 | 0 | 0 | 0 | 0 | 0 |
6. 동작 요약
- 모든 플립플롭은 동기 클럭에 의해 동시에 작동합니다.
- 출력 값은 0부터 15까지 증가하며, Q0Q_0부터 Q3Q_3까지의 조합으로 표현됩니다.
- Q3Q_3, Q2Q_2, Q1Q_1, Q0Q_0는 높은 비트에서 낮은 비트 순으로 카운트의 진행을 나타냅니다.
추가로 회로 다이어그램.
위의 다이어그램은 4비트 동기 카운터에서 JK 플립플롭과 AND 게이트의 연결을 보여줍니다.
- Clock: 모든 JK 플립플롭에 동기화된 클럭 신호를 제공합니다.
- JK_0: LSB (최하위 비트) 플립플롭, 항상 J=1,K=1J=1, K=1으로 토글합니다.
- AND_1, AND_2, AND_3: 상위 비트 플립플롭의 JJ와 KK 입력을 제어하기 위해 사용됩니다. 각 AND 게이트는 이전 플립플롭의 출력을 입력으로 받습니다.
- JK_1, JK_2, JK_3: 상위 비트 플립플롭, Qn−1Q_{n-1} 값에 따라 토글됩니다.