Finite State Machine Implementation: Prith Banerjee Ece C03 Advanced Digital Design Spring 1998
Finite State Machine Implementation: Prith Banerjee Ece C03 Advanced Digital Design Spring 1998
Prith Banerjee
ECE C03
Advanced Digital Design
Spring 1998
Emphasis so far
State
ROM-based Realization
ROM Registers
A0 D0 Inputs & Current State
Inputs Outputs
Dk-1
form the address
An-1
An Dk ROM data bits form the
Outputs & Next State
An+m-1 Dk+m-1
State
ECE C03 Lecture 15 4
ROM-Based Implementation
Reset
S0
0/1 1/0
S1 S2
1/0
0/1 0/0, Derived State Diagram
1/1
S3 S4
0/0, 0/1 1/0
1/1
S5 S6
0/0, 0/1
1/1 ECE C03 Lecture 15 6
ROM-Based Implementation
BCD to Excess 3 Converter
In ROM-based designs,ECE
noC03
need to consider state assignment
Lecture 15 7
ROM Based Implementation
LSB MSB
Timing Behavior for input strings 0 0 0 0 (0) and 1 1 1 0 (7)
0 0 0 0 1 1 1 0
1 1 0 0 0 1 0 1
0 S0 S1 1 S0 = 000
1 S0 S2 0 S1 = 001
0 S1 S3 1 S2 = 011
1 S1 S4 0 S3 = 110
0 S2 S4 0 S4 = 100
1 S2 S4 1 S5 = 111
0 S3 S5 0 S6 = 101
1 S3 S5 1
0 S4 S5 1 NOVA derived
1 S4 S6 0 state assignment
0 S5 S0 0
1 S5 S0 1
0 S6 S0 1 9 product term
NOVA input file implementation
.i 4 Espresso Inputs .i 4
.o 4 .o 4
.ilb x q2 q1 q0 .ilb x q2 q1 q0
.ob d2 d1 d0 z .ob d2 d1 d0 z
.p 16 .p 9
0 000 001 1 0001 0100
1 000 011 0 10-0 0100
0 001 110 1 01-0 0100
1 001 100 0 1-1- 0001
0 011 100 0 -0-1 1000
1 011 100 1 0-0- 0001
0 110 111 0 -1-0 1000
1 110 111 1 --10 0100
0 100 111 1 ---0 0010
1 100 101 0 Espresso Outputs .e
0 111 000 0
1 111 000 1
0 101 000 1
1 101 --- -
0 010 --- -
1 010 --- -
.e ECE C03 Lecture 15 10
PLA Implementation
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
1
CLK 9 15
CLK QD
14 Z
1 X
conv erter PLA 175 QD
Z 13 D 10
X QC
0 D2 12 C 11
Q2 QC
D1 5 B 7
Q1 QB
D0 4 A 6
Q0 QB
2
1 1 CLR QA
3
0 QA
\Reset
D11 = X Q2 Q1 Q0 + X Q2 Q0
D12 = X Q2 Q0 + Q1 Q0
0 1 2 3 45 89 12 13 16 17 20 21 24 25 28 29 30 31
X
0
1 D2
0. Q2 Q0 Q2
1. Q2 Q0 8
9
D11
8. X Q2 Q1 Q0 Q1
9. X Q2 Q0 16
D12
16. X Q2 Q0 Q0
17
17. Q1 Q0 24
D1
24. D11 25
D11
25. D12 32
32. Q0 33
D0
41. X Q1
ECE C03 Lecture 15 12
PAL Implementation
BCD to Excess 3 Serial Converter
0 1 2 3 45 89 12 13 16 17 20 21 24 25 28 29 30 31
X
0
1 D2
Q2
8
D11
9
Q1
16
17 D12
Q0
24
D1
25
D11
32
D0
33
D12
40
41 Z
Q2 Q0 + Q2 Q0
Q2 Q0
Q2 Q0
D2 Q2+ Q2+
DQ
Q
Q2+
Q2 Q0 + Q2 Q0
X
Q2 Q2 Q0 Q0
Negative Logic
D2 = Q2 Q0 + Q2 Q0 Feedback
D1 = X Q2 Q1 Q0 + X Q2 + X Q0 + Q2 Q0 + Q1 Q0
D0 = Q0
ECE C03 Lecture 15 14
Z = X Q1 + X Q1
Advanced PAL Architectures
Programmable Output Polarity/XOR PALs
CLK OE
5
6
1024
800 1056
840 18 1088
D Q
880 1120 D Q 15
920 1152
Q 1184
1216 Q
1248
7
6
960
1000
D Q 17 1280
1040 1312
1080 1344
Q 1376 D Q 14
1408
8 1440
1472 Q
1504
1120
1160
D Q 16 7
1200
1240
1536
Q 1568
1600
9 1632 D Q 13
1664
1280 1696
1320 1728 Q
D Q 15 1760
1360
1400 8
Q
1792
10 1824
1856
1440 1888
1480 12
14 1920
D Q 1952
1520
1560 1984
Q 2016
9 11
11 13
INCREMEN 0 4 8 12 16 20 24 28 32 36
T
NOTE: FUSE NUMBER = FIRST FUSE NUMBER +
INCREMENT
0
Four kinds of transitions for each state:
no
(1) to State 0 (CLR)
CLR signals
(2) to next state in sequence (CNT) n asserted
Reset
0
0/1 1/0
2 5
0/0, 0/1
1/1 1/0
3 6
0/0, 0/1
1/1
ECE C03 Lecture 15 18
Implementation Strategies
FSM Design with Counters
Excess 3 Converter
Inputs/Current Next
State State Outputs
X Q2 Q1 Q0 Q2+ Q1+ Q0+ Z CLR LD EN C B A
0 0 0 0 0 0 1 1 1 1 1 X X X
0 0 0 1 0 1 0 1 1 1 1 X X X
0 0 1 0 0 1 1 0 1 1 1 X X X
0 0 1 1 0 0 0 0 0 X X X X X
0 1 0 0 1 0 1 1 1 1 1 X X X
0 1 0 1 0 1 1 0 1 0 X 0 1 0
0 1 1 0 0 0 0 1 0 X X X X X
0 1 1 1 X X X X X X X X X X
1 0 0 0 1 0 0 0 1 0 X 1 0 0
1 0 0 1 1 0 1 0 1 0 X 1 0 1
1 0 1 0 0 1 1 1 1 1 1 X X X
1 0 1 1 0 0 0 1 0 X X X X X
1 1 0 0 1 0 1 0 1 1 1 X X X
1 1 0 1 1 1 0 1 1 1 1 X X X
1 1 1 0 X X X X X X X X X X
1 1 1 1 X X X X X X X X X X
excess 3 PLA 7 Z
1 P D Q
Z 10
T
163
0
X Rese t \CLR 2 RCO15 C Q
1 \L D CLK
X
0 6 D QD 11
Q2 EN
5 C QC 12
Q1 C 4 B
Q0 B QB 13
3 A 14
A QA
9 LOAD
1
CLR
IOB
General Chip Architecture:
Logic Blocks (CLBs)
IO Blocks (IOBs) CLB CLB
Wiring Channels
IOB
Wiring Channels
IOB
CLB CLB
IOB
MUX PAD
Internal FFs for Out D Q Output
input & output paths Buffer
R
Direct In
Fast/Slow outputs
5 ns vs. 30 ns rise Registered In
Q D
TTL or CMOS
Input Buffer
R
Pull-up used with
unused IOBs Clocks Global Reset
2 FFs
Reset
DIN Mux D RD
Q
Any function of CE
5 Variables Q1 Mux X
F
A
B Combinational
Global Reset C Function
D Generator
E G
Q2 Mux Y
Clock, Clock Enb Mux D RD
Q
Clock Mux CE
Independent DIN Clock
Enable
Q1
A
B Mux
Function
C Mux of 4
Variables
D E
Certain Limited F
Q2
Functions of 6 Variables
Mux
Q1
A G
B Mux
Function
C Mux of 4
Variables
D
Q2
ECE C03 Lecture 15 27
Xilinx Interconnect Architecture
Direct
Connections
Interconnect DI CE A DI CE A
B X B X
C CLB0 C CLB1
K Y K Y
Direct Connections E D R E D R
Horizontal
Global Long Line Long Line
Switching
Horizontal/Vertical Matrix
Long Lines
Horizontal
Switching Matrix Long Line
Connections DI CE A DI CE A
B X B X
C CLB2 C CLB3
K Y K Y
E D R E D R
Vertical Global
Long Lines Long Line
Q2+ = Q2 Q0 + Q2 Q0
Q1+ = X Q2 Q1 Q0 + X Q2 Q0 + X Q2 Q0 + Q1 Q0
Q0+ = Q0
Z = Z Q1 + X Q1
CE
CE A CE A
DI X DI X
X
Q2 Q2 Q2 Q1
FG FG
B Q0 Q1
B Q0
C C
Y X Y
Q0 Z
K Q0 K Q1
FG FG
E E
D RES D RES
CLB1 CLB2