Chap 5의 흐름
- 순서논리회로가 무엇인지
- 현재 상태, 다음 상태, 출력의 관계
- 래치와 플립플롭
- D, T, JK, SR 플립플롭의 동작
- 주어진 회로를 분석하는 방법
- 원하는 동작을 갖는 회로를 설계하는 방법
Sequential Circuit의 정의
조합 회로와 차이
조합회로는 출력이 현재 입력만의 함수다.
Y = F(X)
반면 순서회로는 출력이나 다음 상태가 현재 상태를 포함해 결정된다.
State_next = F(State, Input)
Output = G(State, Input) 또는 G(State)
즉 순서회로는 기억(memory)가 있다는 것이 핵심이다.
순서회로의 구성
순서회로는 크게 두 부분으로 이루어진다.
- 조합논리회로
- 저장소자(Storage Element)
조합논리회로는 입력과 현재 상태를 받아서 다음 상태 입력과 출력을 만든다.
저장소자는 현재 상태를 저장한다.
즉, 블록 관점으로 보면 다음과 같다.
외부 입력 -> 현재 상태 -> 조합 논리 -> 다음 상태 -> 저장소자 -> 출력

Sequential Circuit의 분류
동기식(Synchronous)
상태 변화가 클록(clock)에 맞춰 일어난다.
즉 저장소자는 정해진 타이밍에서만 상태를 바꾼다.
대부분의 디지털 시스템은 동기식이다.
비동기식(Asynchronous)
입력이 바뀌면 상태가 즉시 변할 수 있다.
클록에 맞춰 기다리지 않으므로 빠를 수 있지만 설계가 복잡하고 위험하다.
Mealy Model과 Moore Model
Mealy 모델
출력이 현재 상태와 입력 모두에 의존한다.
OutPut = G(State, Input)
특징
- 입력이 바뀌면 클록을 기다리지 않고 출력이 바로 변할 수 있다.
- 보통 상태 수가 적게 나올 수 있다.
- 출력이 입력 변화에 민감하다.
Moore 모델
출력이 현재 상태에만 의존한다.
Output = G(State)
특징
- 출력은 상태가 변할 때만 변한다.
- 출력이 더 안정적이다.
- 상태 수가 조금 더 많아질 수 있다.
Storage Element : Latch와 Flip-Flop
순서회로의 핵심은 저장소자다.
저장소자는 1비트 상태를 저장하는 회로다.
대표적인 저장소자 : Latch, Flip-Flop
Latch
Latch는 입력 조건에 따라 상태를 저장하는 기본 저장소자다.
래치는 보통 레벨 민감(level-sensitive)하다.
즉 enable 신호가 활성화된 동안 입력 변화가 그대로 반영될 수 있다.
SR Latch
가장 기본적인 래치다.
입력 : S(Set), R(Reset)
출력 : Q, Q'
기본 동작
1. S = 1, R = 0 -> Set, Q = 1
2. S = 0, R = 1 -> Reset, Q = 0
3. S = 0, R = 0 -> 이전 상태 유지
4. S = 1, R = 1 -> 금지 상태 또는 불안정 상태
이건 NOR형 SR Latach 기준으로 자주 본다.


SR Latch의 문제점
- 금지 입력 조합이 존재한다.
- enable 상태에서 입력 변화가 바로 반영되므로 타이밍 문제가 발생할 수 있다.
- 피드백 구조 때문에 예기치 않은 다중 변화가 생길 수 있다.
이러한 문제 때문에 더 안정적인 플립플롭 구조가 필요하다.
D Latch
D latch는 SR latch의 금지 상태 문제를 개선한 저장소자다.
입력 : D(Data), Enable
출력 : Q
동작
- Enable = 1이면 Q가 D를 따라감
- Enable = 0이면 상태 유지
D latch는 입력이 하나뿐이라 제어가 단순하다. 그러나 여전히 레벨 민감하므로, enable이 열려 있는 동안 입력이 변하면 출력도 변한다.



왜 Flip-Flop이 필요한가
래치는 enable이 활성화되어 있는 동안 입력 변화가 계속 반영되기 때문에 타이밍 문제가 생길 수 있다.
이를 해결하기 위해 에지 트리거 플립플롭을 사용한다.
플립플롭은 보통 클록의 상승 에지(positive edge) 또는 하강 에지(negative edge)에서만 상태를 갱신한다.
즉 입력이 언제 변하든, 정해진 클록 순간에만 상태 저장이 일어난다. 이것이 동기식 시스템의 핵심이다.

