
⚡ 이 글의 핵심 요약 (TL;DR)
· 동기 순서논리회로란 클록펄스 타이밍에 맞춰 상태가 바뀌는 회로
· 회로를 해석할 때는 → 변수명칭 → 불대수식 → 상태표 → 상태도 → 상태방정식 → 동작 설명 순서
· 회로를 설계할 때는 → 상태도 → 상태표 → 플립플롭 결정 → 여기표 → 입력함수 → 회로도 순서
· 여기표는 "다음 상태로 가려면 플립플롭 입력에 뭘 줘야 하나?"를 정리한 표
· 상태의 수가 많으면 상태 축소 + 상태 할당으로 플립플롭 수를 줄인다
01 · 동기 순서논리회로란?
디지털 회로는 크게 두 가지로 나뉩니다. 현재 입력만으로 출력이 결정되는 조합논리회로와, 입력뿐 아니라 과거의 상태(기억)까지 고려하여 출력이 결정되는 순서논리회로입니다.
📖 동기 순서논리회로 정의
클록펄스(Clock Pulse)가 들어오는 순간에만 상태가 바뀌는 순서논리회로.
마치 "선생님이 '바꿔!' 라고 말할 때만 자리를 이동하는 학생"처럼, 신호를 받을 때만 동작합니다.
| 🕐 동기 순서회로 · 클록펄스가 올 때만 상태 변화 · 이산된 시점에서만 동작 · 설계 및 분석이 상대적으로 용이 · 대부분의 디지털 시스템이 여기 해당 |
⚡ 비동기 순서회로 · 입력이 바뀌면 즉시 상태 변화 · 시간에 상관없이 동작 · 설계가 복잡하고 오류 발생 가능성 높음 · 클록 없이도 동작 가능 |
✓ 순서논리회로 구조 이해
순서논리회로는 조합논리회로 + 메모리 소자(플립플롭)로 구성됩니다.
· 조합논리회로 : 현재 입력 X(t)와 이전 출력 Y(t-1)을 받아 현재 출력 Y(t)를 계산
· 메모리 소자 : 플립플롭이 이전 상태 Y(t-1)을 기억하여 조합논리회로에 피드백
· 클록펄스 : 메모리 소자가 언제 상태를 갱신할지 결정하는 신호
상태도의 두 가지 종류

| 구분 | 무어 머신 (Moore) | 밀리 머신 (Mealy) | 차이점 |
| 출력 결정 | 현재 상태만의 함수 | 현재 상태 + 입력의 함수 | Mealy가 입력에 더 빠르게 반응 |
| 출력 표시 위치 | 원(상태) 내부에 표시 | 화살표(전이선) 위에 표시 | 상태도 모양이 다름 |
| 표기 방식 | 원 안에 출력값 기재 | 화살표에 입력/출력 기재 | 예: 화살표 위에 1/0 → 입력1일때 출력0 |
✓ Tip — 밀리 머신의 단점: 글리치(Glitch)
밀리 머신은 입력에 즉각 반응해 빠르다는 장점이 있지만, 입력 신호에 노이즈가 생기면 클록과 무관하게 출력에 원치 않는 짧은 펄스(글리치, Glitch)가 발생할 수 있습니다.
반면 무어 머신은 출력이 클록 이후 상태에만 의존하므로 이런 글리치에 강합니다. 그래서 안정성이 중요한 시스템에서는 무어 머신을 선호하기도 합니다.
02 · 동기 순서논리회로 해석 과정 — 6단계
이미 만들어진 회로를 보고 "이 회로가 어떤 동작을 하는지 알아내는 것"이 해석(Analysis)입니다. 설계와는 반대 방향입니다.
| ① 변수명칭 부여 |
→ | ② 불대수식 유도 |
→ | ③ 상태표 작성 |
→ | ④ 상태도 작성 |
→ | ⑤ 상태방정식 → ⑥ 동작설명 |
각 단계별 핵심 내용
| 단계 | 하는 일 | 쉬운 설명 |
| ① 변수명칭 부여 | 입력변수, 출력변수, 플립플롭 입출력에 이름 붙이기 | 회로의 각 신호에 라벨을 붙이는 과정. x(입력), y(출력), A·B(플립플롭 출력) 등 |
| ② 불대수식 유도 | 회로도에서 각 게이트 연결을 논리식으로 변환 | 회로 배선을 수식으로 옮기는 과정. 예: S_A = Bx̄, R_A = B̄x |
| ③ 상태표 작성 | 현재 상태 + 입력 → 다음 상태 + 출력을 표로 정리 | 수식에 0/1을 대입해 모든 경우의 수를 표로 정리. "진리표"와 비슷한 개념 |
| ④ 상태도 작성 | 상태표를 그림(원과 화살표)으로 시각화 | 각 상태를 원으로, 상태 전이를 화살표로 나타냄. 한눈에 동작 파악 가능 |
| ⑤ 상태방정식 | 플립플롭이 1이 되는 조건을 대수식으로 표현 | 카르노맵으로 간소화 가능. SR/JK 특성방정식으로 변환하여 검증 |
| ⑥ 동작 설명 | 상태도/상태표로 회로의 기능을 서술 | 예: "입력 x=1일 때 클록마다 00→01→11→10 순으로 동작하는 카운터" |
📋 예제 회로 — SR 플립플롭 2개짜리 순서논리회로를 6단계로 해석하기
📖 예제 회로 구성
SR 플립플롭 2개(F-FA, F-FB)와 AND 게이트 5개, NOT 게이트 1개(인버터)로 구성된 동기 순서논리회로입니다.
입력 x는 NOT 게이트를 거쳐 x̄도 함께 생성됩니다. 두 플립플롭의 출력 A·B가 반대편 플립플롭의 입력 게이트에 교차 연결되어 있는 것이 핵심 구조입니다.
🔌 회로도

