No. 10-1 Chapter #10: Finite State Machine Implementation.

32
No. 10-1 Chapter #10: Finite State Machine Implementation

Transcript of No. 10-1 Chapter #10: Finite State Machine Implementation.

Page 1: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-1

Chapter #10: Finite State Machine Implementation

Page 2: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-2

Chapter Outline

Implementation Strategies

discrete logic

design with counters, ROMs

programmable logic

PALs

FGPAs: Altera, Actel, Xilinx

Page 3: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-3

Implementation Strategies

Discrete Gate Logic

Emphasis so far

MSI Logic (e.g., Counters)

Structured Logic (e.g., PLA/PAL, ROM)

Field Programmable Gate Arrays (FPGAs)

Function can be configured "on the fly" or in the field

Flipflops/Registers plus discrete gates on the same chip

Page 4: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-4

Implementation Strategies

FSM Design with Structured Logic

Block Diagram forSynchronous Mealy Machine

Block Diagram forSynchronous Mealy Machine

ROM-based RealizationROM-based Realization

Inputs & Current State form the address

ROM data bits form the Outputs & Next State

Combinational Logic Registers

OutputsOutput Function

Next State Function

Inputs

ROM Registers

OutputsInputsA0

An-1

An

An+m-1 Dk+m-1

D0

Dk-1

Dk

State

State

Page 5: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-5

Implementation StrategiesROM-based Design

Example: BCD to Excess 3 Serial Converter

BCD Excess 3 Code 0000 0011 0001 0100 0010 0101 0011 0110 0100 0111 0101 1000 0110 1001 0111 1010 1000 1011 1001 1100

Conversion Process

Bits are presented in bit serial fashionstarting with the least significant bit

Single input X, single output Z

Page 6: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-6

Implementation StrategiesBCD to Excess-3 Converter

State Transition Table

Derived State Diagram

Present State S0 S1 S2 S3 S4 S5 S6

Next State OutputX=0 S1 S3 S4 S5 S5 S0 S0

X=1 S2 S4 S4 S5 S6 S0 --

X=0 1 1 0 0 1 0 1

X=1 0 0 1 1 0 1 --

Reset

S00/1 1/0

S1

0/11/0 S2

0/0, 1/1

S30/0, 1/1

S4

1/00/1

S50/0, 1/1

S6

0/1

Page 7: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-7

Implementation Strategies

BCD to Excess 3 Converter

ROM-based Implementation

Truth Table/ROM I/Os

Circuit Level Realization74175 = 4 x positive edge triggered D FFs

In ROM-based designs, no need to consider state assignment

QA QA

QB QB

QC QC

QD QD

CLK

CLR1

converter ROMX Q2 Q1 Q0

Z D2 D1 D0

15 14

10 11

7 6

2 3

D CB A

CLK

13 12

10 \Reset

X10

175

1

Z9

5 4

X 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Q2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

Q1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

Q0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

D2 0 0 1 1 1 0 0 X 0 1 1 1 1 0 X X

Z 1 1 0 0 1 0 1 X 0 0 1 1 0 1 X X

D1 0 1 0 0 0 0 0 X 1 0 0 0 1 0 X X

D0 1 1 0 1 1 0 0 X 0 0 0 1 0 0 X X

ROM Address ROM Outputs

Page 8: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-8

Implementation Strategies

BCD to Excess-3 Converter

Timing Behavior for input strings 0 0 0 0 (0) and 1 1 1 0 (7)

0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1

LSB MSB

LSB LSB

0 0 0 0

1 1 0 0

1 1 1 0

0 1 0 1

Page 9: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-9

Implementation StrategiesBCD to Excess 3 Converter

PLA-based Design

State Assignment with NOVA

S0 = 000S1 = 001S2 = 011S3 = 110S4 = 100S5 = 111S6 = 101

NOVA derived state assignment

9 product termimplementation

0 S0 S1 11 S0 S2 00 S1 S3 11 S1 S4 00 S2 S4 01 S2 S4 10 S3 S5 01 S3 S5 10 S4 S5 11 S4 S6 00 S5 S0 01 S5 S0 10 S6 S0 1

