학습(공부)하는 블로그 :: 10. 동기 순서논리회로
 

 
반응형
블로그 이미지
학습하고 공부한 것을 보고 싶을때 다시 볼려고 요약해서 정리한 블로그입니다. 좋은 정보는 서로 공유합시다. 깨비형
« 2026/6 »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

Archive»


Category»

Notice»

Recent Post»

Recent Comment»

Recent Trackback»

06-02 10:30

10. 동기 순서논리회로

학과 수업 노트/디지털공학 | 2026. 5. 18. 15:31 | Posted by 깨비형
반응형



⚡ 이 글의 핵심 요약 (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플립플롭 설계미사용상태 처리상태축소 방법디지털공학 순서회로클록펄스 동기회로

반응형
: