Catello Antonio De Rosa – Articolo pubblicato su Elettronica Oggi (Dicembre 2002) Logiche Programmabili Anno 2002 Per via della crisi economica le novità sui dispositivi programmabili sono contenute, cosa tutto sommato non negativa in quanto negli ultimi anni, a causa della frenetica introduzione di nuove famiglie, difficilmente si realizzavano due progetti in sequenza sullo stesso dispositivo. Quasi tutti i costruttori hanno tuttavia rinnovato il portafoglio delle proprie soluzioni nei punti strategici. Nel seguito si riportano solo le innovazioni annuali e non tutti i prodotti esistenti in commercio. In generale è possibile riassumere che da un punto di vista tecnologico si è giunti a dispositivi static RAM con dimensione del canale da 0,13 µm con livelli di metallizzazione tutti in rame e materiale dielettrico a bassa costante, che Lattice Semiconductor ha acquistato la divisione programmabili di Agere entrando di diritto nel mercato FPGA, che Xilinx ha presentato una nuova proposta per ogni segmento di mercato da lei coperto e che Altera ha introdotto il suo FPGA di punta per i prossimi anni disinvestendo invece nel settore PLD e sospendendo il programma Excalibur con il MIPS integrato. 1. SISTEMI DI SVILUPPO Da un punto di vista dei sistemi di sviluppo Lattice ha introdotto nel suo ispLEVER la gestione delle famiglie ORCA e FPSC acquistate da Agere, Xilinx la versione ISE5.1i del suo software e Altera la versione 2.1 di Quartus II grazie al quale è possibile gestire sia le nuove famiglie come la Stratix, sia le precedenti come Apex e Flex, sia le PLD della serie MAX senza più aver bisogno del sistema di sviluppo MAX+PLUS II. 2. PLD Lattice, con i dispositivi delle famiglie ispMACH 4000 e ispMACH 5000, accresce le prestazioni delle architetture che ha consolidato nel giro di questi ultimi anni. La serie 4000 si completa con le tre soluzioni ispMACH 4000V a 3.3 V, ispMACH 4000B a 2,5 V e ispMACH 4000C a 1,8 V. Alla famiglia ispLSI 5000VE a 3.3 V si affianca quella ispMACH 5000B a 2.5 V, mentre il segmento delle alte densità è coperto dalla famiglia ispMACH 5000VG a 3,3 V presentata lo scorso anno. L’introduzione della famiglia ispXPLD 5000MX (eXpanded Programmable Logic Device) rappresenta una novità tecnologica per la compagnia di Hillsboro. Questi dispositivi sono realizzati dall’unione di due tecnologie: quella volatile static RAM che controlla la logica e quella non volatile EEPROM che memorizza i dati di configurazione. L’architettura di questa PLD, che trae spunto dalla famiglia ispMACH 5000VE, prevede una serie di Multi-Function Block (MFB) connessi da un Global Routing Pool (GRP). I segnali d’ingresso possono essere registrati nei blocchi MFB o essere direttamente inviati al GRP, quelli di uscita sono gestiti da un Output Sharing Array (OSA). Grazie alla tecnologia costruttiva ogni blocco MFB ha sei modi 1 Catello Antonio De Rosa – Articolo pubblicato su Elettronica Oggi (Dicembre 2002) di funzionamento di cui uno riconducibile alla modalità logica (32 macrocelle, un fully populated programmable AND-array con 160 product term, 68 ingressi) e gli altri cinque funzionanti come diversi tipi di memoria (single port, dual port - true e pseudo -, FIFO, CAM). Quando il blocco è configurato come dual port ha una capacità di 8 kbit, quando è configurato come single port ha una capacità doppia. Sono disponibili tagli da 256 a 1024 macrocelle per tre tipi di tensione di alimentazione: 3.3V (5000MV), 2.5V (5000MB) e 1.8V (5000MC). Un’altra famiglia che merita uno sguardo approfondito è la CoolRunner-II di Xilinx. È una famiglia che raccoglie molte caratteristiche che si ritrovano in altri dispositivi, di Xilinx o della concorrenza, pur presentando alcune innovazioni di rilievo. La tecnologia di costruzione Fast Zero Power ed il possibile blocco degli ingressi che non commutano consentono di ridurre i consumi; le porte di I/O, divise in banchi, sono di tipo multistandard, consentono la programmabilità come pin di ground quando non usate, riducendo i disturbi, e posseggono ingressi Schmitt-Trigger, individualmente attivabili, la cui isteresi riduce il rumore sui segnali d’ingresso. L’architettura interna, infine, accomuna le potenzialità di una struttura di tipo PLA alla velocità che è sempre stata un fattore penalizzato. La tecnologia costruttiva è il processo CMOS già introdotto per la precedente famiglia CoolRunner ma con canale da 0.18 µm e alimentazione a 1.8 V. L’adozione di una struttura full-CMOS consente da un lato la riduzione dei consumi per l’eliminazione dei sense amplifier necessari per la realizzazione dell’AND array, dall’altro la possibilità di portare la struttura verso geometrie di canale sempre più ridotte, cosa che con i sense amplifier non è possibile avendo raggiunto il limite a 0.15 µm, privilegiando velocità di funzionamento e di nuovo consumi. Negli I/O, che essenzialmente sono ricetrasmettitori, è implementato un dispositivo denominato DataGATE composto da un pass transistor e un latch che blocca, sotto opportuno comando, la transizione dei segnali in ingresso mantenendone memoria dell’ultimo stato. Questa opzione riduce la corrente che fluisce nel dispositivo riducendo i consumi quando lo stato degli ingressi non è influente sul funzionamento della logica d’utente implementata all’interno della PLD. Un’altra caratteristica del dispositivo è l’avanzata gestione del segnale di clock: è possibile dividere il segnale di clock entrante da una porta di Global Clock (i fattori di divisione vanno da 2 a 16); è possibile, con l’opzione DualEDGE, raddoppiare la frequenza di clock processando, a livello della singola macrocella, entrambi i fronti del segnale di clock che può essere un product term clock o un segnale di clock di tipo globale; è infine possibile ricorrere all’opzione CoolCLOCK in cui la frequenza d’ingresso del segnale di clock viene dimezzata mediante il divisore, riducendo così l’assorbimento di potenza della linea di clock e, laddove occorra, ne viene ripristinato il corretto valore a livello di macrocella con l’opzione DualEDGE. La roadmap prevede l’introduzione di una nuova famiglia di medesima tipologia, alimentata a 1.5 V con canale da 0.13 µm, che verrà denominata BladeRunner ma non l’ha progettata Ridley Scott! 2 Catello Antonio De Rosa – Articolo pubblicato su Elettronica Oggi (Dicembre 2002) 3. FPGA ProASIC Plus e Axcelerator, Stratix e Spartan-IIE sono le famiglie di FPGA introdotte quest’anno rispettivamente da Actel, Altera e Xilinx. La prima è un evoluzione nelle prestazioni e nell’area della famiglia flash ProASIC, la seconda è un enhancement della famiglia antifuse SX-A, l’ultima è un redesign tecnologico della Virtex-E destinata al segmento di mercato dai costi contenuti. Con Axcelerator Actel aggiorna il proprio portafoglio prodotti che, nel settore antifuse, aveva visto nel Settembre 1999 l’introduzione della famiglia SX-A da 0.25 µm e, a distanza di un anno, l’introduzione della famiglia eX destinata alle applicazioni low-cost e, pertanto, realizzata come subset architetturale della SX-A in tecnologia 0.22 µm. Questa nuova famiglia è realizzata con processo da 0.15 µm con 7 livelli di metallizzazione in alluminio e una tensione di core di 1.5 V. Grazie alla struttura di routing che non prevede switch matrix e alla tecnologia costruttiva di canale, prossima a quella che contraddistingue i dispositivi static RAM, sono possibili frequenze di funzionamento interne che superano i 500 MHz (sei livelli di logica consentono 160 MHz). Da notare che, anche se si fa riferimento all’architettura SX-A che ha due tipi di SuperCluster, in questa famiglia, come avviene nella famiglia eX, il tipo di Supercluster è unico ed è formato da due Cluster dotati ciascuno di due C-cell e un R-cell con l’aggiunta in questo caso di buffer per il routing e logica per il riporto aritmetico (Carry Logic). Il SuperCluster inoltre ha un utilizzo frammentabile, cioè se alcuni moduli sono usati per un persorso dati, i rimanenti possono essere riutilizzati da altri percorsi. Rispetto alla concorrenza non sono state introdotte novità di rilievo, anzi si sono portate in questa tecnologia funzionalità già presenti da tempo in altri dispositivi ma non nella SX-A. Così sono stati introdotti blocchi di memoria di 4,5 k bit (4608 bit) variabilmente sfruttabili (4kx1, 2kx2, 1kx4, 512x9, 256x18, 128x36) con relativo circuito di controllo per il funzionamento in modalità FIFO, otto PLL per la gestione dei clock globali, porte di I/O divise in banchi e di tipo multistandard grazie alla presenza di driver single-ended, voltage referenced e differenziali. Da evidenziare la singolare funzione presente in ogni porta di I/O: una FIFO a 16 bit. L’architettura che invece presenta innovazioni di rilievo è quella della Stratix. La struttura di routing è divenuta molto simile a quella di tipo segmentato (pur preservando la ripartizione della logica nei LAB), è presente un’overdose di memoria embedded (fino a 10 Mbit) disponibile in gruppi appartenenti a tre formati (512, 4k, 512k bit), sono stati introdotti blocchi hardware di tipo DSP (composti ciascuno da quattro moltiplicatori hardware 18x18 - di ampiezza riconfigurabile sia a 9 sia a 36 bit - due sommatori/sottrattori parziali, un addizionatore finale e opportuni registri di pipelining), negli I/O sono inserite terminazioni di linea programmabili di tipo serie o parallelo (questa tecnologia è stata introdotta da Xilinx a partire da Virtex-II ma solo per i segnali singleended). 3 Catello Antonio De Rosa – Articolo pubblicato su Elettronica Oggi (Dicembre 2002) Al fine di ridurre i costi dei dispositivi di grosso taglio e consentire una maggiore penetrazione nel mercato ASIC e ASSP un’alternativa alla mascheratura compiuta con le soluzioni Hardwire (Xilinx) o HardCopy (Altera) è rappresentata dalla soluzione EasyPath introdotta da Xilinx a partire da Virtex-II. Una volta che il progetto d’utente è consolidato la fabbrica testa il relativo file di programmazione sui wafer appena realizzati ma senza compiere l’intero e costoso insieme di test necessario a qualificare il dispositivo in tutte le sue funzionalità. Il risultato è che l’utente continua ad avere un dispositivo static RAM ma non ha più la garanzia di funzionamento al cambio di funzione. In base al numero di pezzi ordinati si possono avere riduzioni dei costi dal 30 all’80% rispetto al dispositivo full-functional. Tuttavia è da considerare un costo fisso attribuito ai vettori di test e a carico del cliente. Da notare infine, come considerazione generale, che gli FPGA si arricchiscono in maniera progressiva di elementi embedded (memorie, moltiplicatori, DLL/PLL, interfacce seriali) che raramente sono usati contemporaneamente e per un vasto spettro di progetti (in alcuni dispositivi della famiglia Stratix l’area programmabile è meno della metà dell’intero die). Tuttavia la ricerca di un dispositivo con solo LUT e flip-flop è ormai infruttuosa e anche l’ultimo dispositivo di questo tipo che resisteva, l’SX-A di Actel, è stato avvicendato. 4. SOPC Con l’introduzione di Virtex-II Pro si completa l’ingresso in questo segmento di mercato dei grossi costruttori di logica programmabile iniziato con il programma Excalibur di Altera. Data la capillare struttura commerciale e di supporto di Altera e Xilinx a livello mondiale sembra che i pionieri del settore come Triscend, Sidsa e Atmel siano destinati ad avere vita durissima. Le CPU embedded in logica programmabile al momento sono classificabili in sei categorie: ARM (Altera, Triscend), MIPS (è rimasta solo QuickLogic in quanto Altera ha deciso di non produrre più l’Excalibur XM), 8051 (Triscend, Sidsa, Cygnal), PowerPC (Xilinx), AVR RISC (Atmel), M8C (Cypress MicroSystems). L’ultimo arrivo del settore, Virtex-II Pro, integra uno o più PowerPC 405D5, un’architettura RISC a 32 bit ridisegnata per una geometria di canale da 0.13 µm a partire da quella di 0.18 µm che caratterizza il processore IBM PowerPC 405D4 della libreria di core IBM Blue Logic. Sono inoltre presenti, a seconda del taglio dei dispositivi, da 4 a 24 ricetrasmettitori seriali ad alta velocità da 3,125 Gbit/s denominati RocketIO (tecnologia SkyRail della Conexant). Così come era accaduto per Virtex-II in cui era stato scelto un vasto spettro di dispositivi all’interno della famiglia (da 256 a 61.440 Slice, coprendo esigenze che partono da PLD di grosso taglio fino a veri e propri ASIC), si è ripetuta la strategia in Virtex-II Pro. Il dispositivo più piccolo ha solo 4 ricetrasmettitori ad alta velocità e nessuna CPU integrata, scelta utile per chi ha esigenze di alto throughput dei dati per un FPGA dall’architettura tipo Virtex-II e performance ritoccate verso l’alto. Gli altri tagli, al crescere della dimensione dell’area di tipo FPGA, aggiungono uno, due, quattro processori ed un numero di interfacce seriali RocketIO via via crescenti. 4 Catello Antonio De Rosa – Articolo pubblicato su Elettronica Oggi (Dicembre 2002) La panoramica sui SoPC si conclude con i dispositivi Atmel e Lattice. In Atmel nasce la famiglia AT94S dove l’architettura AT94K viene dotata di una memoria EEPROM (fino a 1 Mbit) per la memorizzazione dei dati di programmazione dell’area FPGA e del codice per il micro. Quest’archittettura, con due chip in un solo package, ha lo scopo garantire una forma di sicurezza contro processi fraudolenti di reverse engineering. I dispositivi Lattice, di derivazione Agere, non integrano CPU insieme a logica programmabile ma interfacce seriali ad alta velocità. Tra questi si evidenzia il dispositivo ORLI10G in cui è integrata un’area programmabile di derivazione ORCA serie 4 ed un’interfaccia di linea Ethernet da 10 Gbit/s e il dispositivo OR82G5 con interfacce seriali da 1,25/2,5/3,125 Gbit/s. La gestione di un progetto basato su SoPC non sembra essere una questione da sottovalutare. Per sfruttare nel migliore dei modi questi dispositivi occorre creare una struttura organizzativa, o sfruttarne una già esistente, in cui ci sia estrema collaborazione e sincronia tra progettisti software, hardware e firmware. Il rischio che si corre in caso contrario è la creazione di un prodotto di basso profilo. In altre parole possiamo dire che i System on Programmable Chip sono dispositivi destinati a testare la professionalità e l’organizzazione delle aziende che hanno intenzione di usarli. 5