NOVA input file

Page 10: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-10

Implementation Strategies

BCD to Excess 3 Converter

D2 = Q2 • Q0 + Q2 • Q0

D1 = X • Q2 • Q1 • Q0 + X • Q2 • Q0 + X • Q2 • Q0 + Q1 • Q0

D0 = Q0

Z = X • Q1 + X • Q1

175X Q2 Q1 Q0

Z D2 D1 D0

converter PLA10

CLK

10

1

\Reset

CLK

13 12

X D C B A

QD QD

QC QC

QB QB

QA QACLR

9

1

15 14

10 117 6

2 3

Z

5 4

Page 11: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-11

Implementation Strategies

BCD to Excess 3 Serial Converter

10H8 PAL: 10 inputs, 8 outputs, 2 product terms per OR gate

D1 = D11 + D12

D11 = X • Q2 • Q1 • Q0 + X • Q2 • Q0

D12 = X • Q2 • Q0 + Q1 • Q0

Page 12: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-12

Implementation StrategiesBCD to Excess 3 Serial Converter

X

Q2

Q1

Q0

D11

D12

D2

D11

D12

D1

D0

Z

0 1 2 3 4 5 8 9 12 13 16 17 20 21 24 25 28 29 30 31

0 1

8 9

16 17

24 25

32 33

40 41

0. Q2 • Q01. Q2 • Q08. X • Q2 • Q1 • Q09. X • Q2 • Q016. X • Q2 • Q017. Q1 • Q024. D1125. D1232. Q033. not used40. X • Q141. X • Q1

PAL10H8

X Q2 Q1 Q0

D2

D1

D0

Z

1

2

3

4

5

6

7

8

9

10

20

19

18

17

16

15

14

13

1211

AND Gate Array

Page 13: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-13

Implementation Strategies

FSM Design with Counters

Synchronous Counters: CLR, LD, CNT

Four kinds of transitions for each state:

(1) to State 0 (CLR)

(2) to next state in sequence (CNT)

(3) to arbitrary next state (LD)

(4) loop in current state

Careful state assignment is needed to reflect basic sequencingof the counter

Careful state assignment is needed to reflect basic sequencingof the counter

0

n

n+1 m

no signals

assertedCLR

CNT LD

Page 14: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-14

Implementation Strategies

FSM Design with Counters

Excess 3 Converter Revisited

Note the sequential natureof the state assignments

Reset

0/10

1/0

1

0/11/0

40/0, 1/1

20/0, 1/1

0/1

5

1/0

0/0, 1/1

3 6

0/1

Page 15: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-15

Implementation Strategies

FSM Design with Counters

Excess 3 Converter

CLR signal has precedence over LD, which in turn has precedence over EN

Inputs/Current State

Next State Outputs

X 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Q2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

Q1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

Q0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Q2+ 0 0 0 0 1 0 0 X 1 1 0 0 1 1 X X

Q1+ 0 1 1 0 0 1 0 X 0 0 1 0 0 1 X X

Q0+ 1 0 1 0 1 1 0 X 0 1 1 0 1 0 X X

Z 1 1 0 0 1 0 1 X 0 0 1 1 0 1 X X

CLR 1 1 1 0 1 1 0 X 1 1 1 0 1 1 X X

LD 1 1 1 X 1 0 X X 0 0 1 X 1 1 X X

EN 1 1 1 X 1 X X X X X 1 X 1 1 X X

C X X X X X 0 X X 1 1 X X X X X X

B X X X X X 1 X X 0 0 X X X X X X

A X X X X X 0 X X 0 1 X X X X X X

Should be 1

See

Fig. 10.21

Page 16: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-16

Implementation Strategies

FSM Implementation with Counters

Excess 3 Converter Schematic

Synchronous Output Register

1 01 0

excess 3 PLA

Reset X Q2 Q1 Q0

Z \CLR

\LD EN

C B A

CLK

X

7 10

2

9

1

P T

CLKD C B A

LOAD

CLR

RCO

QD QC QB QA

15

D Q

C Q

Z163

11121314

6543

Bad choice for FSM design in this case!

