Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Finite State Machine (FSM)
• Finite State Machine (FSM)
– FSM은 일반적으로 디지털 회로를 꾸밀 때 사용하는 기법
– 제한된 상태들의 변화를 순차적으로 나타내는 장치
– FSM은 sequential logic으로 이루어 짐
• 과거의 입력이 출력에 계속해서 영향을 미치는 logic
• combinational logic에 memory가 합쳐진 것을 의미
– Memory를 무한 개로 만들 수 없기 때문에 finite한 state만 가능
2
• Moore machine vs. Mealy machine
– Moore machine : {FF의 현재 상태} → 회로의 출력
– Mealy machine : {FF의 현재 상태 + 현재 입력} → 회로의 출력
FSM – Moore / Mealy machine
3
Moore machine Mealy machine
Moore machine
4
• State Diagram(상태도)과 Timing Diagram
– 입력: x = 0, 1
– 상태: 𝑞1𝑞2= S0(00), S1(01), S2(10)
– 출력: 𝑧1𝑧2= 00, 01, 10, 11
• State Diagram(상태도)과 Timing Diagram
– 입력: x = 0, 1
– 상태: 𝑞1𝑞2= S0(00), S1(01), S2(11)
– 출력: z = 0, 1
Mealy machine
5
FSM 예시
6
실습 Ex - Stopwatch
• Output 에 따른 상태도
START 버튼RESET 버튼
Stopwatch FSM
18
RECORDTIME
00:00:0
RUNNING
STOPRECORD 기록RESET
지금 시간을RECORD 저장
19
Flip-Flop
clk
reset
4n_state
n_data1
n_data2
n_data3
c_state
c_data1
c_data2
c_data3
MUX
L O G I CC I R C U I T
Verilog Coding 회로 개념도
PART A
load
4
PART B
PART C
Stopwatch 모듈
20
PART A Filp Flop 생성
PART B 특별한 조건이 없으면 그냥 연결
Stopwatch 모듈
21
PART C논리 회로구성
Testbench 모듈
23
Testbench 모듈
24
26
Simulation 결과 – Monitor/ display
• Simulation 결과
27
Simulation 결과 - Wave
• Simulation 결과
12
실습1
• 실습1 – Stopwatch
– 앞의 stopwatch 예시를 참조
– 1 clock = 1ms 가정 (1s = 1000ms)
– input
• clock
• system_reset
• time_reset
• time_start
– 기능
• stopwatch 예시의 기능을 모두 포함
• 기록을 4개 저장 가능 (Record time 상태에서 start 누르면 기록이 넘어감)
• 기록 삭제 가능(기록이 보이는 상태에서 reset 누르면 해당 기록 삭제)
• 기록 확인할 때 시간순으로 확인됨.