본문 바로가기
학부 생활 + 랩실/Digital Circuits

Digital Circuits(디지털 회로)(6) - Sequential Circuits

by 프롭 2026. 4. 12.

 

Chap 5의 흐름

  • 순서논리회로가 무엇인지
  • 현재 상태, 다음 상태, 출력의 관계
  • 래치와 플립플롭
  • D, T, JK, SR 플립플롭의 동작
  • 주어진 회로를 분석하는 방법
  • 원하는 동작을 갖는 회로를 설계하는 방법

Sequential Circuit의 정의

조합 회로와 차이

조합회로는 출력이 현재 입력만의 함수다.

Y = F(X)

반면 순서회로는 출력이나 다음 상태가 현재 상태를 포함해 결정된다.

State_next = F(State, Input)

Output = G(State, Input) 또는 G(State)

즉 순서회로는 기억(memory)가 있다는 것이 핵심이다.

 

순서회로의 구성

순서회로는 크게 두 부분으로 이루어진다.

  1. 조합논리회로
  2. 저장소자(Storage Element)

조합논리회로는 입력과 현재 상태를 받아서 다음 상태 입력과 출력을 만든다.

저장소자는 현재 상태를 저장한다.

 

즉, 블록 관점으로 보면 다음과 같다.

외부 입력 -> 현재 상태 -> 조합 논리 -> 다음 상태 -> 저장소자 -> 출력


Sequential Circuit의 분류

동기식(Synchronous)

상태 변화가 클록(clock)에 맞춰 일어난다.

즉 저장소자는 정해진 타이밍에서만 상태를 바꾼다.

대부분의 디지털 시스템은 동기식이다.

 

비동기식(Asynchronous)

입력이 바뀌면 상태가 즉시 변할 수 있다.

클록에 맞춰 기다리지 않으므로 빠를 수 있지만 설계가 복잡하고 위험하다.


Mealy Model과 Moore Model

Mealy 모델

출력이 현재 상태와 입력 모두에 의존한다.

OutPut = G(State, Input)

 

특징

  1. 입력이 바뀌면 클록을 기다리지 않고 출력이 바로 변할 수 있다.
  2. 보통 상태 수가 적게 나올 수 있다.
  3. 출력이 입력 변화에 민감하다.

 

Moore 모델

출력이 현재 상태에만 의존한다.

Output = G(State)

 

특징

  1. 출력은 상태가 변할 때만 변한다.
  2. 출력이 더 안정적이다.
  3. 상태 수가 조금 더 많아질 수 있다.

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의 문제점

  1. 금지 입력 조합이 존재한다.
  2. enable 상태에서 입력 변화가 바로 반영되므로 타이밍 문제가 발생할 수 있다.
  3. 피드백 구조 때문에 예기치 않은 다중 변화가 생길 수 있다.

이러한 문제 때문에 더 안정적인 플립플롭 구조가 필요하다.


D Latch

D latch는 SR latch의 금지 상태 문제를 개선한 저장소자다.

입력 : D(Data), Enable

출력 : Q

 

동작

  1. Enable = 1이면 Q가 D를 따라감
  2. Enable = 0이면 상태 유지

D latch는 입력이 하나뿐이라 제어가 단순하다. 그러나 여전히 레벨 민감하므로, enable이 열려 있는 동안 입력이 변하면 출력도 변한다.

 

 


왜 Flip-Flop이 필요한가

래치는 enable이 활성화되어 있는 동안 입력 변화가 계속 반영되기 때문에 타이밍 문제가 생길 수 있다.

이를 해결하기 위해 에지 트리거 플립플롭을 사용한다.

플립플롭은 보통 클록의 상승 에지(positive edge) 또는 하강 에지(negative edge)에서만 상태를 갱신한다.

즉 입력이 언제 변하든, 정해진 클록 순간에만 상태 저장이 일어난다. 이것이 동기식 시스템의 핵심이다.


Edge-Triggered Flip-Flop

클록의 특정 에지에서만 입력을 샘플링하여 상태를 바꾸는 저장소자다.

 

특징 : 상태 변화 시점이 명확하다, 동기식 설계가 쉬워진다, 래치보다 안정적이다.

 

Master-Slave 구조

플립플롭은 개념적으로 두 개의 래치를 연결한 mater-slave 구조로 이해하기도 한다.

  1. master가 먼저 입력을 받아들이고
  2. slave가 클록 반대 위상에서 출력으로 전달

이를 통해 에지 트리거와 유사한 동작을 만들 수 있다.


Flip-Flip 종류

이번 챕터에서 알아야 하는 플립플롭은 4개다.

  1. SR Flip-Flop
  2. D Flip-Flop
  3. T Flip-Flop
  4. 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)

다음 상태 :

  1. S = 0, R = 0 -> 유지
  2. S = 1, R = 0 -> set
  3. S = 0, R = 1 -> reset
  4. S = 1, R = 1 -> 금지 또는 불정

 

 

SR 플립플롭은 개념적으로는 중요하지만, 실제 설계에서는 금지 상태 때문에 D나 JK보다 덜 편리하다