Could be much better if fewer out-of-sequence jumps!

Page 17: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-17

Implementation StrategiesFSM Design with More Sophisticated PLDs

Programmable Logic Devices = PLD

Field Programmable Gate Arrays = FPGAs

Altera MAX Family

Actel Programmable Gate Array

Xilinx Logical Cell Array

PALs, PLAs = 10 - 100 Gate Equivalents

100 - 1000(s) of Gate Equivalents!

Page 18: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-18

Implementation StrategiesDesign with More Sophisticated PLDs

Xilinx Logic Cell Arrays (LCA)

CMOS Static RAM Technology: programmable on the fly!

All personality elements connected into serial shift register

Shift in string of 1's and 0's on power up

General Chip Architecture: Logic Blocks (CLBs) IO Blocks (IOBs) Wiring Channels

IOB IOB IOB IOB

CLB CLB

CLB CLB

IOB

IOB

IOB

IOB

Wiring Channels

Page 19: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-19

Xilinx CLB architecture

5 general data inputs A, B, C, D, EData in (DIN)2 outputs, X & Y

Page 20: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-20

Design Case Study

Traffic Light Controller

Decomposition into primitive subsystems

Controller FSM next state/output functions state register

Short time/long time interval counter

Car Sensor

Output Decoders and Traffic Lights

Page 21: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-21

From Chapter 8 …Traffic Light Controller

Tabulation of Inputs and Outputs:

Input SignalresetCTSTL

Output SignalHG, HY, HRFG, FY, FRST

Descriptionplace FSM in initial statedetect vehicle on farmroadshort time interval expiredlong time interval expired

Descriptionassert green/yellow/red highway lightsassert green/yellow/red farmroad lightsstart timing a short or long interval

Tabulation of Unique States: Some light configuration imply others

StateS0S1S2S3

DescriptionHighway green (farmroad red)Highway yellow (farmroad red)Farmroad green (highway red)Farmroad yellow (highway red)

Page 22: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-22

From Chapter 8 …Traffic Light Controller

S2 Exit Condition: no car waiting OR long time interval expired

Complete ASM Chart for Traffic Light Controller

S 0 S 3

H.HG H.FR H.ST

H.HR H.FY

TS TL • C

H.ST H.ST

S 1 S 2

H.HY H.FR

H.ST H.HR H.FG

TS TL + C

0 0 1

1

1 0

1

0

Page 23: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-23

From Chapter 8 …Traffic Light Controller

Compare with state diagram:

Advantages of ASM Charts:

Concentrates on paths and conditions for exiting a state

Exit conditions built up incrementally, later combined into single Boolean condition for exit

Easier to understand the design as an algorithm

S0: HG

S1: HY

S2: FG

S3: FY

Reset

TL + C

S0TL•C/ST

TS

S1 S3

S2

TS/ST

TS/ST

TL + C/ST

TS

TL • C

Page 24: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-24

Design Case Study

Traffic Light Controller

Block Diagram

Reset

C (async)

Clk

Car Sensor C (sync)

State Register

2

Next State Output Logic

TS TL

controller fsm

2

Encoded Light

Signals

Light Decoders

F

3

3

H

ST

short time/ long time counter

ResetClk

22

Page 25: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-25

Design Case Study

Traffic Light Controller

Subsystem Logic

Car Detector

LightDecoders

IntervalTimer

+

+

D

R

Q

Q

Present

\Present

Cin C

\Reset

CLK

G

BA

Y1Y0

Y3Y2

139a

0 0 1

G

BA

Y1Y0

Y3Y2

139b

001

14

H0

3F1

2F0567

4

FG FY FR

11109

13H1

15

1

12

HRHYHG

QAQBQCQD

163RCO

PT

ABCD

LOAD

CLR

CLK

+

15

3456

107

9

121314

TS

TL

2CLK

11

ST

1CLRReset

Cf. debouncing switch in Section 6.6.1

Page 26: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-26

Design Case Study

Traffic Light Controller

Next State Logic

State Assignment: HG = 00, HY = 10, FG = 01, FY = 11 from Section 9.3.1

P1 = C TL Q1 + TS Q1 Q0 + C Q1 Q0 + TS Q1 Q0

