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
Outline
Mapping FSM to random logic Mapping FSM to ROMS Mapping FSM to PLAs Mapping FSM to Programmable Logic Devices (Xilinx) READING: Katz 10.1.1, 10.1.2, 10.3, Dewey 9.5
State
ROM-based Realization
ROM A0 Inputs An-1 An Dk-1 Dk D0 Outputs Registers
Inputs & Current State form the address ROM data bits form the Outputs & Next State
An+m-1 Dk+m-1
State
ECE C03 Lecture 15 4
ROM-Based Implementation
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 fashion starting with the least significant bit
Reset
0/1
S1 0/1 1/0
S0
1/0
S2 0/0, 1/1 S4 1/0 S6 0/1 ECE C03 Lecture 15 6
ROM-Based Implementation
BCD to Excess 3 Converter
ROM Address X Q2 Q1 Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 ROM Outputs Z D2 D1 D0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 X X X X 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 X X X X X X X X
CLK
D C B A
QD 175 QD QC QC QB QB
15 14 10 11 7 6
1 CLR \Reset
2 QA 3 QA
0 1
0 1
0 0
0 0
1 0
1 1
1 0
0 1
0000
LSB
1100
1110
0101
LSB
State Assignment with NOVA 0 1 0 1 0 1 0 1 0 1 0 1 0 S0 S0 S1 S1 S2 S2 S3 S3 S4 S4 S5 S5 S6 S1 S2 S3 S4 S4 S4 S5 S5 S5 S6 S0 S0 S0 1 0 1 0 0 1 0 1 1 0 0 1 1 S0 = 000 S1 = 001 S2 = 011 S3 = 110 S4 = 100 S5 = 111 S6 = 101 NOVA derived state assignment 9 product term implementation
ECE C03 Lecture 15 9
PLA Implementation
BCD to Excess 3 Converter .i 4 .o 4 .ilb x q2 .ob d2 d1 .p 16 0 000 001 1 000 011 0 001 110 1 001 100 0 011 100 1 011 100 0 110 111 1 110 111 0 100 111 1 100 101 0 111 000 1 111 000 0 101 000 1 101 --0 010 --1 010 --.e Espresso Inputs .i 4 .o 4 .ilb x q2 q1 q0 .ob d2 d1 d0 z .p 9 0001 0100 10-0 0100 01-0 0100 1-1- 0001 -0-1 1000 0-0- 0001 -1-0 1000 --10 0100 ---0 0010 .e
q1 q0 d0 z
1 0 1 0 0 1 0 1 1 0 0 1 1 -
Espresso Outputs
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 1 0 X conv erter PLA X Q2 Q1 Q0 Z D2 D1 D0 1 0 13 12 5 4 CLK D C B A 15 QD 14 QD 10 QC 11 QC 7 QB 6 QB 2 QA 3 QA
175
1 CLR \Reset
11
PAL Implementation
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
0 1 2 3 X 45 89 12 13 16 17 20 21 24 25 28 29 30 31
0. Q2 Q0 1. Q2 Q0 8. X Q2 Q1 Q0 9. X Q2 Q0 16. X Q2 Q0 17. Q1 Q0 24. D11 25. D12 32. Q0 33. not used 40. X Q1 41. X Q1
0 1 Q2 8 9 Q1 16 17 Q0 24 25 D11 32 33 D12 40 41
D2
D11
D12
D1
D0
12
PAL Implementation
BCD to Excess 3 Serial Converter
0 1 2 3 X 0 1 Q2 8 9 Q1 16 17 Q0 24 25 D11 32 33 D12 40 41 Z D0 D1 D12 D11 D2 45 89 12 13 16 17 20 21 24 25 28 29 30 31
13
Q2 Q0 Q2 Q0
D2 DQ Q
Q2+
Q2+
Q2+ X Q2 Q0 + Q2 Q0
Q2 Q2
Q0 Q0
D2 = Q2 Q0 + Q2 Q0
D1 = X Q2 Q1 Q0 + X Q2 + X Q0 + Q2 Q0 + Q1 Q0 D0 = Q0 Z = X Q1 + X Q1
ECE C03 Lecture 15 14
DQ Q
15
12
16
20
24
28
32
36 D Q 23
FIRST FUSE NUMBER S
19
Q Q
22
256 288 320 352 384 416 448 480 3 512 544 576 608 640 672 704 736 4
Q Q
18
Q Q
21
Q Q
17
Q Q
20
Q Q
19
Q Q
16
Q Q
18
Q Q
15
7 960 1000 1040 1080 Q 8 1120 1160 1200 1240 Q 9 1280 1320 1360 1400 Q 10 1440 1480 1520 1560 Q 11 INCREMEN T 0 4 8 12 16 20 24 28 32 36 13
9
17
1280 1312 1344 1376 1408 1440 1472 1504 7 1536 1568 1600 1632 1664 1696 1728 1760 8 1792 1824 1856 1888 1920 1952 1984 2016
Q Q
14
16
Q Q
13
15
12
14
11
16
0 no signals asserted LD m
CLR
(2) to next state in sequence (CNT) (3) to arbitrary next state (LD) (4) loop in current state
CNT n+1
17
Implementation Strategies
FSM Design with Counters Excess 3 Converter Revisited
Reset 0/1 1 0/1 1/0 0 1/0 4 0/0, 1/1 5 0/1 1/0 6 0/1
ECE C03 Lecture 15 18
Implementation Strategies
FSM Design with Counters Excess 3 Converter
Inputs/Current Next State State X Q2 Q1 Q0 Q2+ Q1+ 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 X X 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 X X 1 1 1 1 X X Outputs Q0+ 1 0 1 0 1 1 0 X 0 1 1 0 1 0 X X Z CLR LD 1 1 1 1 1 1 0 1 1 0 0 X 1 1 1 0 1 0 1 0 X X X X 0 1 0 0 1 0 1 1 1 1 0 X 0 1 1 1 1 1 X X X X 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
Field Programmable Gate Arrays = FPGAs Altera MAX Family Actel Programmable Gate Array Xilinx Logical Cell Array 100 - 1000(s) of Gate Equivalents!
22
IOB
General Chip Architecture: Logic Blocks (CLBs) IO Blocks (IOBs) Wiring Channels
IOB
CLB
CLB
Wiring Channels
IOB
CLB
ECE C03 Lecture 15
CLB
23
IOB
PAD
Direct In Q Registered In
Clocks
Global Reset
24
Q1 A B C D E
Mux
Clock
Mux
Independent DIN
Clock Enable
25
Q1 A B Mux
Function of 5 Variables
C Mux D E Q2
C D E
Mux Mux
Function of 4 Variables
E F Mux G
Q2 Q1 A B C D Q2 Mux Mux
Function of 4 Variables
27
28
Q0+ = Q0
Z = Z Q1 + X Q1
CE CE DI B C Y K E D RES Q0 FG Q0 Q2 Q0 FG A X DI Q2 B C K E D RES CE X Q2 Q1 Q0 X Q1 A X FG Q1
Y FG
CLB1
CLB2
30
Summary
Mapping FSM to random logic Mapping FSM to ROMS Mapping FSM to PLAs Mapping FSM to Programmable Logic Devices (Xilinx) NEXT LECTURE: VHDL Language READING: Dewey 11.2, 11.3, 11.4, 11.5, 11.6, 12.2, 12.2
31