CIRCUITI INTEGRATI DIGITALI Gli elementi logici visti finora sono disponibili in circuiti integrati (IC). IC monolitici Circuito elettronico costruito interamente in un chip. Tutti i singoli componenti che compongono il circuito sono integrati nel singolo chip. I contenitori dei circuiti integrati sono classificati secondo il modo in cui possono essere montati su una scheda (Printed Circuit Board, PCB): foro passante (Dual-in-line Package, DIP) o montaggio superficiale (Surface-Mount Technology, SMT) 207
Circuiti integrati SMT Risparmio di spazio (eliminazione dei fori) Ci sono 4 tipi principali p di packages: SOIC (small-outline IC) PLCC (plastic leaded chip carrier) LCCC (leadless ceramic chip carrier) Flat pack (FP) È standardizzato anche il modo di numerare i pin. Viene sempre indicato il pin 1. 208 Contenitori di IC: DIP e SOIC 209
Classificazione dei IC SSI: Small-scale Integration. IC contenente fino a 12 porte equivalenti in un chip singolo. Porte logiche elementari e flip-flop. MSI: Medium-scale Integration. Da 12 a 99 porte equivalenti. Encoder, decoder, contatori, registri, multiplexer, circuiti aritmetici, piccole memorie, e altri. LSI: Large-scale Integration. Da 100 a 9999 porte equivalenti, incluse le memorie. VLSI: Very large-scale Integration. Da 10000 a 99999 porte equivalenti. ULSI: Ultra large-scale Integration. Memorie capaci, microprocessori, e singlechip computer. Oltre 100000 porte equivalenti. 210 Serie CMOS Ci sono due categorie principali, a seconda della tensione di alimentazione: 5V CMOS e 3.3V CMOS. All interno di ogni categoria di alimentazione sono a disposizione diverse serie di porte logiche, che differiscono per le prestazioni. Le famiglie CMOS vengono indicate con il prefisso 74 o 54 seguito da una o più lettere che indicano la serie e da un numero che indica il tipo di dispositivo logico. 74: dispositivi commerciali; 54: dispositivi per applicazioni militari 5V CMOS: 74HC e 74HCT: High-speed CMOS (T indica la compatibilità con TTL) 74AC e 74ACT: Advanced CMOS 74AHC e 74 AHCT: Advanced High-speed CMOS 3.3V CMOS: 74LV: Low-voltage CMOS 74LVC: Low-voltage CMOS 74ALVC: Advanced Low-voltage CMOS 211
Altre serie Serie BiCMOS, combinazione di CMOS e TTL: 74BCT, 74ABT, 74LVT, 74ALB Serie TTL: funzionano a 5V e usano ancora i prefissi 74 e 54, ma la lettera che segue è diversa: 74: standard TTL (non ci sono lettere) 74S: Schottky TTL 74AS: Advanced Schottky TTL 74LS: Low-power Schottky TTL 74ALS: Advanced Low-power Schottky TTL 74F: Fast TTL 212 Tipi di porte logiche integrate I tipi di porte logiche sono identificati dalle ultime 2 o 3 cifre della sigla. Quad 2-input NAND: 00 Quad 2-input NOR: 02 Hex inverter: 04 Quad 2-input AND: 08 Triple 3-input NAND: 10 Triple 3-input AND: 11 Dual 4-input NAND: 20 Dual 4-input AND: 21 Triple 3-input NOR: 27 Single 8-input NAND: 30 Quad 2-input OR: 32 Quad 2-input XOR: 86 Single 13 input NAND: 133 Tutte le serie 74 CMOS hanno i pin compatibili con le serie 74 TTL. Una selezione limitata di porte CMOS è anche disponibile in package con una singola porta, per correzioni e modifiche quando lo spazio è limitato. 213
Package e configurazione dei pin 214 Caratteristiche e parametri delle prestazioni /1 Ritardo di propagazione, t p : intervallo di tempo tra l applicazione di un impulso in ingresso e la comparsa del risultato in uscita. Ci sono 2 diversi ritardi di propagazione: t PHL : intervallo di tempo tra il riferimento in ingresso e il riferimento in uscita quando l output passa da HIGH a LOW. t PLH : intervallo di tempo tra il riferimento in ingresso e il riferimento in uscita quando l output passa da LOW a HIGH. Per TTL standard è 11ns, per la serie F 3.3ns Per CMOS HCT è 7ns, per AC 5ns, per ALVC 3ns 215
Caratteristiche e parametri delle prestazioni /2 DC Supply Voltage (V CC ): 5V CMOS funziona con V CC variabile tra 2 e 6V (ma il ritardo di propagazione p e la potenza dissipata sono influenzati) 3.3V CMOS funziona con V CC variabile tra 2 e 3.6V TTL funziona con V CC variabile tra 4.5 e 5.5V Power dissipation, P D : prodotto della DC supply voltage per la corrente media di alimentazione. Normalmente la correte di alimentazione è maggiore quando l output è LOW (I CCL ) rispetto a quando è HIGH (I CCH ). Allora: ICCH + ICCL PD = VCC 2 CMOS dissipa molto meno di TTL, ma in CMOS dipende dalla frequenza di funzionamento. 216 Caratteristiche e parametri delle prestazioni /3 Livelli logici di Input e Output: V IL e V IH per gli ingressi; 5V CMOS: V IL <1.5V, V IH > 3.5V; TTL: V IL <0.8V, V IH >2V V OL e V OH per le uscite; 5V CMOS: V OL <0.33V, V OH > 4.4V; TTL: V OL <0.4V, V OH > 2.4V Prodotto velocità potenza (Speed-power product, SPP): è una misura delle performance, utile per confrontare diverse serie. SPP espresso in joule è: SPP = t P P D 217
Caratteristiche e parametri delle prestazioni /4 Fan-out e loading: il fan-out è il numero massimo di input della stessa serie in un IC che può essere collegato all output della porta mantenendo i livelli logici dell uscita entro i limiti specificati. È significativo solo per TTL, per via della tecnologia. In CMOS è molto elevato, ma dipende dalla frequenza per via degli effetti capacitivi. È specificato in termini di unità di carico. Per una porta 7400 NAND, un unit load corrisponde a un ingresso di un altra porta logica nella serie 74 standard. I Unit loads = I OH IH I = I OL IL 16mA = = 10 1.6 ma 218 Data Sheet 219
Interfacciamento di un LED con una porta /1 Per la visualizzazione di un livello logico. Il LED richiede una corrente di alcuni ma: Ali livello ll ALTObisogna controllare ilfan out della porta e quindi l interfacciamento con eventuali altri ingressi potrebbe non risultare corretto. A livello BASSO la corrente di sink risulta inferiore alla massima consentita, ma comunque abbastanza alta da ridurre il numero di ingressi collegabili all uscita. +V I OL R I OH R Visualizzazione livello H Visualizzazione livello L 220 Interfacciamento di un LED con una porta /2 Qualora si richieda anche il collegamento ad altre porte, è meglio utilizzare anche dei BJT npn. BJT npn: se la base è attraversata da una corrente sufficiente, tra collettore ed emettitore scorre una corrente elevata; se non c è corrente tra base ed emettitore, non scorre corrente tra collettore ed emettitore. +V +V R C R C Visualizzazione livello H Visualizzazione livello L R B R B Ingressi altre porte Ingressi altre porte 221
Dispositivi Logici Programmabili (PLD) /1 IC rispettano la legge di Moore : il numero massimo di transistor integrabili nel circuiti integrati raddoppia ogni diciotto mesi circa, senza un aumento del costo del chip. È un aumento di prestazioni a parità di costo. L obiettivo dei costruttori non è solo il rispetto di questa legge ma anche la capacità di realizzare prodotti in grado di essere sviluppati e adattati alle esigenze del mercato con rapidità. Gli obiettivi sono allora: customization e time-to-market. Customization: potenzialità di un prodotto di essere adattato a diverse esigenze applicative con il minimo intervento sulla struttura hardware dello stesso. Time-to-market: capacità di ridurre al minimo il tempo che intercorre tra la domanda di un prodotto e la sua disponibilità sul mercato. 222 Dispositivi Logici Programmabili (PLD) /2 Nell elettronica digitale, i PLD sono, insieme ai μp, gli IC che meglio si prestano a soddisfare tali tendenze del mercato. La programmabilità e/o riprogrammabilità consentono di progettare secondo una filosofia che consente l utilizzo di uno standard di base che viene poi specializzato in ragione delle esigenze funzionali specifiche. Si progetta la macchina a stati oppure si descrive in VHDL, poi la sintesi avviene in modo automatico. La struttura dei PLD è caratterizzata da due elementi architetturali fondamentali: celle logiche e interconnessioni. Celle logiche: elementi composti da strutture logiche (porte logiche) Interconnessioni: interruttori programmabili La configurazione delle celle logiche e delle interconnessioni permette di implementare all interno del dispositivo la logica protetta. 223
Dispositivi Logici Programmabili (PLD) /3 224 PLA (Programmable Logic Array) È il più semplice dispositivo logico programmabile. Gli ingressi e i loro negati sono connessi alle uscite attraverso una rete di connessioni programmabili, un array di porte AND e un insieme di porte OR. L operazione di sintesi e implementazione della funzione logica all interno del dispositivo integrato programmabile può essere totalmente automatica e non richiede a priori alcun intervento del progettista, se non comunicare al sistema CAD il progetto da implementare. 225
PLA (Programmable Logic Array) /2 Realizza reti puramente combinatorie. Sono seguite poi PLA sequenziali, en che hanno la stessa architettura dei PLA combinatori a cui sono aggiunti dei flip-flop con il compito di sincronizzare i segnali. Ci può essere un unico segnale di clock (PLA sequenziali sincroni) oppure un segnale per ogni flip-flop (PLA sequenziali asincroni). I flip-flop possono essere sia in corrispondenza delle uscite (PLA registrati) che all interno del dispositivo. Nel caso in cui il piano OR non sia programmabile, ma costituito da connessioni fisse: PAL (Programmable Array Logic) Sono molto usati e quindi hanno avuto una notevole evoluzione, con nuove soluzioni architetturali che ne hanno aumentato la versatilità, oppure aumentando il numero di porte AND e OR. Ci sono state evoluzioni importanti che hanno portato ai dispositivi chiamati GAL 226 PLA (Programmable Logic Array) /3 227
GAL (Generic Array of Logic) Generic Array of Logic Derivano dai PAL, con l introduzione lintroduzione del concetto di macrocella. Macrocella: insieme configurabile di operatori logici combinatori e/o sequenziali. 228 CPLD (Complex Programmable Logic Device) Evoluzione di PAL. Estensione dell uso delle macrocella: verso l aumento di complessità e quindi di versatilità della struttura della macrocella; verso il posizionamento non solo alle uscite del dispositivo ma anche all interno di tutta l area larea. Può essere visto come un macrodispositivo formato dall unione programmabile di diversi dispositivi di tipo PAL. 229
FPGA (Field Programmable Gate Array) I dispositivi logici programmabili principali in termini di prestazioni e capacità sono gli FPGA, elementi primari e spesso insostituibili dei sistemi elettronici digitali. FPGA e DSP sono gli elementi che permettono customization e time-to-market. Tecnologia in evoluzione che ha superato quella degli ASIC Gate Array: non esistono costi di mascheratura (non recurring expense) e quindi anche i tempi di prototipazione si sono ridotti. ASIC convengono se il numero di porte logiche necessarie è molto elevato e se il numero di pezzi da produrre è molto elevato. Inoltre non si spreca silicio. FPGA convengono per costi e tempi di progettazione, sintesi e implementazione. Sono una evoluzione dei CPLD: aumento della complessità e versatilità della macrocella (blocco logico configurabile, CLB) e posizionamento della macrocella all interno di tutta l area del dispositivo. 230 FPGA /2 231
FPGA /3 L architettura di principio vede una distribuzione spaziale di CLB immersi in una complessa struttura di risorse di interconnessione programmabili e circondate da blocchi per le funzioni di input/output con l esterno. Configurare un FPGA significa implementare un circuito logico programmando i blocchi logici e programmando le linee di interconnessione tra i blocchi logici. Possono essere One Time Programmable (OTP) o riprogrammabili, a seconda che gli elementi che realizzano le programmazioni siano elementi bistabili modificati in modo irreversibile o riprogrammabile. FPGA OTP: gli elementi bistabili sono gli antifuse. Gli antifuse sono dei fusibili integrati il cui stato di conduzione viene modificato mediante il passaggio di una corrente opportuna. Lo stato di connessione è permanente. 232 FPGA /4 Vantaggio dell OTP: tolleranza all esposizione alle radiazioni ionizzanti. Impiego in ambito militare o spaziale. Svantaggio dell OTP: non è possibile riprogrammare e quindi non è possibile la In System Programmability (ISP) che molte applicazioni richiedono. FPGA riprogrammabili: gli elementi bistabili di programmazione sono EEPROM e SRAM; permettono la riprogrammabilità un numero elevato di volte (con SRAM teoricamente infinito). SRAM: non mantiene l informazione quando non è alimentata; bisogna riprogrammare ad ogni accensione. EEPROM: non volatile. Entrambe sono vulnerabili agli effetti dell esposizione a radiazione ionizzante, che può determinare alterazioni della informazione immagazzinata. 233
SRAM 234 Blocchi Logici Configurabili (CLB) Sono il cuore degli FPGA. Sono strutture organizzate sull area del dispositivo in un array bidimensionale all interno no del quale sono intercalate le linee programmabili di interconnessione. Sul mercato c è un ampia varietà di FPGA riprogrammabili. Il più comune blocco logico è basato sull uso della LookUp Table (LUT). LUT: elemento combinatorio che implementa una funzione booleana generalizzata. Può essere di diverse dimensioni (N ingressi), ed è un elemento di memoria monodimensionale con 2 N locazioni che contengono i valori della funzione logica implementata al variare degli ingressi. La struttura è implementata in modo tale che i valori delle variabili della funzione logica indirizzino la locazione della memoria che contiene il valore loro corrispondente della funzione logica. La capacità della LUT è limitata solo dal numero dei suo ingressi e non dalla complessità della funzione logica combinatoria da implementare. I CLB contengono anche altri elementi, spesso un registro dedicato alla LUT: formano la Logic Cell. 235
Logic Cell La Logic Cell è un parametro di misura usuale delle capacità degli FPGA. Negli ASIC Gate Array si indica e si confronta la capacità tra diversi dispositivi, o l area occupata dai progetti, in termini di numero di gate. Non è applicabile agli FPGA. Il numero di gate indica il numero di porte NAND a 2 ingressi necessarie per ottenere la medesima funzionalità del dispositivo in esame. Negli FPGA i blocchi logici si discostano radicalmente dall essere semplici porte NAND. Le capacità disponibili negli FPGA attuali superano il milione di Logic Cell effettive o equivalenti. Negli FPGA commerciali la struttura dei blocchi logici va bel al di là di quella della Logic Cell. 236 Risorse di interconnessione /1 Linee di interconnessione programmabili tra i diversi blocchi logici e tra i blocchi logici e le risorse di interfaccia con l esterno del dispositivo. Filosofie di interconnessione: Interconnessioni dirette Interconnessioni segmentate Interconnessioni dirette: gruppi di linee organizzati a diversi livelli in righe e colonne che attraversano il dispositivo in tutta tt la sua dimensione. i I blocchi immettono i dati da comunicare nel canale più favorevole per il destinatario. Prevede anche linee locali. 237
Risorse di interconnessione /2 Interconnessioni segmentate: linee segmentate e gerarchizzate, che possono venire connesse tramite matrici di interruttori programmabili (matrici di switch). Esiste un livello di gerarchia di connessione superiore con linee di trasmissione globali (es. per il clock). Dal punto di vista funzionale le due modalità sono equivalenti. Le dirette hanno una rete più semplice, con proprietà costanti (R e C di carico) su tutto il dispositivo più facile valutare il timing della propagazione del segnale. Le segmentate dissipano meno potenza, in quanto il carico è relativo ai segmenti effettivamente usati e non a tutta la linea. 238 Blocchi configurabili di I/O - Programmazione I blocchi di I/O sono l interfaccia del dispositivo con il mondo esterno. Sono connessi ad un pin del chip, che grazie alla programmabilità di tali elementi può essere configurato come pin di ingresso, di uscita, bidirezionale, o three-state. Possono consentire anche di programmare, ad es., il controllo dello slew-rate, il pull- up, il pull-down, l open-drain, etc Ampia varietà. Programmazione di FPGA: caricamento dei dati di configurazione relativi al sistema da implementare, inizializzando le funzioni richieste ai blocchi logici, le interconnessioni necessarie e le proprietà programmabili degli elementi di I/O. Es: FPGA SRAM, ciascun bit di programmazione definisce lo stato di una cella di memoria SRAM che, a sua volta, può inizializzare una LUT, può selezionare l ingresso di un multiplexer, può pilotare un transistor per realizzare una connessione, può definire lo stato di riposo di un pin di I/O, 239