① 단계 — 변수명칭 부여
회로에 등장하는 모든 신호에 이름을 붙입니다. 이름이 없으면 수식으로 표현할 수 없습니다.
· 입력변수 : x (NOT 게이트를 거쳐 x̄도 생성)
· 출력변수 : y
· F-FA 플립플롭 입력 : SA, RA
· F-FB 플립플롭 입력 : SB, RB
· F-FA 플립플롭 출력 : A
· F-FB 플립플롭 출력 : B
② 단계 — 불 대수식 유도
회로도의 각 AND 게이트 입력 신호를 그대로 곱(AND)으로 씁니다.

③ 단계 — 상태표 작성
②에서 구한 수식에 현재 상태(A, B)와 입력(x)의 모든 조합(0/1)을 대입하여 다음 상태와 출력 y를 계산합니다.

④ 단계 — 상태도 작성
상태표를 시각화합니다. 원 = 상태, 화살표 = 전이, 화살표 위 표기 = 입력x / 출력y 형식입니다.

⑤ 단계 — 상태방정식 유도
상태표에서 A(t+1)=1, B(t+1)=1이 되는 민텀(minterm)을 모아 카르노맵으로 간소화합니다.

⑥ 단계 — 회로의 동작 설명
상태표와 상태도를 종합해 이 회로가 무엇을 하는 회로인지 서술합니다.
x=1일 때 : 클록펄스가 들어올 때마다 00 → 01 → 11 → 10 → 00 … 순서로 상태가 순환합니다.
x=0일 때 : 현재 상태를 그대로 유지합니다(상태 전이 없음).
출력 y=1 : 현재 상태가 10(AB=10)이고 x=1일 때만 y=1이 출력됩니다.
👉 결론 : 이 회로는 입력 x=1이 인가될 때 Gray Code(그레이 코드) 순서로 카운트하는 동기 카운터입니다.
💡 그레이 코드의 강점
00→01→11→10 순서에서 매 전이마다 단 하나의 비트만 변합니다(예: 01→11은 두 번째 비트 하나만 변화). 덕분에 상태 전환 순간 여러 비트가 동시에 바뀌며 생기는 순간적 오류(글리치)를 원천적으로 줄일 수 있습니다. 위치 인코더, ADC 등 정밀도가 필요한 곳에 널리 쓰이는 이유입니다.
03 · 플립플롭의 여기표 — 설계의 핵심 도구
여기표(Excitation Table)는 설계 시 가장 자주 쓰이는 도구입니다. 특성표와 헷갈리기 쉬우니 차이를 먼저 잡아봅시다.
| 📋 특성표 (Characteristic Table) 질문: 현재 상태와 입력이 주어지면 다음 상태는? → 입력 S, R을 알고 있을 때 → 다음 상태 Q(t+1)을 구하는 표 방향: 입력 → 출력 |
📐 여기표 (Excitation Table) 질문: 현재 상태에서 다음 상태로 가려면 입력이 뭐여야? → 원하는 상태 전이를 알고 있을 때 → 필요한 입력 S, R을 구하는 표 방향: 출력 → 입력 (역방향!) |
⚠️ 여기표를 쓰는 이유
설계할 때는 "어떤 상태로 가야 하는지"를 먼저 결정합니다.
그 다음 "그러면 플립플롭에 어떤 입력 신호를 줘야 하나?"를 역산하는 데 여기표를 씁니다.
특성표의 반대 방향이라고 생각하면 됩니다.
SR / JK / D / T 플립플롭 여기표 핵심 정리

