본문 바로가기
CSE/디지털 논리

10강 Sequential Logic Circuits2 Design Process (Finite-state Machine(FSM) State transition table,Excitation table, 동기 카운터)

by 뜨거운 개발자 2023. 5. 24.
  • 어떻게 Sequential Logic Circuits을 만들지 다뤄보겠다.

JK Filp flop 복습

  • 심볼
  • 진리표
  • 더 풀어서 쓴 진리표

여가표 (Excitation table)

  • input과 output으로 보는 진리표와 달리 상태의 변화에 따라 JK의 input이 무엇이어야 하는지 나타내는 표이다.

  • Finite-state Machine : 우리가 Sequential Logic Circuits을 쓸 때 state를 가지고 있는데 그 state를 표현할지에 대해서 어떻게 표현할 지 보여주기 때문에
  • Design Process of Sequential Logic Circuits

Finite-state Machine(FSM)

  • 프로그래밍 할 때도 많이 사용된다.
  • 현재 내가 짜고싶은 알고리즘을 표현 할 수 있다.
  • 한정된 상태를 가진 계산 모델이다.
  • state가 변화하는 걸 state transition 이라고 부른다.
  • 보통 FSM은 state transition table or a state diagram 2가지로 표현이 된다.

State transition table (~ truth table)

  • 별명 : Characteristic table
  • 예시 : 문

State diagram (~ directed graph)

  • 상태가 노드이고
  • 상태의 변화가 선이다. 방향
  • 방향성이 있기 때문에 directed 그래프이다.

    또 다른 예시

Design process

1. Define a state transition table or a state diagram

  • 요구사항을 가지고 state transition table 이나 다이어그램을 만들면
  • state 가 몇개인지 알수가 있다.
  • 또한 불 필요한 것들을 줄일 수 있다.

2. Select flip-flops and derive their excitation table.

  • 내가 사용할 플립플랍을 결정한다.
  • 그 플립플랍의 excitation table을 그린다.
  • 보통 필요한 플립플롭의 갯수는 로그 n이다.
  • 보통 상태가 5개면 3개의 플립플롭이 필요하다.
  • 보통 카운터 타입을 만들 때는 jk플립플롭이 선호된다.
  • 보통 레지스터 같이 저장하는 타입을 D플립 플롭이 선호된다.

3. Design flip-flop input signals using the K-map.

  • excitation table을 이용해서 K-map을 그려준다.

2비트 동기 카운터 예시

  • 카운터는 로직 서킷인데 상태가 숫자로 되어있고 특정한 이벤트의 횟수를 저장하는 논리 회로이다.
  • 보통 특정한 이벤트를 클럭 시그널의 라이징 엣지를 많이 이야기 한다.

State diagram

  • 상태의 갯수는 4개, 2비트로 표현 할 수 있고
  • 상태 자체가 output이 된다.

Excitation table

  • 2개의 JK-flip-flop을 이용해 구현 할 것이다.

입력 신호 설계

  • 입력 신호 Excitation table

구현

  • QA와 QB가 output이다.

3비트 동기 카운터 예시

State diagram

  • 상태 : 8개
  • 따라서 상태는 비트 3개로 표현이 가능하다.

Excitation table

  • 3개의 JK flip-flops이다.

Input signal design(꼭 해보기!!)

Implementation

재밌는 부분은 2비트 동기 카운터가 있다.

4비트 동기 카운터 예시

빈칸 채울 수 있어야 합니다.

k map 해보기

결과 도출 식

구현

  • 중첩 되는 구조가 인상적이다.

왜 jk flip-flops는 쉽게 카운터를 구현 할 수 있을까?

카운터의 비트 변환을 보면 jk 플립 플롭이 쉬워서

D-flip-flop 사용하는 2비트 카운터 예시

  • 이런식으로 AND되서 사라지는 것도 없이 복잡해지기만 한다.


Uploaded by N2T

728x90