SmartFusion: la combinazione ideale

LOGICHE PROGRAMMABILI –

I progettisti di sistemi embedded possono utilizzare una soluzione su chip singolo che mette a disposizione una combinazione ottimale tra logica programmabile, circuiti analogici programmabili e un core di microcontrollore basato su un’architettura a 32 bit ai vertici prestazionali.

Nel momento in cui ci si accinge allo sviluppo di una tradizionale applicazione embedded, i cataloghi dei principali produttori di semiconduttori potrebbero rappresentare la via più breve. Il progettista non solo può scegliere tra una molteplicità di architetture di processore – che rappresenta il nucleo principale di un gran numero di progetti embedded – ma anche tra un numero praticamente illimitato di combinazioni di periferiche, porte di comunicazione e funzioni analogiche. Ciò testimonia la varietà delle applicazioni embedded che, nonostante la possibilità di scelta tra un gran numero di componenti standard, raramente vengono implementate sotto forma di una soluzione su chip singolo. Molto spesso, il risultato degli sforzi progettuali è rappresentato da un microcontrollore corredato da altri chip di supporto. Questi ultimi sono spesso logiche programmabili, necessarie per la realizzazione di funzioni logiche specifiche non disponibili sul microcontrollore e circuiti analogici indispensabili per l’interfacciamento con i segnali provenienti dal mondo reale. La scelta tra insieme di caratteristiche limitate e predefinite è solo una delle ragioni che non permettono, se non in rari casi, di ottenere una soluzione su chip singolo. Tra le altre si può annoverare la mancanza di flessibilità nel momento in cui intervengono modifiche di progetto: tanto più esatta è la corrispondenza con le specifiche iniziali, tanto minore è la possibilità di adattamento al variare delle richieste, evento questo che si verifica molto spesso nel corso della fase di sviluppo. Una volta che la soluzione viene implementata facendo ricorso a più chip, aumentano i problemi legati alla sicurezza. La presenza di piste visibili all’interno del chip a livello di scheda e l’assenza di algoritmi di cifratura a livello di codice della Cpu e/o dei dati di configurazione dell’Fpga rendono l’intero progetto vulnerabile ad eventuali fenomeni di pirateria. Grazie all’introduzione dei dispositivi della linea SmartFusion di Actel, i progettisti possono ora utilizzare una soluzione su chip singolo che mette a disposizione una combinazione ottimale tra logica programmabile, circuiti analogici programmabili e un core di microcontrollore basato su un’architettura a 32 bit sicuramente ai vertici a livello di prestazioni. La flessibilità insita nella possibilità di personalizzare le funzioni sia analogiche sia digitali, unitamente alla programmabilità via software del processore Cortex-M3 di Arm, vengono supportate da una toolchain altrettanto sofisticata.

L’integrazione di tre tecnologie
L’investimento strategico effettuato da Actel nel processo flash di tipo non volatile ha permesso per la prima volta l’integrazione di tre distinte tecnologie. Alcuni dei vantaggi legati a questa integrazione sono abbastanza ovvii: in un dispositivo che può venire programmato via flash i dati di configurazione per la logica programmabile e il codice del programma per il microcontrollore sono memorizzati permanentemente on-chip: in tal modo esso è immediatamente disponibile all’accensione senza dover aspettare il caricamento dei dati di configurazioni ospitati in una Eeprom adiacente. Ciò contribuisce in larga misura a risolvere il problema della sicurezza delle proprietà intellettuali: poiché i dati di configurazione non sono esposti nel momento in cui vengono istradati tra i dispositivi, non possono venire intercettati o sottratti. Un ulteriore livello di protezione deriva dalla semplicità con la quale è possibile impedire la lettura della memoria flash una volta che questa è stata programmata, funzionalità questa che nei dispositivi Actel viene denominata FlashLock. Grazie infine alla possibilità di programmare i dispositivi in piccoli lotti, oppure in-system alla fine del processo produttivo, i circuiti integrati basati su flash rappresentano la soluzione ideale per volumi di produzione medio/piccoli, tipici di parecchi progetti embedded. La stessa tecnologia di processo assicura altri vantaggi. La tecnologia flash richiede tensioni di valore elevato (rispetto a un processo puramente Cmos) per le operazioni di programmazione e di cancellazione, ragion per cui la capacità di monitorare elevati livelli di tensione analogica è insita nel processo stesso. Il processo adottato da Actel permette l’isolamento tra i blocchi presenti nel chip (per mezzo di una struttura di tipo triple-well), in modo da consentire il posizionamento fianco a fianco di blocchi analogici e digitali senza dar luogo a problemi di interferenza tra di essi. In un contesto a segnali misti, inoltre, le funzioni di natura prettamente analogica sono contraddistinti da specifiche eccellenti per quanto concerne parametri quali offset e rumore. Per quanto concerne le risorse analogiche, i dispositivi SmartFusion possono contare su un massimo di tre convertitori A/D ad approssimazioni successive a 12 bit che possono operare fino a 500 ksample/s (ksps) alla massima risoluzione. Ciascun convertitore A/D ha un corrispondente convertitore D/A sigma delta del primo ordine caratterizzato da una velocità di aggiornamento di 500 Ksps e risoluzione effettiva a 12 bit. Un nuovo elemento programmabile è rappresentato dal blocco Scb (Signal Conditioning Block) che include funzioni quali monitoraggio di precisione di alte tensioni e correnti, monitoraggio di temperatura e comparatori ad alta velocità (50 ns). Il circuito di monitoraggio delle alte tensioni, denominato Abps(Active Bipolar PreScaler), permette di controllare tensioni nell’intervallo compreso tra -11,5 e +14 V. I circuiti per il monitoraggio delle tensioni amplificano la caduta di tensione misurata ai capi di un resistore di rilevamento esterno di valore ohmico basso, mentre il monitor della temperatura esterna interpreta la caduta di tensione del diodo usato come sensore. Tutte le funzioni analogiche sono completamente programmabili, sia in termini di configurazione funzionale che di valori parametrici, all’interno di un ambiente software basato su Gui (Graphical User Interface), compatibile con i tool di progetto per la configurazione dell’Fpga presente a bordo. I dispositivi SmartFusion hanno a disposizione un massimo di 500k gate di logica programmabile identica a quella utilizzata nella famiglia di Fpga basati su flash ProASIC3. In grado di operare a una frequenza di 350 MHz, questa logica dispone di un massimo di 108 kb di Sram. È altresì disponibile un gran numero di I/O digitali in grado di operare fino a 350 MHz, mentre viene garantito il supporto dei livelli di I/O previsti dalle più diffuse interfacce standard (come ad esempio Lvds, Lvpecl, Pci/PciX) e la possibilità di pilotare correnti fino a 24 mA. In fase di progettazione è possibile utilizzare la toolchain Hdl (Hardware description Language) di Actel, Libero Ide (Integrated design Environment) per generare funzioni logiche in hardware, oppure adottare un approccio di tipo drag&drop sfruttando la Gui. Questa modalità consente di importare rapidamente blocchi IP predefiniti che potrebbero essere elementi riutilizzati da precedenti progetti o essere funzioni delle librerie fornite da Actel, oppure ancora blocchi IP sviluppati da terze parti.