Edge-Triggered Flip-Flop
클록의 특정 에지에서만 입력을 샘플링하여 상태를 바꾸는 저장소자다.
특징 : 상태 변화 시점이 명확하다, 동기식 설계가 쉬워진다, 래치보다 안정적이다.
Master-Slave 구조
플립플롭은 개념적으로 두 개의 래치를 연결한 mater-slave 구조로 이해하기도 한다.
- master가 먼저 입력을 받아들이고
- slave가 클록 반대 위상에서 출력으로 전달
이를 통해 에지 트리거와 유사한 동작을 만들 수 있다.
Flip-Flip 종류
이번 챕터에서 알아야 하는 플립플롭은 4개다.
- SR Flip-Flop
- D Flip-Flop
- T Flip-Flop
- JK Flip-Flop
각 플립플롭의 특성표(characteristic table), 특성방정식(characteristic equation), 여기표(excitation table)를 구분하는 것이 핵심이다.
Characteristic Table / Characteristic Equation / Excitation Table
Characteristic Table
현재 상태와 입력이 주어졌을 때 다음 상태가 무엇인지 나타내는 표다.
입력 + 현재 상태 = 다음 상태
Characteristic Equation
다음 상태를 수식으로 표현한 것이다.
Q+ = f(Q, inputs)
여기서 Q+는 다음 상태를 의미한다.
Excitation Table
현재 상태에서 원하는 다음 상태로 가기 위해 입력을 어떻게 줘야 하는지 나타내는 표다.
현재 상태 + 다음 상태 = 필요한 입력
D Flip-Flop
D 플립플롭은 가장 단순하다.
입력 : D, 출력 Q
다음 상태 Q+ = D
즉 다음 상태는 입력 D와 같다.

원하는 다음 상태가 그대로 D 입력이다.
T Flip-Flop
T는 Toggle의 약자다.
T = 0 -> 상태 유지
T = 1 -> 상태 반전
현재 0이면 1로, 1이면 0으로 바뀐다.

SR Flip-Flop
입력 : S(Set), R(Reset)
다음 상태 :
- S = 0, R = 0 -> 유지
- S = 1, R = 0 -> set
- S = 0, R = 1 -> reset
- S = 1, R = 1 -> 금지 또는 불정

SR 플립플롭은 개념적으로는 중요하지만, 실제 설계에서는 금지 상태 때문에 D나 JK보다 덜 편리하다
JK Flip-Flop
JK 플립플롭은 SR 플립플롭의 금지 상태 문제를 개선한 형태다.
입력 : J, K
동작
- J = 0, K = 0 -> 유지
- J = 1, K = 0 -> set
- J = 0, K = 1 -> reset
- J = 1, K = 1 -> toggle
즉 SR과 비슷하지만 마지막 경우가 금지 상태가 아니라 토글이다.

Flip-Flop 비교 정리


Timing 문제와 플립플롭의 필요성
래치와 플립플롭을 왜 구분하는지 이해해야 한다.
- 래치는 레벨 민감
- 플립플롭은 에지 민감
즉 플립플롭은 클록 엣지에서만 상태를 바꾸므로 예기치 않은 다중 변화 감소, 피드백 회로 안정화, 동기 설계 가능하다. 이 때문에 핵심 저장소자로 사용된다.
Sequential Circuit Analysis
이제 저장소자 개념을 바탕으로, 주어진 순서회로를 해석하는 절차를 본다. 분석 문제는 이 회로가 무슨 기능을 하는가?를 알아내는 것이다.
분석 절차
- 각 플립플롭 입력식을 구한다
- 각 플립플롭의 특성방정식을 이용해 다음 상태식을 구한다.
- 출력식을 구한다.
- 상태표(state table)를 작성한다
- 상태도(state diagram)를 그린다.
- 회로의 기능을 해석한다.
State Table
상태표는 현재 상태, 입력, 다음 상태, 출력을 표로 정리한 것이다.
예를 들어 2비트 상태라면 현재 상태는 00, 01, 10, 11 네 가지가 있고, 각 입력 조합에 대해 다음 상태와 출력을 적는다.
상태표는 순서회로 해석의 핵심 중간 결과다.
State Diagram
상태도는 상태를 원으로 그리고 ,상태 전이를 화살표로 표시한 그림이다.
원 = 상태
화살표 = 전이
라벨 = 입력 / 출력 또는 입력
Mealy와 Moore에 따라 표시 방식이 다르다.
Mealy 상태도
화살표에 입력 / 출력을 함께 표시

