La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Capitolo 10: Realizzazione di Macchine a Stati Finiti Reti Logiche Contemporary Logic Design Randy H. Katz University of California, Berkeley May.

Presentazioni simili


Presentazione sul tema: "Capitolo 10: Realizzazione di Macchine a Stati Finiti Reti Logiche Contemporary Logic Design Randy H. Katz University of California, Berkeley May."— Transcript della presentazione:

1 Capitolo 10: Realizzazione di Macchine a Stati Finiti Reti Logiche Contemporary Logic Design Randy H. Katz University of California, Berkeley May Trasparenze tradotte da: Luciano Lavagno Universita’ di Udine Settembre 1998

2 Riassunto del capitolo
• Strategie di realizzazione Logica a porte singole Progetto con contatori e ROM Logica programmabile: PAL FPGA: Altera, Actel, Xilinx

3 Strategie di realizzazione
• 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.

4 Strategie di realizzazione
Progetto di FSM con logica strutturata Logica combinatoria Registri Schema a blocchi per macchina di Moore (o “Mealy sincrona”) Funzione Ingressi Uscite di uscita Funzione di Stato futuro Stato Realizzazione a ROM ROM Registri A0 D0 • Ingressi e stato presente sono gli indirizzi • Bit di dato della ROM sono uscite e stato futuro Ingressi Uscite An-1 Dk-1 An Dk An+m-1 Dk+m-1 Stato

5 Strategie di realizzazione
Progetto a ROM Esempio: convertitore seriale da BCD ad eccesso-3 BCD Codice eccesso-3 Processo di conversione I bit sono presentati in modo seriale partendo col bit meno significativo Un ingresso X, un’uscita Z

6 Strategie di realizzazione
Convertitore da BCD ad eccesso-3 Stato futuro Uscita Stato presente X=0 X=1 X=0 X=1 S0 S1 S2 1 Tabella delle transizioni S1 S3 S4 1 S2 S4 S4 1 S3 S5 S5 1 S4 S5 S6 1 S5 S0 S0 1 S6 S0 -- 1 -- Diagramma degli stati

7 Strategie di realizzazione
Convertitore da BCD ad eccesso-3 Realizzazione a ROM X 1 Q2 Q1 Q0 D2 Z D1 D0 Indirizzo ROM Uscita ROM 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!!

8 Strategie di realizzazione
Convertitore da BCD ad eccesso-3 LSB MSB Comportamento nel tempo per ingressi (0) e (7) 1 1 1 1 1 1 1 LSB LSB

9 Strategie di realizzazione
Convertitore da BCD ad eccesso-3 Progetto a PLA Codiifca degli stati con NOVA 0 S0 S1 1 1 S0 S2 0 0 S1 S3 1 1 S1 S4 0 0 S2 S4 0 1 S2 S4 1 0 S3 S5 0 1 S3 S5 1 0 S4 S5 1 1 S4 S6 0 0 S5 S0 0 1 S5 S0 1 0 S6 S0 1 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 File di ingresso di NOVA

10 Strategie di realizzazione
Convertitore da BCD ad eccesso-3 .i 4 .o 4 .ilb x q2 q1 q0 .ob d2 d1 d0 z .p 16 .e Ingresso di Espresso .i 4 .o 4 .ilb x q2 q1 q0 .ob d2 d1 d0 z .p 9 .e Uscita di Espresso

11 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

12 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. 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

13 Strategie di realizzazione
Convertitore da BCD ad eccesso-3

14 Strategie di realizzazione
Architetture PAL avanzate Output enable controllato da ingresso o termine prodotto Architettura PAL sequenziale (con registri) Reazione con stato presente negato 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

15 Strategie di realizzazione
Architetture PAL avanzate PAL XOR, con polarita’ di uscita programmabile Ingresso XOR puo’ essere: 1 (coprire gli 1) 0 (coprire gli 0) termine prodotto Vantaggio di PAL XOR: parita’ ed operazioni aritmetiche

16 Strategie di realizzazione
Esempio di PAL XOR Esempio di PAL a registri

17 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]; 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; Equazioni esplicite per funzioni di uscita partizionate

18 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, Q0]; OUTSTATE = [D2, D1, D0]; S0in = [0, 0, 0]; S0out = [0, 0, 0]; S1in = [0, 0, 1]; S1out = [0, 0, 1]; S2in = [0, 1, 1]; S2out = [0, 1, 1]; S3in = [1, 1, 0]; S3out = [1, 1, 0]; S4in = [1, 0, 0]; S4out = [1, 0, 0]; S5in = [1, 1, 1]; S5out = [1, 1, 1]; S6in = [1, 0, 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; Equazioni piu’ semplici

19 Strategie di realizzazione
Specifica di PAL in Abel PAL P16R4 module bcd2excess3 title 'BCD to Excess 3 Code Converter' u1 device 'p16r4'; "Input Pins Clk, Reset, X, !OE pin 1, 2, 3, 11; "Output Pins D2, D1, D0, Z pin 14, 15, 16, 13; SREG = [D2, D1, D0]; 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]; state_diagram SREG state S0: if Reset then S0 else if X then S2 with Z = 0 else S1 with Z = 1 state S1: if Reset then S0 else if X then S4 with Z = 0 else S3 with Z = 1 state S2: if Reset then S0 else if X then S4 with Z = 1 else S4 with Z = 0 state S3: if Reset then S0 else if X then S5 with Z = 1 else S5 with Z = 0 state S4: if Reset then S0 else if X then S6 with Z = 0 else S5 with Z = 1 state S5: if Reset then S0 else if X then S0 with Z = 1 else S0 with Z = 0 state S6: if Reset then S0 else if !X then S0 with Z = 1 end bcd2excess3; PAL con registri diagramma degli stati