| 플립플롭 | Q(t) | Q(t+1) | 필요 입력 | 해석 |
| SR 플립플롭 |
0 | 0 | S=0, R=× | 그대로 0 유지. R은 상관없음 |
| 0 | 1 | S=1, R=0 | 0→1 세트, S에 1 필요 | |
| 1 | 0 | S=0, R=1 | 1→0 리셋, R에 1 필요 | |
| 1 | 1 | S=×, R=0 | 그대로 1 유지. S는 상관없음 | |
| JK 플립플롭 |
0 | 0 | J=0, K=× | SR과 유사, K는 무관조건 |
| 0 | 1 | J=1, K=× | JK는 금지상태가 없어서 K 무관! | |
| 1 | 0 | J=×, K=1 | J가 무관조건 → 카르노맵 간소화 유리 | |
| 1 | 1 | J=×, K=0 | 무관조건이 많아 설계에 가장 편리 | |
| D 플립플롭 |
0 | 0 | D=0 | D = Q(t+1) — 다음 상태값을 그대로 입력에 넣으면 됨. 가장 단순! |
| 0 | 1 | D=1 | ||
| 1 | 0 | D=0 | ||
| 1 | 1 | D=1 | ||
| T 플립플롭 |
0 | 0 | T=0 | T = Q(t) XOR Q(t+1) — 상태가 바뀌면 T=1, 그대로면 T=0. 카운터 설계에 최적! |
| 0 | 1 | T=1 | ||
| 1 | 0 | T=1 | ||
| 1 | 1 | T=0 |
04 · 동기 순서논리회로 설계 과정 — 8단계
설계(Design)는 해석의 반대입니다. "이런 동작을 하는 회로를 만들어라"는 명세에서 출발해 실제 회로도를 완성하는 과정입니다.

