Sistemi logici complessi I circuiti logici standard prevedono, per la realizzazione di un sistema complesso, i seguenti passi: • definizione delle specifiche • descrizione del sistema mediante interconnessione dei componenti • assemblaggio su un circuito stampato I componenti sono circuiti integrati ad esempio della serie 74 o della serie 54 (specifiche militari), realizzati in tecnologia TTL, TTL Schottky, TTL Schottky Low Power, CMOS etc. contenenti porte logiche. Al crescere della complessità del sistema l’approccio precedente diventa poco pratico per l’aumento di costo, di dissipazione di potenza, di ritardo di propagazione e di ingombro ed inoltre per la relativa semplicità con cui un circuito può essere clonato Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Dispositivi Logici Programmabili Sono circuiti ad elevata scala di integrazione che possono essere opportunamente programmato (anche dall’utente finale) per realizzare una specifica funzione logica senza aggiungere o rimuovere componenti. La programmazione avviene mediante descrizione ad alto livello in opportuni ambienti di sviluppo (Hardware Description Language) La programmazione può essere: •Reversibile •Non Reversibile •Volatile •Non Volatile Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Definizioni PLD (Programmable Logic Device)o FPD (Field-Programmable Device) SPLD (Simple Programmable Logic Device) PLA (Programmable Logic Array) [piani AND e OR programmabili] CPLD (Complex Programmable Logic Device) Sono costituiti da un insieme di SPLD sullo stesso chip PAL (Programmable Array Logic) [piano AND programmabile e OR fisso] FPGA (Field-Programmable Gate Array) CPLD con meno ingressi e un maggior numero di Flip-Flop Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Definizioni Programmable Switch ( Interruttore Programmabile ) consente di connettere tra loro elementi logici o fili mediante comando esterno Logic Capacity (Capacità logica) ammontare della logica esprimibile dal PLD in termini di numero equivalente di porte NAND a due ingressi Logic Density (Densità logica) ammontare della logica per unità di area del PLD Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Interruttori Programmabili Non reversibili-Non Volatili Fuse (Fusibili) Antifuse (Antifusibili) Poly-Si Dielettrico Ossido + Diffusione N Substrato di silicio Aprono il circuito se attraversati da corrente elevata tale da bruciare il resistore Chiudono il circuito se viene applicata una tensione elevata tale da perforare il dielettrico Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Interruttori Programmabili Reversibili-Non Volatili M O S a d o p p i a G a t e Transistor per EPROM Programmabili fuori dal circuito Transistor per EEPROM Programmabili nel circuito Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Interruttori Programmabili Reversibili-Volatili Sono basati sull’utilizzo di memorie statiche SRAM per pilotare la gate di transistor (pass-transistor) usati per connettere due fili Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Interruttori Programmabili Riepilogo Interruttore Riprogrammabile Volatile Tecnologia Fusibile Antifusibile EPROM EEPROM SRAM No No Si (fuori dal circuito) Si (nel circuito) Si (nel circuito) No No No No Si Bipolare CMOS UV-CMOS EE-CMOS CMOS Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Capacità Logica 20000 Capacità Logica 2000 200 SPLD CPLD FPGA Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Programmazione dei PLD Linguaggi più usati per la programmazione dei PLD: ABEL Advanced Boolean Equation Language E’ utilizzato per piccoli moduli VHDL Very high speed integrated circuit Hardware Description Language E’ utilizzato per moduli complessi I linguaggi producono un “bit stream” che viene inviato al modulo per la programmazione sul quale è inserito il PLD Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Programmazione dei PLD Specifiche Descrizione VHDL FPGA CPLD Sintesi Simulazione funzionale Fitting Netlist Simulazione timing Mappa di programmazione (Bit Stream) Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Struttura dei PLA N variabili in ingresso Piano Piano AND P termini di prodotto OR M termini di uscita Si possono ottenere M espressioni logiche ognuna con P termini di somma e N prodotti per ciascun termine Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Struttura dei PLA A B C D xx xxxx xx xxxxxx xx xx xxxx xx xx xxxxxx xx xxxxxx xx xxxx xx x x x x x x Y1 x x x x x x Y2 x x x x x x Y3 Schema logico di un PLA con 4 ingressi e 3 uscite Le x indicano i punti di connessione programmabile Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Realizzazione dei PLA A AND B I I 1 C 2 Output D Y1 Le due matrici implementano funzioni AND che diventano NAND a causa degli Y2 invertitori Y3 Y (AB)(AB) AB AB Realizzazione di un PLA mediante diodi e fusibili. La funzione complessiva su ciascuna uscita Y è la NAND delle NAND degli ingressi cioè la OR delle AND degli ingressi Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Realizzazione dei PLA A NOR B I 1 I 2 C D Output Y1 Le due matrici implementano funzioni NOR che, nella seconda, diventano OR a Y2 causa degli invertitori Y3 Y A B A B AB AB Realizzazione di un PLA mediante NMOS e fusibili. La funzione complessiva su ciascuna uscita Y è la OR delle NOR degli ingressi cioè la OR delle AND degli ingressi negati (non è un problema perché gli ingressi sono disponibili anche in forma negata) Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Esempio di funzioni con PLA Y1 A1A 2 A1 A 2 A3 A 4 A1 x A2 x A3 x x x x x Y3 A1A 2 A1 A3A 4 A1 A 2 A 4 x x x Ovviamente le AND e le OR indicate nello schema sono solo simboliche x x x x Y1 x x x x x A4 Y2 A1 A3A 4 A1A3 A 2 x x x Y2 x Y3 Realizzazione delle tre funzioni Y1 Y2 Y3 Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Ottimizzazione dei PLA A _ A B _ B C _ C _ 0 A+C _ 1 B+C _ _ 2 A+B+C _ _ 3 B+C _ _ _ 4 A+B+C = _ 5 A+C _ _ 6 A+C _ 7 A+B+C Vengono utilizzate solo il 40% delle possibili connessioni Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale _ ripiegamento nei PLA Operazione di taglio e A B C 0 1 7 3 4 6 5 Le righe vengono spostate e vengono praticati tagli per compattare la matrice. Ovviamente si perde di generalità ma si guadagna in area occupata 2 _ A _ B C Dopo la riorganizzazione delle righe si utilizza il 79% delle connessioni Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Dispositivi PAL I1 I2 I3 I4 Y1 Y2 Y3 E’ programmabile solo il piano AND e, in questo caso, ogni uscita può avere solo 3 termini prodotto. Nelle PAL commerciali il numero di termini prodotto varia da 6 a 8. Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Esempio di PAL I1 Y1 I1I 2 I3 I 4 I 2 I3 I2 Y2 I1 I 2 I3 I1I 4 I3 Y3 I 2 I3 I1I 4 I4 x x Valori di uscita sempre 0 in quanto ottenuti dalla AND di Y1 Y2 Y3 una variabile e la sua negata Se un termine prodotto è necessario per due uscite viene calcolato due volte come i termini I1I4 e I2I3 Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Logica in due passi per dispositivi PAL Per consentire la realizzazione di funzioni con un numero maggiore di termini prodotto si ricorre alla logica in due passi, cioè alcune uscite vengono inviate come nuovi ingressi al piano AND I1 I2 Si aumenta la flessibilità ma anche il ritardo di propagazione I3 I4 Y1 Y2 Y3 Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Logica in due passi per dispositivi PAL Realizzazione delle funzioni Y1 e Y2 con una PAL a 3 prodotti Y1 I1I 2 I3 I1 I 2 I3 I1I 2 I3 I1 I 2 I3 Y2 I1I 2 I3 I 2 I3I 4 I1I 4 I1 I2 Y3 I1I 2 I3 I1 I 2 I3 I3 I4 x Y1 Y2 Y3 Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Si utilizza l’uscita Y3 per generare i primi due termini della funzione Y1 Selezione della polarità in uscita per dispositivi PAL Realizzazione delle funzioni Y1 e Y2 con una PAL a 3 prodotti Y1 I1I 2 I3 I1 I 2 I3 I1I 2 I3 I1 I 2 I3 Y2 I1 I 2 I3 I 4 Non è possibile implementare le funzioni direttamente, neanche con la logica in due passi, perché sia Y1 che Y2 presentano più di 3 termini prodotto. Sarebbe invece possibile implementare Y2 I1 I 2 I3 I 4 che contiene un solo termine prodotto e usare: Y3 I1I 2 I3 I1 I 2 I3 come nel caso precedente, in una logica a due passi. Occorre quindi negare le uscite! Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale PAL con polarità dell’uscita programmabile I1 I2 A B 0 0 0 1 1 0 1 1 I3 I4 Z1 Y1 A XOR B 0 1 1 0 Z3 Z2 Y2 Y3 Si utilizzano porte XOR programmabili in cui uno dei due ingressi può essere posto o a 0 o a 1 ottenendo in uscita Y=Z oppure Y=Z, rispettivamente Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale PAL con polarità dell’uscita programmabile I1 I2 I3 I4 x x Y1 I1I 2 I3 I1 I 2 I3 I1I 2 I3 I1 I 2 I3 Y1 Y2 Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale x Y3 Y2 I1 I 2 I3 I 4 PAL con terminali I/O programmabili I1 I2 I3 I4 Si utilizza un buffer tristate, pilotato da una uscita dedicata del piano AND, per avere Y3 come terminale di I/O L’abilitazione del tristate può essere funzione degli ingressi o essere fissata, a secondo dei casi. Y1 Y2 Y3 Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale PLD sequenziali I1 Contengono Flip-Flop, per consentire la realzzazione di circuiti sequenziali. I2 I3 I4 Clock Y1 D D Q Q Y2 Y3 Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale PAL sequenziali con terminali I/O programmabili I1 I2 I3 I4 Clock Y1 D D Q Q Y2 Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Y3 Schema a blocchi semplificato di PAL MATRICE LOGICA PROGAMMABILE La struttura può essere vista come costituita da una matrice logica e diverse macrocelle in uscita. Clock MACROCELLE DI USCITA Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Possibile struttura delle macrocelle Abilitazione tristate I/O pin Clock Feedback I multiplexer 2-1 programmabili consentono di escludere completamente il Flip-Flop, conservando in ogni caso la possibilità di avere il terminale I/O programmabile . Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Macrocella in modalità sequenziale e combinatoria Abilitazione tristate I/O pin Sequenziale Clock Feedback Abilitazione tristate I/O pin Combinatoria Feedback Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale CPLD Blocco Logico Blocco Logico Blocco Logico Blocco Logico Interconnessioni programmabili I/O I/O Blocco Logico Blocco Logico Blocco Logico Blocco Logico Consentono di aumentare le potenzialità del sistema senza aumentare eccessivamente il numero di ingressi dei singoli blocchi logici, ciascuno costituito da una matrice tipo PAL. Infatti aumentare troppo il numero di ingressi del singolo blocco comporterebbe insostenibili problemi di FAN-IN delle porte che costituiscono il piano AND. Il ritardo complessivo dipende poco dalla complessità del progetto. . Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Schema di blocco logico di un CPLD 0 -- 16 termini prodotto dalla matrice di interconnessioni programmabile allocatore 0 -- 16 Macrocella 2 Matrice dei termini AND termini prodotto programmabile 80 termini prodotto prodotto 0 -- 16 termini prodotto verso la matrice di interconnessioni programmabile Cypress 370 . Macrocella 1 Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Macrocella 16 Caratteristiche dei CPLD della famiglia Altera FLEX10K Sigla Capacità Logica N. Blocchi Logici N. Flip-Flop N. Pin I/O EPF10K10 EPF10K30 EPF10K50 EPF10K100 10000 576 720 150 30000 1728 1968 246 50000 2888 3184 310 100000 49992 5392 406 Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Struttura generale degli FPGA Canali di collegamento Celle logiche Le celle logiche hanno una funzionalità ridotta rispetto ai blocchi logici dei CPLD ma sono in numero molto maggiore. Gli FPGA presentano quindi una architettura a “grana fine” ed inoltre il numero elevato di celle consente di avere a disposizione un numero elevato di Flip-Flop. . Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale Struttura interna di un FPGA Interconnessioni programmabili Blocchi di I/O Celle logiche Il ritardo complessivo di un FPGA dipende in maniera marcata dallo schema che si vuole realizzare, a differenza dei CPLD. Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale