Tutti i vantaggi della programmabilità

La logica programmabile costituisce il settore che sta evidenziando il più rapido sviluppo dell’intero mercato dei dispositivi logici. Le ragioni del successo di questi dispositivi è da ricercarsi fondamentalmente nel numero elevato e sempre crescente di porte logiche integrate su un singolo dispositivo e nella rapidità e flessibilità della programmazione. Grazie a queste caratteristiche, le logiche programmabili stanno insidiando altri segmenti di mercato consolidati, come quello dei microcontrollori e dei processori application-specific e, grazie alla rapidità di messa in opera, anche quello degli Asic. Anche la tecnologia dei Digital Signal Processor si è molto evoluta negli ultimi anni, raggiungendo una maturità tale da garantire un’offerta capace di soddisfare un numero sempre più elevato di applicazioni. Uno dei principali motivi del successo tecnologico dei Dsp è l’innovazione che è stata introdotta negli anni, in particolare l’elevata integrazione fino alla dimensione di System-on-Chip e l’integrazione di altre tecnologie, in particolare quella della logica programmabile.

Il futuro è nella logica programmabile

La logica programmabile è senza dubbio la strada definitiva verso cui si orienterà la tecnologia elettronica digitale nel prossimo futuro. Programmare l’architettura hardware di un sistema, organizzando liberamente i componenti elementari (transistor, porte logiche, funzioni logiche, ecc.) per realizzare un’applicazione, rappresenta il massimo dell’efficienza nella progettazione e realizzazione dei sistemi. In futuro probabilmente la logica programmabile dal punto di vista elettronico somiglierà molto poco all’attuale (il futuro dell’elettronica si chiama “moletronica”), ma le ragioni del successo saranno esattamente le stesse che stanno caratterizzando la logica programmabile allo stato dell’arte: elevata densità e facilità di programmazione. La logica programmabile è cresciuta enormemente negli ultimi anni, anche grazie alla grande quantità di strumenti di sviluppo assistiti da calcolatore (ambienti di sviluppo) che hanno elevato il livello di astrazione della progettazione senza perdere in efficienza nella sintesi del codice di programmazione. La generazione di codice di programmazione dell’hardware per dispositivi logici programmabili è infatti ora una opzione presente in quasi tutti gli ambienti di progettazione, insieme alle ormai tradizionali opzioni di generazione di codice di programmazione del software dei più diffusi microprocessori e microcalcolatori.

I motivi del successo della programmabilità

La logica programmabile si è molto evoluta negli ultimi anni, dando vita a svariate tipologie di prodotti capaci di ottimizzare in parte o nella sua interezza la realizzazione di un sistema. Tutti questi dispositivi hanno in comune la caratteristica della programmabilità dell’hardware. Dispositivi come Pld (Programmable logic devices) ed Fpga (Field programmable gate array) consentono di realizzare funzioni hardware semplici e di media complessità da integrare all’interno di sistemi più o meno complessi (schede). Dispositivi come Asic (Application specific integrated circuit), Cpld ed Fpga a elevata integrazione consentono di realizzare interi sistemi, anche grazie alla disponibilità di funzionalità complesse predefinite, macro e Ip, e alla natura strutturata. I PSoC (Programmable System-on-Chip) sono l’esempio emblematico di questa soluzione, ove programmabilità e strutturazione del dispositivo mettono a disposizione dello sviluppatore un elevato livello di flessibilità e di opzioni per soddisfare i requisiti di sistema, soprattutto se embedded, di ridotte dimensioni, basso consumo, elevate prestazioni, affidabilità e basso costo. Un ulteriore fattore di successo della logica programmabile, soprattutto quella di ultima generazione, è la programmabilità cosiddetta “in-system”. Una delle principali remore degli sviluppatori relativamente all’uso della logica programmabile in alternativa a quella “a controllo di programma”, cioè i microcontrollori, era l’impossibilità di aggiornare o correggere la funzionalità di un sistema dopo la fase di sviluppo, cioè quando è già un prodotto finale. I sistemi a controllo di programma, basati cioè sulla funzionalità software, hanno il grande vantaggio di poter essere aggiornati anche quando sono in mano all’utente finale. La logica programmabile dispone ora anche di questa capacità, conseguita anche grazie allo sviluppo delle memorie flash, ormai ampiamente disponibili in elevata capacità sui dispositivi logici programmabili. Anche microprocessori e microcontrollori stanno combattendo la loro battaglia contro l’erosione del loro mercato da parte delle logiche programmabili, attaccando queste sul lato apposto, la programmabilità dell’hardware. Le architetture di computing riconfigurabili sono ormai sempre più diffuse, proprio in accordo con la tendenza alla flessibilità di sistema. L’obiettivo è comunque lo stesso, programmabilità dell’hardware ed elevata densità.

Il vantaggio della differenziazione

La crescente complessità dei dispositivi logici programmabili e l’elevata diversificazione che caratterizza tali dispositivi nell’offerta dei vari produttori, rende il compito dello sviluppatore molto complesso relativamente alla scelta del dispositivo giusto per la propria applicazione. Un importante fattore di scelta è la disponibilità da parte del produttore o di terze parti, di software di sviluppo sufficientemente avanzato per non essere costretti a spendere tempo nell’esplorazione di funzionalità di basso livello a scapito di quelle ad alto livello. Inoltre, il software di sviluppo deve consentire di utilizzare in maniera efficiente la funzionalità disponibile a livello di silicio senza che lo sviluppatore debba eseguire interventi manuali sul codice di programmazione. Inoltre, la funzionalità di compilazione offerta da tali strumenti di sviluppo deve essere tale da preservare l’integrità del progetto, anche in conseguenza di ricompilazioni ed eventuali interventi manuali sul codice di programmazione, per esempio evitando variazioni sul timing e sul pinout. Malgrado la programmabilità sia l’elemento comune per tutti i dispositivi logici programmabili, la varietà di tipologie di prodotti è molto ampia: Pld, Spld, Cpld, Pal, Fpga, Asic. Inoltre, ogni tipo di logica programmabile si caratterizza a sua volta per funzionalità interne che le rendono ottimali per applicazioni specifiche. Un aspetto di caratterizzazione è anche la quantità di Ram interna e la disponibilità di funzionalità mixed-signal. I dispositivi di una certa complessità tendono a integrare, insieme alla logica programmabile, funzionalità digitali di uso generale come il multiplexer, interfacce standard di comunicazione, core processor a standard industriale, ecc. Queste funzionalità precostituite permettono allo sviluppatore di concentrare tutta la sua attenzione sulla parte specifica dell’applicazione e della sua capacità di progettazione, conferendo al prodotto quell’aspetto proprietario che gli consente di differenziare il prodotto finale da quello degli altri produttori di applicazioni simili. Inoltre, ove sono disponibili funzionalità mixed-signal (convertitori A/D, convertitori D/A, ecc.) e funzionalità analogiche (amplificatori, filtri, ecc.), lo sviluppatore può anche tentare di perseguire l’obiettivo di realizzazione system-on-chip del prodotto finale.

Actel – La società si caratterizza per la tecnologia antifuse per la configurabilità dei suoi dispositivi logici programmabili di natura Fpga. Questa tecnologia ha vari vantaggi, come la bassa impedenza che implica basso consumo, maggior velocità, maggiore immunità alle radiazioni e maggior densità di integrazione. Il vantaggio della tecnologia antifuse è la non volatilità intrinseca delle connessioni, quindi non richiede l’uso di memoria per il mantenimento delle connessioni. Le principali famiglie di prodotti di Actel sono: MX, SX, ProAsic. I prodotti Fpga MX utilizzano la prima generazione della tecnologia antifuse e sono alimentati a 5 V. I prodotti Fpga SX utilizzano la seconda generazione che non utilizza l’area di substrato di silicio. La configurazione dei dispositivi Fpga antifuse richiede una tensione di programmazione abbastanza elevata. Ciò impone la programmazione del dispositivo fuori dal target. Inoltre, la programmazione è irreversibile, quindi non è possibile realizzare applicazioni riconfigurabili in campo. Il vantaggio di questa caratteristica è che il dispositivo non è clonabile (reverse engineering). I dispositivi ProAsic sono l’alternativa che Actel offre per la riprogrammabilità sia in laboratorio che in campo. Questi dispositivi includono le necessarie risorse di memoria per la riconfigurabilità e per un’ampia gamma di funzionalità aggiuntive, perdendo ovviamente la peculiarità della non clonabilità. Libero e Designer sono gli strumenti di sviluppo che Actel offre direttamente agli sviluppatori che utilizzano le sue Fpga. Oltre a rendere disponibili le funzioni necessarie allo sviluppo, schematico, sintesi, simulazione, placement and routing, programmazione, consente di combinare le varie tipologie di Fpga offerte. Recentemente la società ha ampliato il suo esteso portafoglio di soluzioni programmabili a basso consumo per progetti che puntano a ridurre il consumo di corrente introducendo Igloo Plus, una nuova famiglia di Fpga a basso consumo con un ottimo bilanciamento fra consumi, area, logica e prestazioni I/O.

