Computer Architecture/논리회로

[12] CH8 순차논리회로 < 비동기-동기 카운터, FSM >

Return 2022. 1. 9. 14:09

< Asynchronous vs Synchronous >

Synchronous(동기) 회로 

 - 모든 F/F이 동시에 동작. 즉, clock의 rising edge에 동시 동작한다. 

 - 모든 F/F의 clk단자에 같은 clock 신호가 입력된다.

 - 설계가 쉽다. 

Asynchronous(비동기) 회로

 - 모든 F/F이 동시에 동작하지 않는다. 

 - 모든 F/F의 clk단자에 같은 clock신호가 입력되지 않는다. 

 - 설계가 어렵다.

 - 경우에 따라서는 속도 향상 효과가 있다. 

 

< 비동기 2비트 카운터 >

 

< 비동기 3비트 카운터 > 

 - 비동기 회로의 문제점 중 하나인 지연시간이 포함된다. 

< 비동기 카운터의 단점 >

 - 원인 : 카운터의 모든 플립플롭이 동시에 변하지 않는다. 

 - 단점 : 변하는 중간에 다른 값들이 섞여 있어 잘 못 사용될 우려가 있다. 

            지연시간 때문에 clock속도가 빠를 경우 사용하기 어렵다. 

 - 해결책 : 동기 카운터를 사용한다. F/F의 clock단자에는 항상 clock만을 연결하는 동기식 설계가 바람직하다.

 

< FSM(Finite State Machine)의 개요 >

FSM(한정된 상태를 갖는 머신)

 - Counter(계수기)

 - Clock divider(클럭 분주기)

 - FSM 

Register(레지스터)

 - 플립플롭의 모임 

 - Shift register 

 - Parallel register

< FSM 타입의 회로 >

 - 출력이 입력뿐 아니라 현재상태도 고려해 출력된다. 

 - 상태 레지스터에서 현재 상태를 저장한다.

< FSM의 예(TV Channel 버튼)

채널 up 버튼을 눌렀을 때

 - 현재 상태가 3이라면 다음 상태는 4

채널 down 버튼을 눌렀을 때 

 - 현재 상태가 3이라면 다음 상태는 2

 

즉, 다음 상태는 입력과 현재상태에 의해 결정되고 출력은 현재상태를 바로 출력으로 사용한다.(무어머신)

현재상태를 저장하는 순차회로로만 가능하며 조합회로로는 불가능하다.

< 밀리 머신과 무어 머신 > 

밀리 머신 : 출력이 현재상태 + 입력 

무어 머신 : 출력이 현재상태

< FSM의 개념 >

FSM(Finite State Machine) 

 - 유한한 개수의 상태를 가지고 있으며

 - 입력과 현재상태에 따라 다음 상태가 결정되고

 - (입력과) 현재상태에 따라 출력이 결정되는 머신 

 

< FSM 세부 블록 >

Next state logic(조합 회로)

 - 입력 + 현재상태 -->> 조합회로 -->> 다음상태 

State register(순차회로, F/F, 현재 상태를 저장)

 - 다음상태 -->> clock edge에서 저장 -->> 현재상태 

Output logic(조합회로)

 - Moore machine의 경우 : 현재상태 -->> 조합회로 -->> 출력 

 - Mealy machine의 경우 : 입력 + 현재상태 -->> 조합회로 -->> 출력 

 

< 상태 다이어그램 예 (TV Channel 버튼) >

< 상태 다이어그램의 일반적인 표기법 >

< 상태표 (State table) >

< 파이프라인(Pipeline) 형태의 회로 >