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 Elettronica dei Sistemi Digitali 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 Elettronica dei Sistemi Digitali 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 Elettronica dei Sistemi Digitali 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 Elettronica dei Sistemi Digitali 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 Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali Chiudono il circuito se viene applicata una tensione elevata tale da perforare il dielettrico Interruttori Programmabili Reversibili-Non Volatili MOS a doppia Gate Transistor per EPROM Programmabili fuori dal circuito Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali Transistor per EEPROM Programmabili nel circuito 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 Elettronica dei Sistemi Digitali 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 Elettronica dei Sistemi Digitali Capacità Logica 20000 Capacità Logica 2000 200 SPLD CPLD FPGA Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali 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 Elettronica dei Sistemi Digitali Programmazione dei PLD Specifiche Descrizione VHDL FPGA CPLD Sintesi Simulazione funzionale Fitting Netlist Simulazione timing Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali Mappa di programmazione (Bit Stream) 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 Elettronica dei Sistemi Digitali 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 Elettronica dei Sistemi Digitali Realizzazione dei PLA A AND B I I C 1 2 D Y1 Y2 Output Le due matrici implementano funzioni AND che diventano NAND a causa degli 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 Elettronica dei Sistemi Digitali Realizzazione dei PLA A NOR B I 1 C I 2 D Output Y1 Y2 Y3 Le due matrici implementano funzioni NOR che, nella seconda, diventano OR a causa degli invertitori 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 Elettronica dei Sistemi Digitali Esempio di funzioni con PLA Y1 = A1A 2 + A1 A 2 A 3 A 4 A1 x A2 x A3 x x x x x Y3 = A1A 2 + A1 A 3 A 4 + A1 A 2 A 4 x x x Ovviamente le AND e le OR indicate nello schema sono solo simboliche x x x Y1 x x x x x x A4 Y2 = A1 A 3 A 4 + A1A 3 + A 2 x x x Y2 x Y3 Realizzazione delle tre funzioni Y1 Y2 Y3 Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali 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 = _ A+C 5 _ _ 6 A+C _ 7 A+B+C Vengono utilizzate solo il 40% delle possibili connessioni Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali Operazione di taglio e_ ripiegamento nei PLA B A 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 Elettronica dei Sistemi Digitali I1 Dispositivi PAL 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 Elettronica dei Sistemi Digitali Esempio di PAL I1 Y1 = I1I 2 + I 3 I 4 + I 2 I 3 I2 Y2 = I1 I 2 I 3 + I1I 4 I3 Y3 = I 2 I 3 + I1I 4 I4 x Y1 Y2 x Y3 Valori di uscita sempre 0 in quanto ottenuti dalla AND di 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 Elettronica dei Sistemi Digitali 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 Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali Y3 Logica in due passi per dispositivi PAL Realizzazione delle funzioni Y1 e Y2 con una PAL a 3 prodotti Y1 = I1I 2 I 3 + I1 I 2 I 3 + I1I 2 I 3 + I1 I 2 I 3 Y2 = I1I 2 I 3 + I 2 I 3 I 4 + I1I 4 I1 I2 Y3 = I1I 2 I 3 + I1 I 2 I 3 I3 I4 x Y1 Y2 Y3 Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali 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 I 3 + I1 I 2 I 3 + I1I 2 I 3 + I1 I 2 I 3 Y2 = I1 + I 2 + I 3 + 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 I 3 I 4 che contiene un solo termine prodotto e usare: Y3 = I1I 2 I 3 + I1 I 2 I 3 come nel caso precedente, in una logica a due passi. Occorre quindi negare le uscite! Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali PAL con polarità dell’uscita programmabile I1 I2 A 0 0 1 1 I3 I4 Z1 Y1 Z2 Y2 B 0 1 0 1 A XOR B 0 1 1 0 Z3 Y3 Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali 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 PAL con polarità dell’uscita programmabile I1 I2 I3 I4 x x Y1 = I1I 2 I 3 + I1 I 2 I 3 + I1I 2 I 3 + I1 I 2 I 3 Y1 Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali Y2 x Y3 Y2 = I1 + I 2 + I 3 + 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 Y1 Y2 Y3 Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali L’abilitazione del tristate può essere funzione degli ingressi o essere fissata, a secondo dei casi. 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 Elettronica dei Sistemi Digitali PAL sequenziali con terminali I/O programmabili I1 I2 I3 I4 Clock Y1 Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali D D Q Q Y2 Y3 Schema a blocchi semplificato di PAL MATRICE LOGICA PROGAMMABILE Clock MACROCELLE DI USCITA Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali La struttura può essere vista come costituita da una matrice logica e diverse macrocelle in uscita. 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 Elettronica dei Sistemi Digitali 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 Elettronica dei Sistemi Digitali CPLD Blocco Logico Blocco Logico Blocco Logico Blocco Logico I/O Blocco Logico Interconnessioni programmabili Blocco Logico I/O 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 Elettronica dei Sistemi Digitali . 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 Elettronica dei Sistemi Digitali Macrocella 16 Caratteristiche dei CPLD della famiglia Altera FLEX10K Sigla Capacità Logica N. Blocchi Logici N. Flip-Flop N. Pin I/O EPF10K10 EPF10K30 10000 576 720 150 Luigi Zeni DII-SUN Elettronica dei Sistemi Digitali 30000 1728 1968 246 EPF10K50 EPF10K100 50000 2888 3184 310 100000 49992 5392 406 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 Elettronica dei Sistemi Digitali 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 Elettronica dei Sistemi Digitali