Transcript S 0
Unit 3 Finite State Machine
If we hear, we forget; if we see, we remember; if we do, we understand.
Department of Communication Engineering, NCTU -- Proverb
1
3.1 Derivation of State Graphs and Tables
Department of Communication Engineering, NCTU
2
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
A Finite State Machine (FSM) is simply a state register that holds the current state and some combinational logic which calculates the next state and outputs based on the current state and the inputs FSM types Moore machine : the outputs are functions of the present state only Mealy machine : the outputs are functions of both the present state and the inputs
Department of Communication Engineering, NCTU
3
Hardware Project
A Moore FSM MTS turnstile
Unit 3 Finite State Machine Initialization Easy Cards Passing Locked Sau-Hsuan Wu Unlocked Passing Violation (Unlocked) Alarm Reset Department of Communication Engineering, NCTU
4
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
State diagram representation Locked ST: S 0 , Unlocked ST : S 1 and Violation ST: S 2 Inputs Presence of Easy Card Passenger passing u 1 u 0 =1, otherwise u =1, otherwise u 1 =0 0 Alarm reset u 2 =1, otherwise u 2 =0 Outputs (Z) =0
u 0 =0 XNOR u 1 =0
S 0 S 1 S 2 Locked Unlocked Unlocked
u 1 =1 S 0 u 0 =1 u 2 =1 u 1 =1 S 2 S 1 u 1 =0 u 2 =0 Department of Communication Engineering, NCTU
5
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
State transition table S
S 0 S 1 S 2
S + u 2 u 1 u 0 = 000 001 010 011 100 101 110 111
S 0 S 1 S 2 S 0 S 0 S 0 S 0 S 0 S 1 S 2
− −
S 0 S 2 S 1
− − − −
S 0 S 0 S 0 u 0 =0 XNOR u 1 =0
−
S 0 S 0 u 1 =1 u 0 =1
Z 1 0 0
u 2 =1 u 1 =1 S 2 S 1 u 2 =0 u 1 =0 Department of Communication Engineering, NCTU
6
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Binary state assignment S
S 0 S 1 S 2
S + u 2 u 1 u 0 = 000 001 010 011 100 101 110 111
S 0 S 1 S 2 S 0 S 0 S 0 S 0 S 0 S 1 S 2
− −
S 0 S 2 S 1
− −
S 0
−
S 0
−
S 0
−
S 0
S Q 1 Q 0
00 01 10 11
Q 1 + Q 0 + u 2 u 1 u 0 = 000 001 010 011 100 101 110 111
00 01 10 00 00 00 00 00 01 10
− − − −
00 10
−
01
− − −
00
− −
00
− −
00
− −
00
− Z 1 0 0 − 1 0 0 Z
Department of Communication Engineering, NCTU
7
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Next-State maps Q 1 Q 0 u 2 u 1 u 0 = 000 001 010 011 100 101 110 111
00 00 01 10 00 00 00 00 00 01 10 11 u 2 1/0 Q 1 Q 0 u 1 u 0
0
00
0 X
01
X 0
11
X
10
0 1
01 10
− 0
01
0 X X 0
11
0 X 0 X 0 X X X
Q 1 +
0 X X 0 − − − 0
10
1 X X 0 X
00 10
−
01
− − − − −
00
− −
Q 1 Q 0 u 1 u 0
0
00
0 X
00
− X 0
01
1
01
1
u 2 1/0
X X X
11
X X
00
− X X 0
11
0 1 X
00
− X X 0
10
0 0 X 1
10
0 0 0 X
Q 0 +
0 X 0 0
Department of Communication Engineering, NCTU
Z 1 0 0 − 8
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Characteristic equations
u 2 1/0 Q 1 Q u 1 u 0 0
0
00 00
0 X
01
X 0
11
X
10
0 1 0
01
0 X X 0
11
0 X 0 X 0 X X 0 X
Q 1 +
X X 0
10
1 X 0 X X 0 1 Q 1 + = Q 1 u 2 ’ + Q 0 ’ u 2 ’ u 1 u 0 ’
Q 1 Q u 1 u 0 0
0
00 00
0 X
01 u 2 1/0 11
X 1 X
10
0 0 0
01
1 X X 0
11
0 X 1 X 0 X X 0 X
Q 0 +
X X 0
10
0 X 0 X X 0 0 Q 0 + = Q 0 u 1 ’ + Q 0 u 0 + u 2 ’ u 1 ’ u 0
Department of Communication Engineering, NCTU
9
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Output equations Q 1 Q 0
00 01 10 11
u 2 u 1 u 0 = 000 001 010 011 100 101 110 111
00 01 10 00 00 00 00 00 01 10
− − − −
00 10
−
01
− − −
00
− −
00
− −
00
− −
00
− Z 1 0 0 −/ (1) Characteristic equations: Q 1 + = Q 1 u 2 ’ + Q 0 ’ u 2 ’ u 1 u 0 ’ Output equation : Z = Q 1 Q 0 (or = (Q 1 || Q 0 ) ’ Q 0 + = Q 0 u 1 ’ + Q 0 u 0 + u 2 ’ u 1 ’ u 0
Department of Communication Engineering, NCTU
10
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Circuit realization with D-FFs Characteristic equations: Q 1 + = Q 1 u 2 ’ + Q 0 ’ u 2 ’ u 1 u 0 ’ Output equation : Z = Q 1 Q 0 Q 0 + = Q 0 u 1 ’ + Q 0 u 0 + u 2 ’ u 1 ’ u 0
u 2 u 1 u 0 Q 1 +
D Q CK CLR
Q 1 Z u 1 u 0 u 2 Q 0 +
D Q CK CLR
Q 0 CLK Department of Communication Engineering, NCTU
11
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Another Moore FSM An elevator controller (Up, Down, Open and Timer start) req > floor u,d,o, t = 1,0,0,0 GoingUp !(req > floor) u,d,o,t = 0,0,1,0 req > floor Idle req == floor !(timer < 10) req < floor u,d,o,t = 0,1,0,0 GoingDn DoorOpen !(req
Department of Communication Engineering, NCTU
12
Hardware Project Unit 3 Finite State Machine
The general model of a Moore machine
X 1 X 2 X m Q 1 + Com.
Logic Q 2 + Q m +
D Q
Q 1
CK CLR D Q
Q 2
CK CLR D Q CK CLR
Q m Com.
Logic Sau-Hsuan Wu Z 1 Z 2 Z m Department of Communication Engineering, NCTU
13
Hardware Project Unit 3 Finite State Machine
A Mealy FSM A traffic light controller
Farmroad C HL FL Sau-Hsuan Wu Highway Highway HL C Farmroad FL Department of Communication Engineering, NCTU
14
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Tabulation of inputs and outputs
Input Signal
Reset C TS TL
Description
place FSM in initial state detect vehicle on farmroad short time interval expired long time interval expired
Output Signal
HG, HY, HR FG, FY, FR ST
Description
assert green/yellow/red highway lights assert green/yellow/red farmroad lights start timing a short or long interval
Tabulation of unique states
State
S 0 S 1 S 2 S 3
Description
Highway green (farmroad red) Highway yellow (farmroad red) Farmroad green (highway red) Farmroad yellow (highway red) Department of Communication Engineering, NCTU
15
Hardware Project Unit 3 Finite State Machine
The state diagram
S 0 : HG (FR) S 1 : HY (FR) S 2 : FG (HR) S 3 : FY (HR) Reset TL
&
C /ST S 0 TL ’ + C ’ TS/ST Sau-Hsuan Wu TS ’ S 1 S 3 TS ’ TS/ST S 2 TL ’ + C TL
&
C ’ /ST Department of Communication Engineering, NCTU
16
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
State transition table
Reset T L ’ + C ’ S 0 S 1 S 2 S 3 HG = S 0 FR = S 0 + S 1 HY = S 1 FG = S 2 HR = S 2 + S 3 FY = S 3 S T = ?
S
T L
&
C /S T T S ’ T S /S T S 1 S 0 T S /S T S 3 S 2 T L
&
C ’ /S T T L ’ + C
S +
|
S T CT L T S =000 001 010 011 100 101 110 111
S 0 |S T ’ S 1 |S T ’ S 2 |S T ’ S 3 |S T ’ S 0 |S T ’ S 2 |S T S 2 |S T ’ S 0 |S T S 0 |S T ’ S 1 |S T ’ S 3 |S T S 3 |S T ’ S 0 |S T ’ S 2 |S T S 3 |S T S 0 |S T S 0 |S T ’ S 1 |S T ’ S 2 |S T ’ S 3 |S T ’ S 0 |S T ’ S 2 |S T S 2 |S T ’ S 0 |S T S 1 |S T S 1 |S T ’ S 2 |S T ’ S 3 |S T ’ S 1 |S T S 2 |S T S 2 |S T ’ S 0 |S T T S ’ Department of Communication Engineering, NCTU
17
Hardware Project
S
S 0 S 1 S 2 S 3 Unit 3 Finite State Machine Sau-Hsuan Wu
S +
|
S T CT L T S =000 001 010 011 100 101 110 111
S S 0 2 |S |S T S 1 |S T ’ T S 3 |S T ’ ’ ’ S 0 |S T ’ S S 2 |S T ’ S 2 0 |S |S T T S S S S 0 1 3 3 |S |S |S |S T T T T ’ ’ ’ S 0 |S T ’ S S S 2 3 0 |S |S |S T T T S S S S 0 1 2 3 |S |S |S |S T T T T ’ ’ ’ ’ S 0 |S T ’ S S S 2 2 0 |S |S |S T T T ’ S S S S 1 2 3 1 |S |S |S |S T T T T ’ ’ ’ S S S S 2 1 2 0 |S |S |S |S T T T T ’
S
00 01 11 10
S +
|
S T CT L T S =000 001 010 011 100 101 110 111
00 |0 00 |0 00 |0 00 |0 00 |0 00 |0 01 |1 01 |1 01|0 11 |1 01 |0 11 |1 01 |0 11 |1 01 |0 11 |1 11 |0 10 |0 11 |0 00|1 10|1 10 |0 10|1 00|1 11 |0 10 |0 11 |0 00|1 11 |0 10 |0 11|0 00|1 Department of Communication Engineering, NCTU
18
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
S S +
|
S T CT L T S =000 001 010 011 100 101 110 111
00 |0 00 |0 00 |0 00 |0 00 |0 00 |0 01 |1 01 |1 00 01 11 01|0 11 |0 11 |1 11 |0 01 |0 10|1 11 |1 10|1 01 |0 11 |0 11 |1 11 |0 01 |0 11 |0 10 |0 10 10 |0 00|1 10 |0 00|1 10 |0 00|1 C 1/0 Q 1 Q 0
T L T S 0
00
0 0
01
1 0
11
1
10
1 1 0
01
0 1 1 1 0 1 1 0
Q 1 +
0 0
11
0 1 1 1 0 0
10
0 0 0 1 1 1 1
Q 1 Q 0
T L T S 0
00
0 1
01
1
C 1/0
1
11
1 0
10
0 0
01
0 1 1 1 0 1 1 0
Q 0 +
0 1
11
0 1 1 0 0
Department of Communication Engineering, NCTU
1
10
0 1 1 1 0 0 0
11 |1 11|0 00|1
19
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
S S +
|
S T CT L T S =000 001 010 011 100 101 110 111
00 |0 00 |0 00 |0 00 |0 00 |0 00 |0 01 |1 01 |1 00 01 11 10 01|0 11 |0 10 |0 11 |1 11 |0 00|1 01 |0 10|1 10 |0 11 |1 10|1 00|1 01 |0 11 |0 10 |0 11 |1 11 |0 00|1 01 |0 11 |0 10 |0 C 1/0 Q 1 Q 0
T L T S 0
00
0 0
01
0 0
11
0
10
0 0 0
01
0 1 1 0 1 0 0 1
S T
1 1
11
0 1 1 1 1 1
10
0 0 0 0 1 0 0
HG = S 0 FR = S 0 + S 1 HY = S 1 FG = S 2 HR = S 2 + S 3 FY = S 3 S T =
Q 1 Q 0
’
T S + Q 1
’
Q 0 T S + Q 1
’
Q 0
’ C
T L + Q 1 Q 0
C’
T L
Department of Communication Engineering, NCTU 11 |1 11|0 00|1
20
Hardware Project Unit 3 Finite State Machine
The general model of a Mealy machine
X 1 X 2 Z 1 Z 2 X m Q 1 + Com.
Logic Q 2 + Q m + Z m
D Q CK CLR
Q 1
D Q CK CLR
Q 2
D Q CK CLR
Q m Sau-Hsuan Wu Department of Communication Engineering, NCTU
21
Hardware Project Unit 3 Finite State Machine S T
Circuit realization using a Mealy machine
Plant Reset
D Q CK CLR D Q CK CLR
T L
&
C /S T CLK T S ’ S 1 CntPre VDD Counter for T S
DN D CK Pre
T S T S /S T Counter for T L
DN D CK Pre
T L Sau-Hsuan Wu S 0 T L ’ + C ’ T S /S T T S ’ S 3 S 2 T L
&
C ’ /S T T L ’ + C FSM Department of Communication Engineering, NCTU
22
Hardware Project Unit 3 Finite State Machine
Timing diagram using a Mealy machine
CLK Q 1 Q 0 T L T S S 0 S 1 S 2 C HG = S0 S T CntPre S T =
Q 1 Q 0
’
T S + Q 1
’
Q 0 T S + Q 1
’
Q 0
’ C
T L + Q 1 Q 0
C’
T L
Reset T L
&
C /S T T S ’ T S /S T S 1 Department of Communication Engineering, NCTU Sau-Hsuan Wu S 3 S 0 T L ’ + C ’ T S /S T S 3 S 2 T L
&
C ’ /S T T L ’ + C
23
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
An alternative realization with a Moore machine
Plant S T CLK VDD Counter for T S
DN ENA D CK Pre
Counter for T L
DN ENA D CK Pre
T S T L T S ’ Reset T L
&
C S 1 S T S 0 S T ’ T L ’ + C ’ T S T S ’ ST S 3 S T T S S 2 S T ’ T L
&
C ’ T L ’ + C FSM S T =
Q 1 Q 0
’
+ Q 1
’
Q 0
Notice: need more states to generate the Pre signal if needed!! Department of Communication Engineering, NCTU
24
Hardware Project Unit 3 Finite State Machine
Timing diagram using a Moore machine
CLK Q 1 Q 0 T L T S S 0 S 1 S 2 C HG = S0 S T S T =
Q 1 Q 0
’
+ Q 1
’
Q 0
T S ’ Reset T L
&
C S 1 S T T S Department of Communication Engineering, NCTU Sau-Hsuan Wu S 3 S 0 S T ’ ST T L ’ + C ’ T S 3 S T S T S ’ S 2 S T ’ T L
&
C ’ T L ’ + C
25
Hardware Project Unit 3 Finite State Machine
The general model of a digital circuit
X 1 X 2 Z 1 Z 2 X P Z Q IN 1 CS 1 Plant IN 2 FSM CS 2 IN R CS M Sau-Hsuan Wu Department of Communication Engineering, NCTU
26
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Difference between a Moore machine and a Mealy machine The outputs of a Moore FSM are synchronized with the CLK, however the outputs of a Mealy machine are not The disadvantages of Moore FSMs In general, more states are required to generate outputs The action of the plant that the FSM controls is always one CLK period lagging behind the control signals The above two points are right the advantages of Mealy FSMs The disadvantages of Mealy FSMs Outputs of FSMs must be sampled with FFs if synchronization is required Glitches and spikes
S T
D Q CK CLR D Q CK CLR
CntPre Department of Communication Engineering, NCTU
27
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Serial data code converter Design a code converter that convert an NRZ-coded bit stream to a Manchester-coded bit stream
Department of Communication Engineering, NCTU
28
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Realize the code converter with a Mealy machine Use a clock Clock2 which is twice the data rate The only two possible input sequences are 00 and 11 S
S 0 S 1 S 2
S + Z X= 0 X=1 X= 0 X=1
S 1 S 0
−
S 2
−
S 0
0 1 − 1 − 0
Reset 0 /0 S 1 Department of Communication Engineering, NCTU S 0 0/1 1/0 1/1 S 2
29
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
The timing diagram using the Mealy machine
CLK2 NRZ 0 0 Manchester (ideal) S 0 1 S 1 0 Z (actual) 1 1 S 0 1 1 0 S 2 0 1 S 0 1 1 0 S 2 0 1 S 0 1 1 0 S 2 0 0 S 0 0 S 0 0 1 S 1 1 0 /0 1/1 S 1 Department of Communication Engineering, NCTU 0/1 1/0 S 2
30
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Redesign the data converter with a Moore machine
Department of Communication Engineering, NCTU
31
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
The timing diagram using the Moore machine
Output is one clock lagging behind the input sequence Department of Communication Engineering, NCTU
32
3.2 Data Path and FSM
Department of Communication Engineering, NCTU
33
Hardware Project Unit 3 Finite State Machine
The general model of a digital circuit
X 1 X 2 Z 1 Z 2 X P Z Q IN 1 CS 1 Plant IN 2 FSM CS 2 IN R CS M Sau-Hsuan Wu Department of Communication Engineering, NCTU
34
Hardware Project Unit 3 Finite State Machine
A plant usually includes A data path over which data are processed A data path may include An arithmetic and logic unit (ALU) Registers Counters Decoders Peripherals which may include Input devices like key boards and mice Storages devices like memories and disks Output devices Communications interface like USB, RS232, and Eithernet Speaker Printer Displays like LCD and 7-segment displays
Department of Communication Engineering, NCTU Sau-Hsuan Wu
35
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Data path and FSM go hand in hand in digital design A signal processing scheme is usually partitioned into a sequence of processing stages Data path decides the number of stages the data is processed and the paths of data flow in between the stages Data at the outputs of each stage are stores in registers The complexity or in other words the levels of logics in each stage decides the processing speed On the other hand the number of stages decides the processing delay FSM controls data’s movement in data path
Department of Communication Engineering, NCTU
36
Hardware Project Unit 3 Finite State Machine
Data path for bubble sorting of 4 words
Sau-Hsuan Wu DIP SW Reg 0 CS0 Reg 1 A A B CS1 CS4 Reg 2 B CS2 CS5 S0 S1 S2 S3 Reg 3 CS3 Department of Communication Engineering, NCTU A > B A = B
37
Hardware Project Unit 3 Finite State Machine
Draw a flow chart
Idle Load B St N Load Data Counter - Load Cnt3=0 Y Load A B>A Load LW Sau-Hsuan Wu Cnt1=0 Cnt 0 - N Cnt 0 = 2 Load HW Cnt0=0 N Cnt1=Cnt0 Cnt 1 - Department of Communication Engineering, NCTU
38
Hardware Project Unit 3 Finite State Machine
Checking the Timing diagram
Sau-Hsuan Wu CLK Idle St Load Cnt 3 XX Cnt 0 Cnt 1 11 10 XX 01 XX 00 10 10 Department of Communication Engineering, NCTU
39
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Sequential machines are commonly partitioned into data path units and control units
Datapath Unit Datapath Logic Control inputs Clock FSM Control signals Datapath Registers
The synthesis of a sequential machine usually includes: Constructing the datapath units Designing FSMs to control the data flow Realizing the control signals Checking the timing of signals
Department of Communication Engineering, NCTU
40
3.3 Algorithm State Machine
Department of Communication Engineering, NCTU
41
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Datapath units consist of: Arithmetic units : Arithmetic and logic units (ALU) Storage registers Logic for moving data : through the system between the computation units and internal registers to and from the external environments Control units are commonly modeled by State transition graphs (STGs) Algorithm state machine (ASM) charts for FSM A combined control-dataflow sequential machine is modeled by ASM and datapath (ASMD) charts
Department of Communication Engineering, NCTU
42
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Algorithm State Machine (ASM) Charts State transition graphs only indicate the transitions that result from inputs Not only does ASM display the state transitions, it also models the evolution of states under the application of input datas An ASM chart is formed with three fundamental elements
Department of Communication Engineering, NCTU
43
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
Both Mealy and Moore machines can be represented by ASM The outputs of a Moore machine are listed inside a state box Conditional outputs (Mealy outputs) are placed in conditional output boxes
Start En C <= C+1 Department of Communication Engineering, NCTU
44
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
A sequential machine is partitioned into a controller and a datapath, and the controller is described by an ASM The ASM chart can be modified to link to the datapath that is under control of the ASM The modified ASM is referred to as the algorithm state machine and datapath (ASMD) chart ASMD is different from ASM in that : each of the transition path of an ASM is annotated with the associated concurrent
register
operations of datapath
Department of Communication Engineering, NCTU
45
Hardware Project Unit 3 Finite State Machine
An ASMD chart for a up-down counter
Sau-Hsuan Wu Up-down counter with asynchronous reset Up-down counter with synchronous reset Reset Count <= 0 Count <= Count - 1 Count <= 0 Start Count <= Count + 1 Start Clr Up Up Count <= Count + 1 Department of Communication Engineering, NCTU Count <= Count - 1
46
Hardware Project Unit 3 Finite State Machine Sau-Hsuan Wu
ASM v.s. ASMD charts for a counter with enable
ASM chart representation ASMD chart representation Start En C <= C+1 Start En Enable DP Department of Communication Engineering, NCTU Count <= Count + 1
47
Hardware Project Unit 3 Finite State Machine
A electronic dice game
Sau-Hsuan Wu Department of Communication Engineering, NCTU
48
Hardware Project Unit 3 Finite State Machine
Flowchart for dice game
Sau-Hsuan Wu Department of Communication Engineering, NCTU
49
Hardware Project Unit 3 Finite State Machine
Convert flowchart to state machine chart
Sau-Hsuan Wu Department of Communication Engineering, NCTU
50
Hardware Project Unit 3 Finite State Machine
State machine chart
Sau-Hsuan Wu Department of Communication Engineering, NCTU
51
Hardware Project
State graph
Unit 3 Finite State Machine Sau-Hsuan Wu Department of Communication Engineering, NCTU
52
Hardware Project
Next-state map
Unit 3 Finite State Machine Sau-Hsuan Wu Department of Communication Engineering, NCTU
53
Hardware Project
Realization
Unit 3 Finite State Machine Sau-Hsuan Wu Department of Communication Engineering, NCTU
54