P0 = TS Q1 Q0 + Q1 Q0 + TS Q1 Q0

ST = C TL Q1 + C Q1 Q0 + TS Q1 Q0 + TS Q1 Q0

H1 = TS Q1 Q0 + Q1 Q0 + TS Q1 Q0

H0 = TS Q1 Q0 + TS Q1 Q0

F1 = Q0

F0 = TS Q1 Q0 + TS Q1 Q0

PAL/PLA Implementation: 5 inputs, 7 outputs, 8 product terms PAL 22V10 -- 11 inputs, 10 prog. IOs, 8 to 14 prod terms per OR

ROM Implementation: 32 word by 8-bit ROM (256 bits) Reset may double ROM size

Page 27: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-27

Design Case Study

Traffic Light Controller

Next State Logic

Counter-based Implementation

ST = Count

TTL Implementation with MUX and Counter

2 x 4:1 MUX

QAQBQCQD

163RCO

PT

ABCD

LOAD

CLR

CLK

B1B2B3

B0

A3A2A1A0

153GA

GB

YA

YB

S1 SO

+

2 15

1\Reset

6543

9

14

14

1211

3

5

TS

9

TL

TLC

\C

13

2

7 710

ST4

6

1011

15

1213

1

Q0Q1

HG

HY

FG

FY

TL • C / ST

TS / ST

TL+C / ST

TS / ST

Page 28: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-28

Design Case Study

Traffic Light Controller

Next State Logic

Counter-based Implementation

Dispense with direct output functions for the traffic lights

Why not simply decode from the current state?

ST is a Mealy Output

Light Controllers are Moore Outputs

G

BA

Y1Y0

Y3Y2

139a

0 0 0 0 11

2

HR FRHY

3

7

FY

6

FG

54

1

HG

Q1

Q0

Page 29: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-29

Design Case Study

Traffic Light Controller

Logic Control Arrays (LCA)-Based Implementation

Discrete Gate Method:

None of the functions exceed 5 variables

P1, ST are 5 variable (1 Configurable Logic Block (CLB) each)

P0, H1, H0, F0 are 3 variable (1/2 CLB each)

F1 is 1 variable (1/2 CLB)

4 1/2 CLBs total!

Page 30: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-30

Design Case Study

Traffic Light Controller

LCA-BasedImplementation

Placement offunctions selectedto maximize theuse of directconnections

TS

X

Y

A

D

DIBCKE R

CE

X

Y

A

D

DIBCKE R

CEX

Y

A

D

DIBCKE R

CE

X

Y

A

D

DIBCKE R

CE

X

Y

A

D

DIBCKE R

CEX

Y

A

D

DIBCKE R

CE

Q1

F1

Q0F0

ST

H1

H0

TS TS

Q0

Q0

Q0

C

C

CTL

Q1

TL

TS

Q1

Q1 Q0

TS

Q1

TL

TS

Page 31: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-31

Design Case Study

Traffic Light Controller

LCA-Based Implementation

Counter/Multiplexer Method:

4:1 MUX, 2 Bit Upcounter

MUX: six variables (4 data, 2 control) but this is the kind of 6 variable function that can be implemented in 1 CLB!

2nd CLB to implement TL • C and TL + C'

But note that ST/Cnt is really a function of TL, C, TS, Q1, Q0 1 CLB to implement this function of 5 variables!

2 Bit Counter: 2 functions of 3 variables (2 bit state + count) Also implemented in one CLB

Traffic light decoders: functions of 2 variables (Q1, Q0) 2 per CLB = 3 CLB for the six lights

Total count = 5 CLBs

Page 32: No. 10-1 Chapter #10: Finite State Machine Implementation.

No. 10-32

Chapter Summary

Optimization and Implementation of FSM

State Reduction Methods: Row Matching, Implication Chart

State Assignment Methods: Heuristics and Computer Tools

Implementation Issues

Choice of Flipflops

Structured Logic Methods

ROM based

PLA/PAL based

Jump Counter Methods

Sophisticated Programmable Logic Devices (PLDs): Altera, Actel, Xilinx