TOPIC : Finite State Machine(FSM) and Flow Tables

Download Report

Transcript TOPIC : Finite State Machine(FSM) and Flow Tables

UNIT 1 : Modeling Module 1.4 : Modeling Sequential circuits

TOPIC : Finite State Machine(FSM) and Flow Tables

FSM : Introduction

   A finite state machine (FSM) is a model of behavior composed of a finite number of states, transitions between those states, and actions Any Circuit with Memory is a Finite State Machine Even computers can be viewed as huge FSMs

Designing FSM

   Defining states : Total states that system can take.

Defining transitions between states: Logic behind going from one state to another.

Optimization / minimization : Optimizing a FSM means finding the machine with the minimum number of states that performs the same function.

FSM in digital circuits

  In digital circuits FSM can be made using two types of elements : ◦ Sequential : Any storage element such as Registers which will store the state of System.

◦ Combinational : 1) How the states are changing from one to another. 2) How the output is calculated.

FSM are of two types : ◦ Moore FSM ◦ Mealy FSM

Moore FSM

 Output only depend on the present state.

0 1 0 1 S0 / 0 S1 / 0 1 S2 / 1 NOTE: S0/0 = State/output 0 In state S2 output = 1, since 10 sequence is detected Moore FSM for “10” sequence detector

Mealy FSM

 Output Is a Function of a Present State and Inputs 0 / 0 1 / 0 1 / 0 S0 S1 reset 0 / 1  Mealy FSM for “10” sequence detector Mealy always have less number of state than Moore.

HDL code for Moore FSM

IF(reset = ‘1’) Moore_state <= S0; ELSIF (clock = ‘1’ AND clock’event) THEN CASE (Moore_state) S0 : IF (input = ‘1’) Moore_state <= S1; Else Moore_state <= S0; S1: If (input == 0) Moore_state = S2; Else Moore_state = S1; S2: If (input = ‘0’) Moore_state <= S0; Else Moore_state <= S1; End Case;

example: A simple vending machine

Here is how the control is supposed to work. The vending machine delivers a package of gum after it has received 15 cents in coins. The machine has a single coin slot that accepts nickels and dimes, one coin at a time. A mechanical sensor indicates to the control whether a dime or a nickel has been inserted into the coin slot. The controller’s output causes a single package of gum to be released down a chute to the customer.

One further specification: We will design our machine so it does not give change. A customer who pays with two dimes is out 5 cents!

Coin Sensor Reset Vending Machine FSM Open Gum Release Mechanism CLK Vending Machine block diagram States: 0C 5 C 10C  15C 8

— The figure below show the Moore and Mealy machine state transition diagrams.

Reset (

N D

 Reset )/0 Reset / 0 (

N D

 Reset )/0 Reset

N D

D 0 cent [0] N 5 cent [0] N 10 cent [0] N+D 15 cent [1]

N D

D Reset / 0

N D

/ 0 0 cent N / 0 D/1 5 cent N / 0 10 cent N+D/1 15 cent D / 0

N D

/ 0 Moore machine Mealy machine Moore and Mealy machine state diagrams for the vending machine FSM 9

Flow Tables

  FSM can be represented in a tabular form which is known as Flow Table.

In a flow table the states are named by letter symbols.

Input

Present state

S0 S2 S3 S4

X1

S1,0 S1,0 S2,0 S3,0

X2

S3,0 S2,0 S2,0 S3,0

X3

S3,0 S3,0 S2,0 S3,0

X4

S0,1 S0,0 S0,0 S0,1 S0,1 = next state, output

Flow Table for Vendor machine Example