Altera – Produttore sia di Fpga che di Cpld, Altera e rende disponibile un Cpu core, il processore Risc Nios a 8, 16 e 32 bit, per le sue Fpga. Le famiglie Cpld di Altera sono Max 9000, Max 7000, Max 3000 e Max II. Max 7000 è la famiglia principale, mentre Max 3000 e Max 9000 sono varianti di tale famiglia che riducono i costi (Max 3000) o che offrono una modalità di interconnessione avanzata (Max 9000 utilizza l’approccio gerarchico di tipo multistrato alla interconnessione). Il software di sviluppo Max+ supporta sia le Cpld, sia le Fpga. Il software Quartus II, insieme all’analizzatore logico SignalTap, supporta l’intero ciclo di sviluppo per le famiglie Apex, Cyclone e Stratix. Recentemente Altera ha annunciato i primi Asic HardCopy e i primi Fpga da 40 nm disponibili in commercio. Tali prodotti consentono ai progettisti di raggiungere nuovi livelli di integrazione e di innovazione. Gli Fpga Stratix IV e gli Asic HardCopy IV, entrambi disponibili in versioni con transceiver, offrono livelli senza precedenti di densità e prestazioni, garantendo parallelamente un’assoluta leadership in termini di contenimento dei consumi. La famiglia Stratix IV offre fino a 680K elementi logici, due volte in più rispetto alla precedente famiglia Stratix III di Altera.

Cypress - Attraverso il PSoC Cypress offre la soluzione di logica programmabile di natura system-on-chip. In questo caso si tratta di un microcontrollore che consente di ottenere soluzioni a problematiche di sistema con la flessibilità di una Fpga, pur non essendo una Fpga. La riconfigurabilità dei blocchi funzionali (12 analogici e 8 digitali) disponibili in una libreria di componenti, consente di ottenere un centinaio di configurazioni. Insieme al microcontrollore, la memoria e le periferiche, le possibilità di realizzare complete funzionalità di sistema su singolo chip sono innumerevoli. Date le prestazioni e l’architettura del microcontrollore, è possibile affrontare con successo anche applicazioni impegnative dal punto di vista computazionale come quelle Dsp. L’architettura Delta39K è una Cpld; traendo vantaggio dall’alta densità delle Ram statiche, è sostanzialmente una ottimizzazione tra architettura e prestazioni di Cpld ed Fpga. Questa è infatti indirizzata al mercato intermedio delle Fpga essendo caratterizzato da una densità di 350000 gate.
L’architettura consiste di cluster di blocchi logici costituiti ciascuno da 128 macrocelle interconnesse tra loro da una matrice programmabile di interconnessione proprietaria di Cypress.

