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

Slides:



Advertisements
Presentazioni simili
MULTIVIBRATORI BISTABILI
Advertisements

Dalla macchina alla rete
Capitolo 4 Logica sequenziale
Espressioni generali e MULTIPLEXER.
Convertitori D/A e A/D Enzo Gandolfi.
Politecnico di Milano Sviluppo di strumenti per l'analisi e la manipolazione di bitstream per la riconfigurabilità parziale Relatore: Prof. Fabrizio FERRANDI.
Macchine sequenziali Capitolo 4.
Circuiti Sequenziali Asincroni
Circuiti sequenziali Capitolo 5.
Circuiti sequenziali ad impulsi
Sviluppo di un’interfaccia Camera Link - FPGA
Circuiti logici dedicati
Circuiti sequenziali sincroni
Esercitazioni su circuiti combinatori
Introduzione ai circuiti sequenziali
Circuiti di memorizzazione elementari: i Flip Flop
Bus e interconnessione fra registri
Sintesi con circuiti LSI-MSI
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
A.S.E.25.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 25 Reti sequenziali sincronizzate complesseReti sequenziali sincronizzate complesse –Macchina.
PSPICE – Circuiti sequenziali principali
Disegni organizzati gerarchicamente Ciascun elemento del disegno ha: –Uninterfaccia ben definita –Una precisa specifica del comportamento usando o: Una.
Flip-flop e Registri.
Macchine sequenziali.
Dalla macchina alla rete: reti LLC
Macchine sequenziali.
Il livello analogico digitale Lezione 3_3 Memorie.
Convertitore A/D e circuito S/H
Sintesi con circuiti LSI-MSI. Realizzazione di reti combinatorie mediante Multiplexers Un multiplexer (MPX ) é una rete combinatoria con N ingressi, una.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Progetto RSS Creazione di una rete per gestire lo spegnimento di macchine in caso di blackout.
Rete Sincrona Una rete sequenziale sincrona, è dotata di un ingresso E, di un segnale di Clock e uno di reset. Ad ogni fronte del Clock, deve essere campionato.
MACCHINE A STATI FINITI
Contatore: esempio di circuito sequenziale
Sistemi di acquisizione
Esempi di Ottimizzazione Automatica di circuiti combinatori
Capitolo 8: Progetto di Macchine a Stati Finiti Reti Logiche Contemporary Logic Design Randy H. Katz University of California, Berkeley May 1993.
Unità centrale di processo
Reti Logiche A Lezione xx.x Dispositivi Programmabili
Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili.
Analisi e Sintesi di un contatore BCD con Quartus II
ADC – SCHEMA GENERALE I convertitori AD sono disponibili come circuiti integrati in diversi modelli, che differiscono fra loro per prezzo, prestazioni.
Tecnologie Implementative
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
Circuiti Sequenziali Elementi di memoria Logic combinatoria Inputs
Dispositivi e sistemi logici
LATCH. Circuiti Sequenziali I circuiti sequenziali sono circuiti in cui lo stato di uscita del sistema dipende non soltanto dallo stato di ingresso presente.
Algebra di Boole.
Circuiti di memorizzazione elementari: i Flip Flop
ARCHITETTURA DEI SISTEMI ELETTRONICI
ARCHITETTURA DEI SISTEMI ELETTRONICI
Circuiti digitali Architettura © Roberto Bisiani, 2000,2001
Dalla macchina alla rete: reti LLC. Dalla macchina alla rete Per realizzare una macchina sequenziale è necessario –Codificare gli insiemi I,S,O con variabili.
Architettura degli Elaboratori 1
A.S.E.24.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 24 Reti sequenziali sincronizzate complesseReti sequenziali sincronizzate complesse –Macchina.
Reti Sequenziali Corso di Architetture degli Elaboratori Reti Sequenziali.
A.S.E.22.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 22 Sintesi di contatore modulo 8Sintesi di contatore modulo 8 Contatori modulo 2 NContatori.
UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA Dispositivi per il.
A.S.E.19.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 19 Contatori Sincroni modulo “2 N ”Contatori Sincroni modulo “2 N ” Contatori sincroni modulo.
A.S.E.26.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 26 Reti sequenziali sincronizzate complesseReti sequenziali sincronizzate complesse EsempioEsempio.
Esercizi.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Reti Logiche A Lezione.
Calcolatori Elettronici
CODIFICATORI (Encoder)
Sistemi Elettronici Programmabili3-1 FPGA: Architettura.
Il modello di Von Neumann
Modelli strutturali reti sequenziali. Il transitorio nelle reti Una rete combinatoria ideale è definita dal mapping Y=f(X) in cui X e Y sono vettori di.
Laboratorio di Architettura Degli Elaboratori1 Macchine a stati finiti – un automa di Mealy generale con 1 bit d’ingresso, 1 di uscita e 2 di stato.
Calliope-Louisa Sotiropoulou I NTRODUZIONE ALLA T ECNOLOGIA D ELL ’FPGA F IELD P ROGRAMMABLE G ATE A RRAYS PISA, 02/03/2016 Marie Curie IAPP Fellow - University.
Transcript della presentazione:

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

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

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.

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

Strategie di realizzazione Progetto a ROM Esempio: convertitore seriale da BCD ad eccesso-3 BCD Codice eccesso-3 0000 0011 0001 0100 0010 0101 0011 0110 0100 0111 0101 1000 0110 1001 0111 1010 1000 1011 1001 1100 Processo di conversione I bit sono presentati in modo seriale partendo col bit meno significativo Un ingresso X, un’uscita Z

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

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!!

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) 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 LSB LSB

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

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 0 000 001 1 1 000 011 0 0 001 110 1 1 001 100 0 0 011 100 0 1 011 100 1 0 110 111 0 1 110 111 1 0 100 111 1 1 100 101 0 0 111 000 0 1 111 000 1 0 101 000 1 1 101 --- - 0 010 --- - 1 010 --- - .e Ingresso di Espresso .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 Uscita di Espresso

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

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

Strategie di realizzazione Convertitore da BCD ad eccesso-3

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

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

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

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

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

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

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

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

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

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 1---- -0----- 00000 1111--- 00001 1111--- 00010 0111--- 00011 00----- 00100 0111--- 00101 110-011 00110 10----- 00111 ------- 01000 010-100 01001 010-101 01010 1111--- 01011 10----- 01100 1111--- 01101 0111--- 01110 ------- 01111 ------- .e Ingresso di Espresso .i 5 .o 7 .ilb res x q2 q1 q0 .ob z clr ld en c b a .p 10 0-001 0101101 -0-01 1000000 -11-0 1000000 0-0-0 0101100 -000- 1010000 -0--0 0010000 0-10- 0101011 --11- 1000000 -11-- 0010000 -1-1- 1010000 .e Uscita di Espresso

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

Strategie di realizzazione 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!

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

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

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

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

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

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

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

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

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 2 - 3 segmenti per la maggior parte delle connessioni

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

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

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

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

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

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

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

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!!

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

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

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

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

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

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

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

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)

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

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!

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

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

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