20 Strategie di realizzazione
Progetto di FSM con contatori Contatori sincroni: CLR, LD, CNT Quattro tipi di transizioni di stato: (1) allo stato 0 (CLR) (2) al prossimo stato in sequenza (CNT) (3) ad un qualsiasi altro stato (LD) (4) allo stesso stato Nessun CLR segnale n attivato CNT LD n+1 m E’ necessaria una codifica molto attenta per usare al meglio la sequenza di conteggio

21 Strategie di realizzazione
Progetto di FSM con contatori Rivediamo il convertitore eccesso-3 Notate la natura “sequenziale” della codifica degli stati

22 Strategie di realizzazione
Progetto di FSM con contatori Convertitore eccesso-3 Ingressi e Stato presente Stato futuro Uscite X 1 Q2 Q1 Q0 Q2+ Q1+ Q0+ Z CLR LD EN C B A Il segnale CLR domina su LD, che a sua volta domina CNT

23 Strategie di realizzazione
Progetto di FSM con contatori Convertitore eccesso-3 .i 5 .o 7 .ilb res x q2 q1 q0 .ob z clr ld en c b a .p 17 .e Ingresso di Espresso .i 5 .o 7 .ilb res x q2 q1 q0 .ob z clr ld en c b a .p 10 .e Uscita di Espresso

24 Strategie di realizzazione
Progetto di FSM con contatori Schema del convertitore eccesso-3 Registro di uscita sincrono

25 Strategie di realizzazione
Progetto di FSM con PLD complessi Dispositivi logici programmabili (Programmable Logic Device, PLD) PAL, PLA = 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) porte logiche equivalenti!

26 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 MUX pad Matr. Piedino I/O Q uscita AND Contr. invers. MUX Blocco logico sequenziale reaz. Polarita’ programmabile Reazione programmmabile

27 Strategie di realizzazione
Progetto di FSM con PLD complessi Gli EPLD Altera contengono da 8 a 48 macrocelle indipendenti Programmazione clock/Output Enable usando bit di EPROM: Global Modo sincrono CLK Clk MUX 1 Flipflop controllato dal clock globale segnale locale usato come Output enable OE/Local CLK Q EPROM Cell Global CLK Clk Modo “asincrono” MUX 1 Flipflop controllato dal clock generato localmente OE/Local CLK Q EPROM Cell Logica sequenziale: puo’ essere FF D, FF T, attivo sul fronte di salita o di discesa; un termine prodotto realizza il reset

28 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) Connessione globale: Programmable Interconnect Array Logic Array Block (simili a macrocelle) EPM5128: 8 ingressi fissi 52 piedini I/O 8 LAB 16 Macrocelle/LAB 32 Expander/LAB

29 Strategie di realizzazione
Progetto di FSM con PLD complessi Architettura di un LAB I/O Pad Macrocell I/O ARRAY Block I N I/O Pad P P I U A T S Expander Product Term ARRAY Termini prod. macrocella Termini prodotto dell’Expander condivisi tra tutte le macrocelle all’interno di un LAB Termini prod. expander

30 Strategie di realizzazione
PAL P22V10 Puo’ avere molti termini prodotto per ogni uscita Registro, reazione ed Output Enable per ogni uscita

31 Strategie di realizzazione
Progetto di FSM con PLD complessi Programmable Gate Array Actel Righe di blocchi logici programmabili + righe di interconnessione 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 Usa anti-fusibili per creare interconnessioni lunghe a partire da brevi segmenti 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

32 Strategie di realizzazione
Blocco logico Actel (Actel Logic Module) Blocco logico base e’ un multiplexer 4:1 modificato SOA S0 S1 D0 2:1 MUX D1 1 2:1 MUX Y 1 D2 2:1 MUX D3 1 SOB R "0" Esempio: realizzazione di un latch R-S Q+ = R’ 0 + R (S’ 1 + S Q) = = R S’ + R S Q = = R S’ + R Q = = (R + (S + Q)’)’ 2:1 MUX "0" 1 2:1 MUX Q 1 "1" 2:1 MUX 1 S

33 Strategie di realizzazione
Connessione Actel Blocco logico Pista orizzontale Anti-fusibile Pista verticale Schema di interconnessione

34 Strategie di realizzazione
Esempio di interconnessione Actel Blocco logico Ingresso Blocco logico Uscita 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 segmenti per la maggior parte delle connessioni

35 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 IOB IOB IOB Architettura generale del circuito: • blocchi logici (CLB) • blocchi di I/O (IOB) • canali di interconnessione CLB CLB IOB canali di interconnessione IOB CLB CLB IOB

36 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 Uscite lente/veloci: tempo di salita di 30 ns o 5 ns Pull-up interno per IOB non utilizzati

37 Strategie di realizzazione
Progetto di FSM con PLD complessi Architettura LCA Xilinx: blocco logico configurabile (CLB) 2 flipflop Qualsiasi funzione con fino a 5 variabili Reset globale Clock e abilitazione Ingresso esterno ai flipflop (DIN) Reset DIN Mux D RD Q CE Mux Q1 X F A B Generatore C di funzioni D combinatorie E G Q2 Mux Y Mux D RD Q Clock Mux CE Clock Enable

38 Strategie di realizzazione
Progetto di FSM con PLD complessi Architettura LCA Xilinx: generatore di funzioni del CLB Q1 A Q1 B Mux Funzione A F F C Mux di 4 B Mux variabili Funzione D Mux C Mux di 5 E variabili D Q2 G E Q1 Q2 A Qualsiasi funzione di 5 variabili B Mux Funzione G C Mux di 4 variabili D Mux E Q2 Due funzioni indipendenti di 4 variabili ciascuna

39 Strategie di realizzazione
Progetto di FSM con PLD complessi Architettura LCA Xilinx: generatore di funzioni del CLB Q1 A B Mux Funzione C Mux di 4 variabili E D Alcune funzioni (limitate) di 6 variabili F Q2 Mux Q1 G A B Mux Funzione C Mux di 4 variabili D Q2

40 Strategie di realizzazione
Progetto di FSM con PLD complessi 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 = A C + A B D + B C D (>) G = A B C D + A B C D + A B C D + A B C D

41 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 CLB Maggioranza a 7 ingressi CLB Maggioranza a 5 ingressi Funzione “parita’ ad n ingressi”: 5 ingressi per CLB => 2 livelli di CLB forniscono fino a 25 ingressi! CLB Parita’ a 9 ingressi

42 Strategie di realizzazione
Progetto di FSM con PLD complessi Esempi di uso di Xilinx Sommatore binario a 4 ingressi Sommatore a riporto: 4 ritardi di CLB per riporto finale in uscita 2 sommatori a 2 bit (3 CLB ciascuno) danno solo 2 ritardi di CLB per riporto finale in uscita!!

43 Strategie di realizzazione
Progetto di FSM con PLD complessi Architettura LCA Xilinx Connessioni dirette Interconnessione: DI CE A DI CE A B X B X C CLB0 C CLB1 K Y K (1) Connessione diretta (2) Connessione con linee lunghe globali (3) Connessione con linee lunghe verticali ed orizzontali (4) Connessione con matrice Y E D R E D R Linee lunghe orizzontali Matrice conness. Linee lunghe orizzontali DI CE A DI CE A B X B X C CLB2 C CLB3 K Y K Y E D R E D R Linee lunghe Linea lunga verticali globale

44 Strategie di realizzazione
Progetto di FSM con PLD complessi Architettura LCA Xilinx 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

45 Strategie di realizzazione
Progetto di FSM con PLD complessi Architettura LCA Xilinx Realizzazione FSM conversione da BCD ad eccesso-3

46 Esempio di progetto Controllore di semaforo 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

47 Controllore di semaforo
Esempio di progetto Controllore di semaforo Schema a blocchi Reset Contatore Clk intervallo lungo e corto TS TL ST FSM controllo F Reset Logica 2 Segnali 3 Decodifica C (asinc.) Sensore stato futuro 2 luci luci veicoli ed uscita C (sinc.) codificati 3 Clk 2 H Registro 2 di stato

48 Esempio di progetto Controllore di semaforo Logica dei sotto-blocchi Decodificatore delle luci Sensore veicoli (de-rimbalzatore + sincronizzatore) Temporizzatore degli intervalli (contatore)

49 Esempio di progetto Controllore di semaforo 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...

50 Esempio di progetto Controllore di semaforo Logica di stato futuro della FSM di controllo Realizzazione a contatore: 2 MUX 4:1 Realizzazione TTL con MUX e contatore Si puo’ ridurre il numero di integrati con un MUX 8:1? ST = abilitazione al conteggio per entrambi i contatori (controllo e intervalli)

51 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? ST e’ un’uscita di Mealy sincrona Le luci sono uscite di Moore

52 Esempio di progetto 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!

53 Esempio di progetto Controllore di semaforo Realizzazione con LCA Xilinx Piazzare le funzioni in modo da rendere massimo l’uso di connessioni dirette

54 Esempio di progetto 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

55 Riassunto del capitolo
• 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


Scaricare ppt "Capitolo 10: Realizzazione di Macchine a Stati Finiti Reti Logiche Contemporary Logic Design Randy H. Katz University of California, Berkeley May."

Presentazioni simili


Annunci Google