Lattice - Con la famiglia di Fpga LatticeECP2, Lattice affronta il mercato delle Fpga a basso costo offrendo funzionalità aggiuntive disponibili correntemente su dispositivi Fpga ad alto costo ed elevate prestazioni. Questi dispositivi consistono di blocchi funzionali Fpga a basso costo uniti a blocchi Dsp (sysDsp, da 3 a 20 blocchi). Questi blocchi supportano quattro elementi funzionali su tre flussi dati (a 9, 18 e 36 bit) e sono configurabili per supportare moltiplicatori, moltiplicatori-accumulatori, moltiplicatori-sommatori-sottrattori. Gli elementi sono concatenabili per ottenere strutture di elaborazione Dsp a elevato parallelismo esecutivo e alimentati con un clock a 375 MHz per ottenere 63000 Mmacs (milioni di moltiplicazioni con accumulo al secondo). I dispositivi ECP2M dispongono di 16 canali di SerDes embedded. Questi sono un’implementazione efficiente e economica del Cdr inteso a supportare i protocolli a pacchetto più diffusi e utilizzati nella comunicazione seriale da chip a chip. Ognuno dei canali SerDes contiene la circuiteria di trasmissione e ricezione necessaria per lo scambio di dati full-duplex ad alta velocità (fino a 3,125 Gbps). In tal modo le Fpga ECP2M rappresentano un’alternativa molto economica alla realizzazione di applicazioni basate su Pci Express, Ethernet, Serial RapidIO e Cpri/Obsai. Lattice produce anche Cpld e Spld. Ha introdotto per primo la programmazione in-system per le Pal. Le varie famiglie MachXO, ispMACH, ispXPld5000, ispGAL coprono vari ambiti applicativi relativamente a requisiti di velocità, densità e dimensioni.

STMicroelectronics - Combinando la tecnologia Eprom con la logica, STMicroelectronics offre il Psd (Programmable System Device), una maniera innovativa per far coesistere sullo stesso chip il codice eseguibile e i dati in modalità volatile e non volatile. Sostanzialmente si tratta di funzionalità logica configurabile per applicazioni specifiche e interfacciabile ai comuni microprocessori e microcontrollori, come la tradizionale logica programmabile. Un esempio application-specific di questa tecnologia è il Dsp System Memory, una soluzione di natura system-memory applicabile ai Digital Signal Processor. La peculiarità, rispetto alla logica programmabile tradizionale, è quella di includere il core del Dsp o del microcontrollore, nel chip stesso, in modo da creare un vero e proprio system-on-chip. Il DSM2150F5, per esempio, rende disponibile due flash memory da 512 kbyte e 32 kbyte, un’array Pld di oltre 3000 gate, 16 macrocelle e 40 I/O multifunzione. Quanto basta per connettersi a un Dsp senza altri componenti.

Xilinx - Come altri produttori di logica programmabile, Xilinx offre sia Fpga che Cpld. A differenza di altri produttori, Xilinx ha prima sviluppato la tecnologia Fpga, poi ha affrontato quella Cpld. La famiglia di Fpga Virtex, in particolare la Virtex5, si caratterizza prima di tutto per l’elevata densità di celle logiche (fino a 330000), ma anche per altre caratteristiche come i 1200 pin di I/O (fondamentali per la realizzazione di interfacce di memoria a larga banda) e i 24 transceiver a basso consumo per la realizzazione di interfacce seriali ad alta velocità. L’elevata densità di celle logiche assume un significato particolarmente rilevante se si considera il PowerPc integrato all’interno del dispositivo Fpga. Si tratta del PowerPc 440, l’architettura di computing industry standard da 1100 Mips a 550 MHz. Oltre al PowerPc, il Virtex5 integra anche un controllore Apu (Auxiliary Processor Unit) che svolge il ruolo di acceleratore computazionale e un Crossbar Switch per la realizzazione di interfacce veloci a 128 bit e connettività punto-punto. CoolRunner e XC9500 sono le due linee di prodotti Cpld di Xilinx. CoolRunner II si caratterizza per le elevate prestazioni unite al basso consumo. In particolare la versione 1.8V Cpld rende disponibile un package particolarmente piccolo ed economico, mentre la versione XPLA3 3.3 V Cpld è pensata per applicazioni a basso consumo, in particolare i dispositivi portabili, palmari e in generale i sistemi sensibili ad aspetti legati all’alimentazione. Il ritardo di propagazione dei dispositivi CoolRunner II può scendere fino a 3.5 ns. Xilinx offre anche software di sviluppo avanzato, come il WebFitter tool (basato su internet), per processare progetti codificati in Vhdl, Verilog, Abel, Edif e Xnf (Xilinx Netlist Format).

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome