Reti Logiche
Realizzazione di FSM
Capitolo 10: Realizzazione
di Macchine a Stati Finiti
Reti Logiche
Contemporary Logic Design
Randy H. Katz
University of California, Berkeley
May 1993
Trasparenze tradotte da:
Luciano Lavagno
Universita’ di Udine
Settembre 1998
© R.H. Katz 10-1
Riassunto del capitolo
Reti Logiche
Realizzazione di FSM
• Strategie di realizzazione
Logica a porte singole
Progetto con contatori e ROM
Logica programmabile:
PAL
FPGA: Altera, Actel, Xilinx
© R.H. Katz 10-2
Strategie di realizzazione
Reti Logiche
Realizzazione di FSM
• Logica a porte singole
E’ stata l’oggetto principale fino a questo punto
• Logica MSI (p.es. contatori)
• Logica strutturata (p.es. PLA/PAL, ROM)
• Field Programmable Gate Array (FPGA)
La funzione puo’ essere configurata “al volo” o sul campo
Sia flipflop/registri, sia porte singole su uno stesso curcuito.
© R.H. Katz 10-3
Strategie di realizzazione
Progetto di FSM con logica strutturata
Logica
combinatoria
Ingressi
Reti Logiche
Realizzazione di FSM
Registri
Funzione
di uscita
Uscite
Schema a blocchi per macchina
di Moore (o “Mealy sincrona”)
Funzione di
Stato futuro
Stato
Realizzazione a ROM
ROM
A0
Registri
D0
Ingressi
Uscite
An-1
Dk-1
An
Dk
An+m-1 Dk+m-1
• Ingressi e stato presente
sono gli indirizzi
• Bit di dato della ROM sono
uscite e stato futuro
Stato
© R.H. Katz 10-4
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto a ROM
Esempio: convertitore seriale da BCD ad eccesso-3
Processo di conversione
I bit sono presentati in modo seriale
partendo col bit meno significativo
Un ingresso X, un’uscita Z
BCD Codice eccesso-3
0000
0011
0001
0100
0010
0101
0011
0110
0100
0111
0101
1000
0110
1001
0111
1010
1000
1011
1001
1100
© R.H. Katz 10-5
Strategie di realizzazione
Convertitore da BCD ad eccesso-3
Stato presente
S0
S1
S2
S3
S4
S5
S6
Stato futuro
X=0 X=1
S1
S2
S3
S4
S4
S4
S5
S5
S5
S6
S0
S0
S0
--
Uscita
X=0 X=1
1
0
1
0
0
1
0
1
1
0
0
1
1
--
Reti Logiche
Realizzazione di FSM
Tabella delle transizioni
Reset
0/1
S1
0/1
S0
S2
1/0
0/0,
1/1
0/1
0/0,
1/1
S5
Diagramma degli stati
S4
S3
0/0,
1/1
1/0
1/0
S6
0/1
© R.H. Katz 10-6
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Convertitore da BCD ad eccesso-3
Realizzazione a ROM
Indirizzo ROM
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
Uscita ROM
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
1
CLK
1
0
X
conv erter ROM
Z
X
D2
Q2
D1
Q1
D0
Q0
1
0
9
13
12
5
4
CLK
D
C
B
A
QD
175 QD
QC
QC
QB
QB
1 CLR
\Reset
15
14
10
11
Z
7
6
2
QA
3
QA
Realizzazione circuitale
74175 = 4 FF D attivi sul fronte di salita
Tabella di verita’ (ingressi/uscite ROM)
In progetti a ROM non serve considerare l’assegnazione degli stati!!
© R.H. Katz 10-7
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Convertitore da BCD ad eccesso-3
LSB
MSB
Comportamento nel tempo per ingressi 0 0 0 0 (0) e 1 1 1 0 (7)
0
0
1
0000
LSB
0
1
0
0
1100
1
0
1
0
1110
1
1
0
0
1
0101
LSB
© R.H. Katz 10-8
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Convertitore da BCD ad eccesso-3
Progetto a PLA
Codiifca degli stati con 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
File di ingresso di NOVA
S0 = 000
S1 = 001
S2 = 011
S3 = 110
S4 = 100
S5 = 111
S6 = 101
Codifica degli stati
derivata da NOVA
Realizzazione con
9 termini prodotto
© R.H. Katz 10-9
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Convertitore da BCD ad eccesso-3
.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
.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
Uscita di Espresso .e
Ingresso di Espresso
q1 q0
d0 z
1
0
1
0
0
1
0
1
1
0
0
1
1
-
© R.H. Katz 10-10
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Convertitore da BCD ad eccesso-3
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
175
D
C
B
A
1 CLR
\Reset
15
QD
14
QD
10
QC
11
QC
7
QB
6
QB
2
QA
3
QA
Z
© R.H. Katz 10-11
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Convertitore da BCD ad eccesso-3
PAL 10H8: 10 ingressi, 8 uscite, 2 termini prodotto per porta OR
D1 = D11 + D12
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. 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. non usata
40. X • Q1
41. X • Q1
0
1
D2
8
9
D11
16
17
D12
24
25
D1
32
33
D0
40
41
Z
Q2
Q1
Q0
D11
D12
© R.H. Katz 10-12
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Convertitore da BCD ad eccesso-3
0 1 2 3
45
89
12 13 16 17 20 21 24 25
28 29 30 31
X
0
1
D2
8
9
D11
16
17
D12
24
25
D1
32
33
D0
40
41
Z
Q2
Q1
Q0
D11
D12
© R.H. Katz 10-13
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Architetture PAL avanzate
Output enable
controllato da
ingresso o
termine prodotto
Architettura PAL sequenziale (con registri)
CLK
OE
Q2 • Q0 + Q2 • Q0
Q2 • Q0
Q2 • Q0
D2
Q2+
Q2+
DQ
Q
Q2+
Q2 • Q0 + Q2 • Q0
X
Q2 Q2
D2 = Q2 • Q0 + Q2 • Q0
Q0 Q0
Reazione con stato
presente negato
D1 = X • Q2 • Q1 • Q0 + X • Q2 + X • Q0 + Q2 • Q0 + Q1 • Q0
D0 = Q0
Z = X • Q1 + X • Q1
© R.H. Katz 10-14
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Architetture PAL avanzate
PAL XOR, con polarita’ di uscita programmabile
CLK
OE
Ingresso XOR puo’ essere:
1 (coprire gli 1)
0 (coprire gli 0)
termine prodotto
DQ
Q
Vantaggio di PAL XOR: parita’ ed operazioni aritmetiche
AB
AB
AB
AB
AB
AB
AB
AB
C
C
C
C
C
C
C
C
D
D
D
D
D
D
D
D
A  B  C  D
AB
AB
A  B  C  D
CD
CD
© R.H. Katz 10-15
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Esempio di PAL XOR
Esempio di PAL a registri
INCREMEN
T
INCREMEN
T
1
1
0
0
FIRST
FUSE
NUMBER
4
8
12
16
20
24
28
32
36
0
40
D
Q
23
80
120
FIRST
FUSE
NUMBER
S
Q
2
4
8
12
16
20
24
28
0
32
64
96
128
160
192
224
19
2
160
200
D
240
280
Q
22
256
288
320
352
384
416
448
480
Q
3
320
360
D
400
440
Q
21
512
544
576
608
640
672
704
736
4
D
560
600
Q
20
D
720
760
Q
18
Q
D
Q
17
Q
4
Q
768
800
832
864
896
928
960
992
5
640
680
Q
3
Q
480
520
D
19
Q
D
Q
16
Q
5
6
800
840
D
880
920
Q
1024
1056
1088
1120
1152
1184
1216
1248
18
Q
7
D
Q
15
Q
6
960
1000
D
Q
17
1280
1312
1344
1376
1408
1440
1472
1504
1040
1080
Q
8
1120
1160
D
Q
16
1536
1568
1600
1632
1664
1696
1728
1760
Q
9
D
Q
15
1360
1400
D
Q
1792
1824
1856
1888
1920
1952
1984
2016
14
1520
1560
Q
13
11
INCREMEN
T
0
4
8
12
16
20
24
28
32
14
Q
D
Q
13
Q
8
Q
10
1440
1480
Q
7
1200
1240
1280
1320
D
9
12
11
36
NOTE: FUSE NUMBER = FIRST FUSE NUMBER +
INCREMENT
© R.H. Katz 10-16
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Specifica di PAL in Abel
PAL P10H8
module bcd2excess3
title 'BCD to Excess 3 Code Converter State Machine'
u1 device 'p10h8';
"Input Pins
X,Q2,Q1,Q0,D11i,D12i
pin
1,2,3,4,5,6;
"Output Pins
D2,D11o,D12o,D1,D0,Z
pin
19,18,17,16,15,14;
INSTATE = [Q2, Q1, Q0];
S0 = [0, 0, 0];
S1 = [0, 0, 1];
S2 = [0, 1, 1];
S3 = [1, 1, 0];
S4 = [1, 0, 0];
S5 = [1, 1, 1];
S6 = [1, 0, 1];
Equazioni esplicite
per funzioni di
uscita partizionate
equations
D2 = (!Q2 & Q0) # (Q2 & !Q0);
D1 = D11i # D12i;
D11o = (!X & !Q2 & !Q1 & Q0) # (X & !Q2 & !Q0);
D12o = (!X & Q2 & !Q0) # (Q1 & !Q0);
D0 = !Q0;
Z = (X & Q1) # (!X & !Q1);
end bcd2excess3;
© R.H. Katz 10-17
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Specifica di PAL in Abel
PAL P12H6
module bcd2excess3
title 'BCD to Excess 3 Code Converter State Machine'
u1 device 'p12h6';
"Input Pins
X, Q2, Q1, Q0
pin
1, 2, 3, 4;
"Output Pins
D2, D1, D0, Z
pin
17, 18, 16, 15;
INSTATE = [Q2, Q1,
S0in = [0, 0, 0];
S1in = [0, 0, 1];
S2in = [0, 1, 1];
S3in = [1, 1, 0];
S4in = [1, 0, 0];
S5in = [1, 1, 1];
S6in = [1, 0, 1];
Equazioni piu’
semplici
Q0]; OUTSTATE = [D2, D1, D0];
S0out = [0, 0, 0];
S1out = [0, 0, 1];
S2out = [0, 1, 1];
S3out = [1, 1, 0];
S4out = [1, 0, 0];
S5out = [1, 1, 1];
S6out = [1, 0, 1];
equations
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);
end bcd2excess3;
© R.H. Katz 10-18
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Specifica di PAL in Abel
PAL P16R4
module bcd2excess3
title 'BCD to Excess 3 Code Converter'
u1 device 'p16r4';
state_diagram SREG
state S0: if Reset then S0
else if X then S2 with Z = 0
else S1 with Z = 1
"Input Pins
state S1: if Reset then S0
Clk, Reset, X, !OE
pin 1, 2, 3, 11;
else if X then S4 with Z = 0
else S3 with Z = 1
"Output Pins
state S2: if Reset then S0
D2, D1, D0, Z
pin 14, 15, 16, 13;
else if X then S4 with Z = 1
else S4 with Z = 0
SREG = [D2, D1, D0];
state S3: if Reset then S0
S0 = [0, 0, 0];
else if X then S5 with Z = 1
S1 = [0, 0, 1];
else S5 with Z = 0
S2 = [0, 1, 1];
state S4: if Reset then S0
S3 = [1, 1, 0];
else if X then S6 with Z = 0
S4 = [1, 0, 0];
else S5 with Z = 1
S5 = [1, 1, 1];
state S5: if Reset then S0
S6 = [1, 0, 1];
else if X then S0 with Z = 1
else S0 with Z = 0
state S6: if Reset then S0
PAL con registri
else if !X then S0 with Z = 1
diagramma degli stati
end bcd2excess3;
© R.H. Katz 10-19
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto di FSM con contatori
Contatori sincroni: CLR, LD, CNT
0
Quattro tipi di transizioni di stato:
(1) allo stato 0 (CLR)
CLR
(2) al prossimo stato in sequenza (CNT)
(3) ad un qualsiasi altro stato (LD)
(4) allo stesso stato
Nessun
segnale
attivato
n
CNT
n+1
LD
m
E’ necessaria una codifica molto attenta
per usare al meglio la sequenza di conteggio
© R.H. Katz 10-20
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto di FSM con contatori
Rivediamo il convertitore eccesso-3
Reset
0/1
1
0/1
0
4
1/0
0/0,
1/1
0/1
3
0/0,
1/1
Notate la natura “sequenziale”
della codifica degli stati
5
2
0/0,
1/1
1/0
1/0
6
0/1
© R.H. Katz 10-21
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto di FSM con contatori
Convertitore eccesso-3
Ingressi e
Stato
Stato presente
futuro
X Q2 Q1 Q0 Q2+ Q1+ Q0+
0 0 0 0
0
0
1
0 0 0 1
0
1
0
0 0 1 0
0
1
1
0 0 1 1
0
0
0
0 1 0 0
1
0
1
0 1 0 1
0
1
1
0 1 1 0
0
0
0
0 1 1 1
X X X
1 0 0 0
1
0
0
1 0 0 1
1
0
1
1 0 1 0
0
1
1
1 0 1 1
0
0
0
1 1 0 0
1
0
1
1 1 0 1
1
1
0
1 1 1 0
X X X
1 1 1 1
X X X
Uscite
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
Il segnale CLR domina su LD, che a sua volta domina CNT
© R.H. Katz 10-22
Strategie di realizzazione
Reti Logiche
Realizzazione di FSM
Progetto di FSM con contatori
Convertitore eccesso-3
.i 5
Ingresso di Espresso .i 5
.o 7
.o 7
.ilb res x q2 q1 q0
.ilb res x q2 q1 q0
.ob z clr ld en c b a
.ob z clr ld en c b a
.p 17
.p 10
1---- -0----0-001 0101101
00000 1111---0-01 1000000
00001 1111---11-0 1000000
00010 0111--0-0-0 0101100
00011 00-----000- 1010000
00100 0111---0--0 0010000
00101 110-011
0-10- 0101011
00110 10------11- 1000000
00111 -------11-- 0010000
01000 010-100
-1-1- 1010000
01001 010-101
.e
01010 1111--Uscita di Espresso
01011 10----01100 1111--01101 0111--01110 ------01111 ------.e
© R.H. Katz 10-23
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto di FSM con contatori
Schema del convertitore eccesso-3
CLK
1
0
1
0
excess 3 PLA
X
Rese t
X
Q2
Q1
Q0
Z
\CLR
\L D
EN
C
B
A
7
P
10
163
T
RCO15
2
CLK
6 D
QD 11
5 C
QC 12
4 B
QB 13
3 A
14
QA
9 LOAD
1
D Q
Z
C Q
CLR
Registro di uscita sincrono
© R.H. Katz 10-24
Strategie di realizzazione
Reti Logiche
Realizzazione di FSM
Progetto di FSM con PLD complessi
Dispositivi logici programmabili (Programmable Logic Device, PLD)
PAL, PLA = 10 - 100 porte logiche equivalenti
Matrici logiche programmabili (Field Programmable Gate Array, FPGA)
• Famiglia MAX Altera
• Matrice Logica Programmabile Actel
(Programmable Logical Array)
• Matrice Logica Programmabile Xilinx
(Logical Cell Array, LCA)
100 - 10.000 porte logiche equivalenti!
© R.H. Katz 10-25
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto di FSM con PLD complessi
EPLD Altera (Erasable Programmable Logic Devices)
Prospettiva “storica”:
PAL: stessa tecnologia di PROM TTL
(programmabili una sola volta tramite fusibili)
EPLD: stessa tecnologia di EPROM cancellabili CMOS
(cancellate con raggi Ultravioletti)
Blocco base Altera: MACROCELL
CLK
MUX
clock
Matrice AND/OR
8 termini prodotto
+
MUX
programmabili
Matr.
AND
MUX
uscita
Q
Piedino
I/O
Contr.
invers.
MUX
reaz.
Polarita’ programmabile
pad
Blocco
logico
sequenziale
Reazione programmmabile
© R.H. Katz 10-26
Strategie di realizzazione
Progetto di FSM con PLD complessi
Reti Logiche
Realizzazione di FSM
Gli EPLD Altera contengono da 8 a 48 macrocelle indipendenti
Programmazione clock/Output Enable usando bit di EPROM:
Global
CLK
Clk
MUX
Modo sincrono
1
Flipflop controllato
dal clock globale
OE/Local CLK
Q
EPROM
Cell
Global
CLK
Clk
MUX
segnale locale usato
come Output enable
Modo “asincrono”
1
OE/Local CLK
Q
Flipflop controllato
dal clock generato
localmente
EPROM
Cell
Logica sequenziale: puo’ essere FF D, FF T, attivo sul fronte di
salita o di discesa; un termine prodotto realizza il reset
© R.H. Katz 10-27
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto di FSM con PLD complessi
Strutture AND-OR sono piuttosto limitate:
non possono condividere termini prodotto tra macrocelle
Soluzione Altera: Multiple Array Matrix (MAX)
Logic
Array
Block
(simili a
macrocelle)
LAB A
LAB H
LAB B
LAB C
LAB D
LAB G
P
I
A
LAB F
Connessione
globale:
Programmable
Interconnect
Array
EPM5128:
8 ingressi fissi
52 piedini I/O
8 LAB
16 Macrocelle/LAB
32 Expander/LAB
LAB E
© R.H. Katz 10-28
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto di FSM con PLD complessi
Architettura di un LAB
I/O Pad
Macrocell
ARRAY
I
N
P
U
T
S
I/O
Block
I/O Pad
P
I
A
Expander
Product
Term
ARRAY
Termini prod.
macrocella
Termini prod.
expander
Termini prodotto dell’Expander
condivisi tra tutte le macrocelle
all’interno di un LAB
© R.H. Katz 10-29
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
PAL P22V10
INCREMENT
2904
1
0
0
FIRST
FUSE
NUMBERS
4
8
12
16
20
24
28
32
36
2948
2992
3036
3080
3124
3168
3212
3256
3300
3344
3388
3432
3476
3520
3564
3608
40
ASYNCHRONOUS RESET
(TO ALL REGISTERS)
44
88
132
176
220
264
308
352
396
1 1
1 0
AR
D
Q
0 0
Q
0 1
23
5808
SP
P
R
1
0
5809
OUTPUT
LOGIC
MACROCEL
L
18
P - 5818
R - 5819
6
440
3652
484
528
572
616
660
704
748
792
836
880
OUTPUT
LOGIC
MACROCELL
3696
3740
3784
3828
3872
3916
3960
4004
4048
4092
4136
4180
4224
4268
22
P - 5810
R - 5811
2
924
968
1012
1056
1100
1144
1188
1232
1276
1320
1364
1408
1452
P - 5820
R - 5821
4312
OUTPUT
LOGIC
MACROCELL
4356
4400
4444
4488
4532
4576
4620
4664
4708
4752
4796
4840
21
P - 5812
R - 5813
1496
OUTPUT
LOGIC
MACROCEL
L
16
P - 5822
R - 5823
8
4884
OUTPUT
LOGIC
MACROCELL
4928
4972
5016
5060
5104
5148
5192
5236
5280
5324
20
P - 5814
R - 5815
4
OUTPUT
LOGIC
MACROCEL
L
15
P - 5824
R - 5825
9
5368
2156
2200
2244
2288
2332
2376
2420
2464
2508
2552
2596
2640
2684
2728
2772
2816
2860
5
17
7
3
1540
1584
1628
1672
1716
1760
1804
1848
1892
1936
1980
2024
2068
2112
OUTPUT
LOGIC
MACROCEL
L
OUTPUT
LOGIC
MACROCELL
5412
5456
5500
5544
5588
5632
5676
5720
OUTPUT
LOGIC
MACROCEL
L
14
P - 5826
R - 5827
19
10
P - 5816
R - 5817
SYNCHRONOUS
PRESET
(TO ALL REGISTERS)
5764
11
INCREMEN
T
13
0
4
8
12
16
20
24
28
32
36
40
Puo’ avere molti termini prodotto per ogni uscita
Registro, reazione ed Output Enable per ogni uscita
© R.H. Katz 10-30
Strategie di realizzazione
Progetto di FSM con PLD complessi
Reti Logiche
Realizzazione di FSM
Programmable Gate Array Actel
Usa anti-fusibili per creare
interconnessioni lunghe
a partire da brevi segmenti
Buffer I/O, logica programm. e collaudo
Tecnologia ad anti-fusibile:
programmabile
una sola volta
Buffer I/O, logica programm. e collaudo
Buffer I/O, logica programm. e collaudo
Righe di blocchi
logici programmabili
+
righe di interconnessione
Buffer I/O, logica programm. e collaudo
Blocco logico
Connessioni
Blocchi logici combinatori con 8 ingressi ed 1 uscita
FF creati da porte logiche con reazione
© R.H. Katz 10-31
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Blocco logico Actel (Actel Logic Module)
S0
SOA
D0
0
D1
1
Blocco logico base e’ un
multiplexer 4:1 modificato
S1
2:1 MUX
0
D2
2:1 MUX
Y
1
0
2:1 MUX
D3
1
R
SOB
Esempio:
realizzazione di un latch R-S
0
2:1 MUX
"0"
1
0
Q+ = R’ 0 + R (S’ 1 + S Q) =
= R S’ + R S Q =
= R S’ + R Q =
= (R + (S + Q)’)’
"0"
"1"
2:1 MUX
Q
1
0
2:1 MUX
1
S
© R.H. Katz 10-32
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Connessione Actel
Blocco logico
Pista
orizzontale
Anti-fusibile
Pista
verticale
Schema di interconnessione
© R.H. Katz 10-33
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Esempio di interconnessione Actel
Blocco logico
Ingresso
Uscita
Blocco logico
Blocco logico
Ingresso
Servono “deviazioni” per girare intorno ad una pista gia’ usata
Minimizzare il numero di deviazioni per connessioni a ritardo
piu’ critico (clock, reti a molti livelli)
Bastano 2 - 3 segmenti per la maggior parte delle connessioni
© R.H. Katz 10-34
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto di FSM con PLD complessi
Matrici logiche Xilinx (Xilinx Logic Cell Array)
Tecnologia RAM statica CMOS: programmabile “al volo”!
Tutti i bit di programmazione collegati come registro a scorrimento
Programmazione fa scorrere una stringa di 1 e 0 all’accensione
IOB
IOB
CLB
IOB
CLB
IOB
canali di
interconnessione
CLB
CLB
IOB
Architettura generale del
circuito:
• blocchi logici (CLB)
• blocchi di I/O (IOB)
• canali di interconnessione
IOB
IOB
IOB
© R.H. Katz 10-35
Strategie di realizzazione
Progetto di FSM con PLD complessi
Architettura LCA Xilinx: blocco di ingresso/uscita (IOB)
Ingressi:
- abilitazione tri-state
uscita (OE),
- dato in uscita,
- clock
Uscita:
dato in ingresso
FF interni per ingresso
ed uscita
Program Controlled Options
OUT
INV
TS
INV
OUTPUT
SOURCE
SLEW
RATE
PASSIVE
PULLUP
Vcc
Enable
Output
PAD
MUX
Out
D
Q
Output
Buffer
R
Direct In
Uscite lente/veloci:
tempo di salita di
30 ns o 5 ns
Reti Logiche
Realizzazione di FSM
Q
D
Registered In
TTL or CMOS
Input Buffer
R
Pull-up interno per
IOB non utilizzati
Clocks
Global Reset
© R.H. Katz 10-36
Reti Logiche
Strategie di realizzazione
Realizzazione di FSM
Progetto di FSM con PLD complessi
Architettura LCA Xilinx: blocco logico configurabile (CLB)
2 flipflop
Reset
DIN
Qualsiasi funzione
con fino a 5 variabili
Q1
A
B
C
D
E
Reset globale
Clock e abilitazione
D RD
Q
CE
F
Mux
X
Mux
Y
Generatore
di funzioni
combinatorie
Q2
G
Mux
Clock
Ingresso esterno
ai flipflop (DIN)
Mux
Mux
D RD
Q
CE
Clock
Enable
© R.H. Katz 10-37
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto di FSM con PLD complessi
Architettura LCA Xilinx: generatore di funzioni del CLB
Q1
A
B
Q1
A
B
Mux
Funzione
F
Mux
C Mux
D
E
Q2
Funzione
di 5
variabili
C
D
E
di 4
variabili
F
Mux
Q2
G
Qualsiasi funzione di 5 variabili
Mux
Q1
A
B
Mux
Funzione
C
D
E
Mux
di 4
variabili
G
Mux
Q2
Due funzioni indipendenti
di 4 variabili ciascuna
© R.H. Katz 10-38
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto di FSM con PLD complessi
Architettura LCA Xilinx: generatore di funzioni del CLB
Q1
A
B
Mux
C
Mux
Funzione
di 4
variabili
D
Alcune funzioni
(limitate) di 6 variabili
E
F
Q2
Mux
Q1
A
B
C
G
Mux
Mux
Funzione
di 4
variabili
D
Q2
© R.H. Katz 10-39
Strategie di realizzazione
Progetto di FSM con PLD complessi
Reti Logiche
Realizzazione di FSM
Esempi di uso di Xilinx
Generatore di parita’ a 5 bit
Realizzato con 1 CLB:
F = A xor B xor C xor D xor E
(non e’ lo stesso generatore visto nel capitolo 8!)
Comparatore a 2 bit: A B = C D o A B > C D
Realizzato con 1 CLB:
(=)
F=AC + ABD + BCD
(>)
G=ABCD + ABCD + ABCD + ABCD
© R.H. Katz 10-40
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto di FSM con PLD complessi
Esempi di uso di Xilinx
Funzione “maggioranza ad n ingressi”: uscita ad 1 se n/2 (o piu’) ingressi ad 1
Maggioranza a 7 ingressi
Maggioranza a 5 ingressi
CLB
CLB
CLB
CLB
Funzione “parita’ ad n ingressi”:
5 ingressi per CLB => 2 livelli di CLB forniscono fino a 25 ingressi!
Parita’ a 9 ingressi
CLB
CLB
© R.H. Katz 10-41
Strategie di realizzazione
Progetto di FSM con PLD complessi
Reti Logiche
Realizzazione di FSM
Esempi di uso di Xilinx
Sommatore binario a 4 ingressi
A3
B3
A2
CLB
Cout
B2
A1
CLB
S3
A3 B3 A2 B2
CLB
A0
CLB
S2
C2
B1
C1
Sommatore a riporto:
4 ritardi di CLB per
riporto finale in uscita
CLB
S1
C0
S0
A1 B1 A0 B0 Cin
S2
CLB
S0
S3
Cout
B0 Cin
2 sommatori a 2 bit (3 CLB
ciascuno) danno solo
2 ritardi di CLB per
riporto finale in uscita!!
S1
C2
© R.H. Katz 10-42
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto di FSM con PLD complessi
Architettura LCA Xilinx
Interconnessione:
Connessioni
dirette
DI CE A
B
X
C CLB0
K
Y
E D R
(1) Connessione diretta
(2) Connessione con
linee lunghe globali
(3) Connessione con
linee lunghe verticali
ed orizzontali
(4) Connessione con
matrice
DI CE A
B
X
C CLB1
K
Y
E D R
Linee lunghe
orizzontali
Matrice
conness.
Linee lunghe
orizzontali
DI CE A
B
X
C CLB3
K
Y
E D R
DI CE A
B
X
C CLB2
K
Y
E D R
Linee lunghe
verticali
Linea lunga
globale
© R.H. Katz 10-43
Strategie di realizzazione
Progetto di FSM con PLD complessi
Architettura LCA Xilinx
Reti Logiche
Realizzazione di FSM
Realizzazione FSM conversione da BCD ad eccesso-3
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
Nessuna funzione richiede piu’ di 4 variabili
4 FF richiedono 2 CLB
Macchina di Moore (Mealy sincrona)
Uso del reset globale
Mettere Q2+, Q0+ nel primo CLB
Q1, Z nel secondo CLB
massimizzare l’uso di connessioni dirette e tramite matrice
© R.H. Katz 10-44
Reti Logiche
Realizzazione di FSM
Strategie di realizzazione
Progetto di FSM con PLD complessi
Architettura LCA Xilinx
Realizzazione FSM conversione da BCD ad eccesso-3
Clk
Clk
X
CE
CE
A
CE
DI
B
X
Q2
Q0
FG
DI
Q2
B
C
C
Y
K
Q0
FG
E
Q0
K
X
Q2
Q1
Q0
X
Q1
A
X
FG
Y
Q1
Z
FG
E
D
RES
D
CLB1
RES
CLB2
© R.H. Katz 10-45
Esempio di progetto
Controllore di semaforo
Reti Logiche
Realizzazione di FSM
Decomposizione in sotto-blocchi piu’ semplici
• FSM di controllo:
funzioni di stato futuro e di uscita
registro di stato
• Contatore per intervallo lungo ed
intervallo corto
• Sensore dei veicoli
• Decodificatore di uscita e luci
© R.H. Katz 10-46
Reti Logiche
Realizzazione di FSM
Esempio di progetto
Controllore di semaforo
Schema a blocchi
Reset
Clk
TS
Contatore
intervallo
lungo e corto
TL
FSM controllo
Logica
2
stato futuro 2
ed uscita
Reset
C (asinc.)
Clk
ST
Sensore
veicoli C (sinc.)
2
2
F
Segnali
Decodifica
luci
luci
codificati
3
3
H
Registro
di stato
© R.H. Katz 10-47
Reti Logiche
Realizzazione di FSM
Esempio di progetto
Controllore di semaforo
0
Logica dei sotto-blocchi
Pres ent
D
Decodificatore
delle
F0
luci
C
Q
F1
RQ
\Pre sent
1
FG FY FR
+
Cin
0
2 A
3 B
1 G
\Res et
Y0
Y1
Y2
Y3
139a
4
5
6
7
1
0
0
HG HY HR
+
H0
CLK
Sensore veicoli
(de-rimbalzatore + sincronizzatore)
H1
1 A
Y0
1
4 B
Y1
3
Y2
1 G
Y3
5
139b
1
1
2
1
09
+
CLK
Temporizzatore
degli intervalli
(contatore)
Reset
7 P
10 T 163
1
2 CLK RCO
5
6 D
QD 11
5 C
QC 12
4 B
QB 13
3 A
QA 14
9 LOAD
CLR 1
CLR
TL
TS
ST
© R.H. Katz 10-48
Esempio di progetto
Controllore di semaforo
Reti Logiche
Realizzazione di FSM
Logica di stato futuro della FSM di controllo
Codifica degli stati: HG = 00, HY = 10, FG = 01, FY = 11
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
HL[1] = TS Q1 Q0 + Q1 Q0 + TS Q1 Q0
HL[0] = TS Q1 Q0 + TS Q1 Q0
FL[1] = Q0
FL[0] = TS Q1 Q0 + TS Q1 Q0
Realizzazione a PAL/PLA:
servono 5 ingressi, 7 uscite, 8 termini prodotto
PAL 22V10: 11 ingressi, 10 I/O programmabili,
da 8 a 14 termini per ogni OR
Realizzazione a ROM:
ROM da 32 parole di 8 bit (256 bit)
Reset potrebbe raddoppiare la ROM...
© R.H. Katz 10-49
Reti Logiche
Realizzazione di FSM
Esempio di progetto
Controllore di semaforo
Logica di stato futuro della FSM di controllo
Realizzazione a contatore:
HG
TL•C / ST
HY
TS / ST
FG
TL+C / ST
TS
TL
\C
TL
C
2 MUX 4:1
1 GA
3 A3
4 A2
5 A1
6 A0
13
12
11
10
B3
B2
B1
B0
15 GB
153
YA 7
YB 9
S1 SO
2 14
ST
+
7
10 P 163
T
15
2 CLK RCO
6
5
4
3
D
C
B
A
QD
QC
QB
QA
11
12
13
14
Q1
Q0
9 LOAD
\Reset 1 CLR
FY
Realizzazione TTL con MUX e contatore
TS / ST
Si puo’ ridurre il numero di integrati con un MUX 8:1?
ST = abilitazione al conteggio per entrambi i contatori (controllo e intervalli)
© R.H. Katz 10-50
Reti Logiche
Realizzazione di FSM
Esempio di progetto
Controllore di semaforo
Logica di uscita della FSM di controllo
Realizzazione a contatore:
Possiamo evitare il costo delle funzioni di uscita?
Perche’ non decodificare le uscite direttamente
dallo stato presente?
HG HY HR
1
1 G
Q1
Q0
3B
2A
Y3
Y2
Y1
Y0
0
0
FG FY FR
0
0
1
7
6
5
4
139a
ST e’ un’uscita di Mealy sincrona
Le luci sono uscite di Moore
© R.H. Katz 10-51
Esempio di progetto
Reti Logiche
Realizzazione di FSM
Controllore di semaforo
Realizzazione con LCA Xilinx
Realizzazione a partire dalle equazioni gia’ derivate:
Nessuna delle funzioni ha piu’ di 5 variabili
P1, ST hanno 5 variabili (1 CLB ciascuna)
P0, HL1, HL0, FL0 hanno 3 variabili (1/2 CLB ciascuna)
FL1 ha 1 variabile (1/2 CLB)
4.5 CLB in totale!
© R.H. Katz 10-52
Reti Logiche
Realizzazione di FSM
Esempio di progetto
Controllore di semaforo
Realizzazione con
LCA Xilinx
TL C TS
TS
TS
Q0
DI CE A
B
X
C F0
K
Y
E D R
Q0
TL
DI CE A
B
X
C
K
Y
E D R
F1
Q0
Q1
Piazzare le funzioni
in modo da rendere
massimo l’uso di
connessioni dirette
TS
Q1
DI CE A
B
X
C Q1
K
Y
E D R
Q0
Q1
TS
DI CE A
B
X
C
K
Y
E D R
H1
H0
C
Q1
TL
TS
C
Q0
DI CE A
B
X
C ST
K
Y
E D R
DI CE A
B
X
C
K
Y
E D R
© R.H. Katz 10-53
Esempio di progetto
Reti Logiche
Realizzazione di FSM
Controllore di semaforo
Realizzazione con LCA Xilinx
Realizzazione con contatore e multiplexer:
MUX 4:1 MUX, contatore a 2 bit
MUX: 6 variabili (4 dati, 2 controllo)
ma questa e’ esattamente una delle funzioni di 6 variabili
che possono essere realizzate con 1 CLB!
Serve un secondo CLB per realizzare TL • C e TL + C'
Notate che ST/Cnt e’ in realta’ funzione di TL, C, TS, Q1, Q0:
basta 1 CLB per realizzare questa funzione di 5 variabili!
Contatore a 2 bit: 2 funzioni di 3 variabili (2 bit di stato + Cnt)
anche qui basta 1 CLB
Decodificatori delle luci: funzioni di 2 variabili (Q1, Q0)
2 per CLB, richiedono 3 CLB per le 6 luci
Totale: 5 CLB
© R.H. Katz 10-54
Riassunto del capitolo
Reti Logiche
Realizzazione di FSM
• Ottimizzazione e realizzazione di FSM
Minimizzazione degli stati: corrispondenza tra righe e tabella
delle implicazioni
Codifica degli stati: euristiche e programmi CAD
• Problemi di realizzazione
Scelta dei flipflop
Realizzazioni con logica strutturata
basati su ROM
basati su PLA/PAL
basati su contatori
PLD piu’ complessi: Altera, Actel, Xilinx
© R.H. Katz 10-55
Scarica

Capitolo 10