JK Flip-Flop

JK 플립플롭은 SR 플립플롭의 금지 상태 문제를 개선한 형태다.

입력 : J, K

동작

  1. J = 0, K = 0 -> 유지
  2. J = 1, K = 0 -> set
  3. J = 0, K = 1 -> reset
  4. J = 1, K = 1 -> toggle

즉 SR과 비슷하지만 마지막 경우가 금지 상태가 아니라 토글이다.


Flip-Flop 비교 정리


Timing 문제와 플립플롭의 필요성

래치와 플립플롭을 왜 구분하는지 이해해야 한다.

  1. 래치는 레벨 민감
  2. 플립플롭은 에지 민감

즉 플립플롭은 클록 엣지에서만 상태를 바꾸므로 예기치 않은 다중 변화 감소, 피드백 회로 안정화, 동기 설계 가능하다. 이 때문에 핵심 저장소자로 사용된다.


Sequential Circuit Analysis

이제 저장소자 개념을 바탕으로, 주어진 순서회로를 해석하는 절차를 본다. 분석 문제는 이 회로가 무슨 기능을 하는가?를 알아내는 것이다.

 

분석 절차

  1. 각 플립플롭 입력식을 구한다
  2. 각 플립플롭의 특성방정식을 이용해 다음 상태식을 구한다.
  3. 출력식을 구한다.
  4. 상태표(state table)를 작성한다
  5. 상태도(state diagram)를 그린다.
  6. 회로의 기능을 해석한다.

 

State Table

상태표는 현재 상태, 입력, 다음 상태, 출력을 표로 정리한 것이다.

예를 들어 2비트 상태라면 현재 상태는 00, 01, 10, 11 네 가지가 있고, 각 입력 조합에 대해 다음 상태와 출력을 적는다.

상태표는 순서회로 해석의 핵심 중간 결과다.

 

State Diagram

상태도는 상태를 원으로 그리고 ,상태 전이를 화살표로 표시한 그림이다.

원 = 상태

화살표 = 전이

라벨 = 입력 / 출력 또는 입력

Mealy와 Moore에 따라 표시 방식이 다르다.

 

Mealy 상태도

화살표에 입력 / 출력을 함께 표시

Moore 상태도

상태 원 안에 출력 표시


Sequential Circuit Design

원하는 동작을 하는 회로를 설계한는 법이다.

즉 설계 문제는 specification이 주어졌을 때 회로를 만드는 것이다.

 

설계 절차

  1. 문제 규격(sepcification) 결정
  2. 상태도(state diagram) 작성
  3. 상태표(state table) 작성
  4. 상태 축소(state reduction)
  5. 상태 할당(state assignment)
  6. 사용할 플립플롭 선정
  7. excitation table 이용해 플립플롭 입력식 도출
  8. K-map으로 입력식 / 출력식 최소화
  9. 최종 논리회로 구현

State Reduction

기능적으로 동일한 상태가 여러 개 있으면 하나로 줄일 수 있다.

즉 불필요한 상태를합쳐서 상태 수를 줄이는 과정이다.

 

목적

1. 플립플롭 수 감소

2. 회로 단순화

3. 설계 비용 감소


State Assignment

상태 이름에 실제 이진 코드를 부여하는 과정이다.

 

상태 수가 N개면 필요한 플립플롭 수는 다음과 같다.

예:

  1. 상태 5개면 3비트 필요
  2. 상태 8개면 3비트 필요
  3. 상태 9개면 4비트 필요

Flip-Flop 선택과 입력 함수 도출

설계 단계에서 상태가 정해지면, 다음 상태를 만들기 위해 각 플립플롭 입력을 어떻게 줘야 하는지 구해야 한다.

여기서 excitation table이 사용된다.

JK나 SR도 마찬가지로 여기표를 이용해 입력을 결정한다.


K-map을 이용한 입력식 최소화

플립플롭 입력식이 구해지면 그대로 회로를 만들 수도 있지만, 보통은 K-map을 이용해 간단히 만든다.

최소화 대상 :

  1. 각 플립플롭 입력 함수
  2. 출력 함수

이번 챕터 설계는 결국

  1. 상태 설계
  2. excitation 적용
  3. K-map 최소화
  4. 회로 구현

설계 예시 흐름 이해

  1. 상태가 5개이므로 3비트 필요
  2. 상태 할당 수행
  3. SR 플립플롭 선택
  4. 현재 상태 / 다음 선택 기반으로 excitaion table 작성
  5. K-map으로 S, R 입력식 최소화
  6. 출력식도 최소화
  7. 최종 회로 구현

분석 문제 VS 설계 문제

분석 문제

  1. 회로가 주어짐
  2. 기능을 알아내야함

절차 : 회로 -> 식 -> 상태표 -> 상태도 -> 기능 해석

 

설계 문제

  1. 기능이 주어짐
  2. 회로를 만들어야함

절차 : 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개일 때 필요한 상태 비트 수는 ⌈log⁡2N⌉이다.