La sezione microcontrollore
La logica completamente configurabile e le funzioni analogiche risiedono sul chip unitamente a una sezione microcontrollore basato su Cortex-M3 di Arm. Così come i blocchi logici e lineari garantiscono prestazioni del tutto assimilabili a quelle offerte da circuiti integrati discreti, il processore Cortex-M3 di Arm è un’implementazione completa dello stesso processore: si tratta infatti di un core “hard” e non di una versione “soft” programmata su una sezione della logica dell’Fpga. Operante a velocità di clock di sistema di 100 MHz, il core garantisce prestazioni pari a 125 DMips e mette a disposizione fino a 512 kb di memoria flash e 128 kb di Sram. Esso dispone di tutte le risorse sufficienti per far girare algoritmi complessi, come ad esempio quelli relativi al controllo di precisione di un motore o anche al controllo multi-asse di parecchi motori. In alternativa, in un’applicazione di gestione del sistema, esso potrebbe effettuare la supervisione di operazioni quali monitoraggio di tensione, sequenzializzazione, controllo di una ventola e la gestione degli associati compiti ausiliari disponendo contemporaneamente della potenza richiesta per far girare un compito di più alto livello relativo alla specifica applicazione. Trattandosi di un core Cortex-M3 completo, è corredato da un’ampia gamma di periferiche tra cui controllore Mac (Media Access Controller) Ethernet 10/100 e altre interfacce quali Spi, I2C e Uart. Le linee di I/O a segnali misti operano a una frequenza massima di 180 MHz e sono in grado di pilotare fino a 6 mA di corrente. Tra le altre risorse a disposizione del progettista si possono annoverare clock in real-time, watchdog timer, controllore Dma a 8 canali e un controllore di memoria esterna per la memorizzazione di ulteriore codice o dati. Per ottimizzare lo sfruttamento dell’area di silicio, questo insieme di periferiche è cablato, ma il progettista può ampliarlo e adattarlo mediante la codifica di qualsiasi altra funzione supplementare nella logica programmabile contigua. Il processore Cortex-M3 è strettamente connesso alla struttura dell’Fpga attraverso la medesima struttura di bus AHB a cinque livelli, capace di garantire un throughput massimo di 16 Gbps. Questo bus AHB si collega alle periferiche del microcontrollore attraverso i ponti Apb: in questo modo tutte le risorse del chip sono connesse mediante la classica tecnologia di interconnessione di Arm. Nonostante l’immediata disponibilità di tutta questa potenza di elaborazione, una chiara testimonianza della flessibilità dell’architettura SmartFusion  è data dal fatto che parecchi compiti di elaborazione che riguardano la sezione di front end non richiedono l’intervento del processore Cortex-M3. Un elemento completamente nuovo presente on chip è l’Analog Compute Engine. Si tratta di un blocco semi-autonomo in grado di eseguire un gran numero di pre e post elaborazioni analogiche, compreso il campionamento e la messa in sequenza del processo di acquisizione dei segnali, senza richiede l’intervento del processore Cortex-M3. Questa nuova linea di dispositivi mette a disposizione dei progettisti di sistemi embedded un soluzione su chip singolo totalmente configurabile per quel che concerne la parte hardware e completamente programmabile sotto l’aspetto software, sfruttando tutte le risorge di progettazione del codice che l’architettura Arm è in grado di controllare. I chip sono corredati da una serie di tool familiari sia a coloro che scrivono il codice, sia ai progettisti dell’interfaccia analogica sia ai programmatori RTL e rappresentano anche un valido ausilio per tutti questi specialisti nel momento in cui essi desiderano ampliano le loro competenze in tutti i tre domini - Fpga, core Arm e analogici. 

Pubblica i tuoi commenti