| 단계 | 작업 내용 | 포인트 |
| ① 회로 동작 기술 | 상태도 작성 | 원하는 동작을 상태도(원+화살표)로 표현 |
| ② 상태표 작성 | 상태도 → 상태표로 변환 | 현재 상태 + 입력 → 다음 상태를 표로 정리 |
| ③ 상태 축소·할당 | 불필요한 상태 제거 + 2진수 부여 | 동일 동작 상태를 합쳐 플립플롭 수 최소화 |
| ④ 플립플롭 결정 | 개수 + 종류 선택 | n개 상태 → ⌈log₂n⌉개 필요. 카운터엔 JK·T 유리 |
| ⑤ 변수 기호 부여 | 플립플롭 입출력에 이름 부여 | 해석의 ① 단계와 동일. 표기 체계 확립 |
| ⑥ 여기표 작성 | 상태표 + 여기표 결합 | 핵심! 각 상태 전이에 필요한 플립플롭 입력 값 결정 |
| ⑦ 입력함수 유도 | 카르노맵으로 간소화 | 무관조건(Don't Care) 활용해 최소 논리식 도출 |
| ⑧ 회로도 작성 | 논리식 → 게이트 회로로 구현 | 최종 회로도 완성! |
📖 플립플롭 개수 계산법
필요한 플립플롭 수 = ⌈log₂n⌉ (n: 정의해야 할 상태의 수)
※ 기호 ⌈ ⌉는 천장 함수(Ceiling)로, 소수점 이하를 무조건 올림한다는 뜻입니다. 예: ⌈2.32⌉ = 3
· 상태 4개 → ⌈log₂4⌉ = 2개
· 상태 5개 → ⌈log₂5⌉ = ⌈2.32⌉ = 3개 (5개 상태에 3개 플립플롭이면 총 8칸 중 3칸은 미사용 상태)
· 상태 16개 → ⌈log₂16⌉ = 4개
05 · 상태 축소와 미사용 상태 처리
상태 축소 (State Reduction)
상태도를 처음 그리면 중복·불필요 상태가 포함될 수 있습니다. 출력도 같고 다음 상태도 같은 두 상태는 하나로 합칠 수 있습니다.
✓ 상태 축소 예시
원래 상태 7개(a, b, c, d, e, f, g)짜리 상태도에서
· f와 d가 출력 동일 + 다음 상태 동일 → f를 d로 대체
· g와 e가 출력 동일 + 다음 상태 동일 → g를 e로 대체
결과: 7개 → 5개로 축소. 플립플롭 3개(2³=8 ≥ 5)로 구현 가능
미사용 상태 (Unused State) 처리
❌ 문제 상황
예를 들어 상태가 5개이면 플립플롭 3개(8칸)가 필요한데, 101, 110, 111 세 상태는 아무도 쓰지 않는 상태입니다.
전원이 켜질 때 초기화가 잘못되면 이 미사용 상태에서 시작할 수 있습니다. 이때 회로가 어떻게 동작할지 모른다면 오동작 가능성이 생깁니다.
✓ 해결책 — 두 가지 방법
방법 1. 카르노맵에서 무관조건(Don't Care)으로 처리
→ 설계를 단순화하는 대신, 미사용 상태에서 출발해도 결국 정상 상태로 복귀하는지 확인 필요
방법 2. 미사용 상태의 다음 상태를 명시적으로 정의 — 자기 보정형(Self-correcting) 회로
→ 예: 101 상태에서 클록이 오면 → 정상 상태(예: 010)로 강제 이동
→ 이렇게 미사용 상태에 빠져도 스스로 정상 상태로 돌아오도록 설계하는 방식을 자기 보정형(Self-correcting) 회로라고 부릅니다. 안전한 설계를 위해 권장
📌 핵심 정리
· 동기 순서논리회로 : 클록펄스 타이밍에만 상태가 바뀌는 회로 (플립플롭 + 조합논리회로)
· 무어 vs 밀리 : 출력이 상태만의 함수(무어) vs 상태+입력의 함수(밀리)
· 해석 6단계 : 변수명칭 → 불대수식 → 상태표 → 상태도 → 상태방정식 → 동작 설명
· 여기표 : 특성표의 역방향. "다음 상태로 가려면 입력에 무엇을 줘야 하나?" 역산 도구
· JK 플립플롭 : 무관조건이 가장 많아 카르노맵 간소화에 유리 → 카운터 설계 시 선호
· 설계 8단계 : 상태도 → 상태표 → 축소/할당 → 플립플롭 결정 → 여기표 → 입력함수 → 회로도
· 플립플롭 수 : n개 상태 → ⌈log₂n⌉개 필요
· 미사용 상태 : 카르노맵에서 무관조건 처리 + 실제 다음 상태 확인 필수
태그 : 동기 순서논리회로순서논리회로 해석 설계플립플롭 여기표란상태표 상태도 차이무어머신 밀리머신JK플립플롭 설계미사용상태 처리상태축소 방법디지털공학 순서회로클록펄스 동기회로
'학과 수업 노트 > 디지털공학' 카테고리의 다른 글
| 12. 레지스터 (0) | 2026.05.31 |
|---|---|
| 11. 카운터 - 동기식, 비동기식, 카운터의 응용 (0) | 2026.05.23 |
| 9. 플립플롭 - JK플립플롭, T플립플롭 (0) | 2026.05.08 |
| 8. 플립플롭 I - SR 래치, SR 플립플롭, D 플립플롭 (0) | 2026.05.01 |
| 7. 조합논리회로(2) - 멀티플렉서, 디멀티플렉서, 코드변환기, 비교기 (0) | 2026.04.17 |