Moore 상태도
상태 원 안에 출력 표시

Sequential Circuit Design
원하는 동작을 하는 회로를 설계한는 법이다.
즉 설계 문제는 specification이 주어졌을 때 회로를 만드는 것이다.
설계 절차
- 문제 규격(sepcification) 결정
- 상태도(state diagram) 작성
- 상태표(state table) 작성
- 상태 축소(state reduction)
- 상태 할당(state assignment)
- 사용할 플립플롭 선정
- excitation table 이용해 플립플롭 입력식 도출
- K-map으로 입력식 / 출력식 최소화
- 최종 논리회로 구현
State Reduction
기능적으로 동일한 상태가 여러 개 있으면 하나로 줄일 수 있다.
즉 불필요한 상태를합쳐서 상태 수를 줄이는 과정이다.
목적
1. 플립플롭 수 감소
2. 회로 단순화
3. 설계 비용 감소
State Assignment
상태 이름에 실제 이진 코드를 부여하는 과정이다.
상태 수가 N개면 필요한 플립플롭 수는 다음과 같다.

예:
- 상태 5개면 3비트 필요
- 상태 8개면 3비트 필요
- 상태 9개면 4비트 필요
Flip-Flop 선택과 입력 함수 도출
설계 단계에서 상태가 정해지면, 다음 상태를 만들기 위해 각 플립플롭 입력을 어떻게 줘야 하는지 구해야 한다.
여기서 excitation table이 사용된다.

JK나 SR도 마찬가지로 여기표를 이용해 입력을 결정한다.
K-map을 이용한 입력식 최소화
플립플롭 입력식이 구해지면 그대로 회로를 만들 수도 있지만, 보통은 K-map을 이용해 간단히 만든다.
최소화 대상 :
- 각 플립플롭 입력 함수
- 출력 함수
이번 챕터 설계는 결국
- 상태 설계
- excitation 적용
- K-map 최소화
- 회로 구현
설계 예시 흐름 이해
- 상태가 5개이므로 3비트 필요
- 상태 할당 수행
- SR 플립플롭 선택
- 현재 상태 / 다음 선택 기반으로 excitaion table 작성
- K-map으로 S, R 입력식 최소화
- 출력식도 최소화
- 최종 회로 구현
분석 문제 VS 설계 문제
분석 문제
- 회로가 주어짐
- 기능을 알아내야함
절차 : 회로 -> 식 -> 상태표 -> 상태도 -> 기능 해석
설계 문제
- 기능이 주어짐
- 회로를 만들어야함
절차 : specification -> 상태도 -> 상태표 -> 상태 할당 -> 플립플롭 입력식 -> 최소화 -> 회로
Chapter 5 총정리
- 순서논리회로는 조합논리회로와 저장소자로 구성된다.
- 순서회로의 출력과 다음 상태는 현재 상태와 입력에 의존할 수 있다.
- Mealy 모델의 출력은 상태와 입력에 의존한다.
- Moore 모델의 출력은 상태에만 의존한다.
- 래치는 레벨 민감, 플립플롭은 에지 민감 저장소자이다.
- D flip-flop은 다음 상태가 입력 D와 같다.
- T flip-flop은 T=1일 때 상태를 토글한다.
- JK flip-flop은 J=K=1일 때 상태를 토글한다.
- characteristic table은 입력과 현재 상태로부터 다음 상태를 구-하는 표이다.
- excitation table은 현재 상태에서 원하는 다음 상태를 만들기 위한 입력을 구하는 표이다.
- 순서회로 분석은 회로로부터 상태표와 상태도를 구하는 과정이다.
- 순서회로 설계는 specification으로부터 상태도, 상태표, 플립플롭 입력식, 회로를 만드는 과정이다.
- 상태 수가 N개일 때 필요한 상태 비트 수는 ⌈log2N⌉이다.
'학부 생활 + 랩실 > Digital Circuits' 카테고리의 다른 글
| Digital Circuits(디지털 회로)(8) - Memory Basics (1) | 2026.05.10 |
|---|---|
| Digital Circuits(디지털 회로)(7) - Registers and Register Transfers (1) | 2026.04.19 |
| Digital Circuits(디지털 회로)(5) - Arithmetic Functions (1) | 2026.04.12 |
| Digital Circuits(디지털 회로)(4) - Combinational Logic Design (0) | 2026.04.11 |
| Digital Circuits(디지털 회로)(3) - Combinational Logic Circuits(2) Circuit Optimization (0) | 2026.04.10 |