Come trasformare il silicio con la riconfigurazione dinamica

Dalla rivista:
Elettronica Oggi

 
Pubblicato il 24 novembre 2009

La riconfigurazione dinamica comporta numerosi vantaggi, tra cui una migliore utilizzazione delle risorse disponibili in un sistema embedded grazie alla capacità di configurare nuove funzioni e la possibilità di adattamento mediante la modifica della struttura del sistema stesso

Nelle applicazioni embedded è definita riconfigurabile un’architettura che consente la modifica dei suoi componenti e delle interconnessioni tra di essi. Le modifiche possono interessare una parte oppure l’intera piattaforma e tutti gli stati finali sono definiti e controllati dal sistema. Quando questa riconfigurazione avviene in tempi brevi e può essere effettuata durante il funzionamento (run time) viene chiamata riconfigurazione dinamica.

Quest’ultima consente una migliore utilizzazione delle risorse grazie alla possibilità di configurare nuove funzioni per soddisfare le esigenze di un processo imminente. Essa inoltre è in grado di conferire doti di adattabilità consentendo al sistema di modificare la propria struttura per risolvere determinati problemi o di introdurre caratteristiche non previste nel momento in cui un progetto è stato ideato. L’architettura di un dispositivo Fpga è in grado di supportare la riconfigurazione dinamica e gli sviluppatori stanno già sfruttando le potenzialità di questo approccio nello sviluppo di nuovi prodotti al fine di incrementare l’efficienza delle risorse integrate in un sistema.

Una soluzione “pronta all’uso”
Gli Fpga (Field Programmable Gate Array) includono blocchi logici programmabili e interconnessioni che possono essere programmate per eseguire funzioni che spaziano dalle banali combinazioni logiche alle più complesse elaborazioni matematiche. L’unico limite al tipo e alla complessità delle elaborazioni che è possibile supportare nello stesso momento è rappresentato dal numero dei blocchi logici disponibili in un Fpga.

In un sistema che non prevede l’esecuzione simultanea di tutte le elaborazioni – una situazione questa peraltro abbastanza comune - il medesimo insieme di blocchi logici può essere programmato per espletare differenti elaborazioni in istanti di tempo diversi. Questi blocchi logici possono essere riutilizzati un numero qualsiasi di volte purché l’FPGA contenga una risorsa statica (formata da blocchi logici specifici) che resti invariata ed effettui il monitoraggio della programmazione dei blocchi rimanenti. Grazie a questo principio è possibile da un lato aumentare il numero di funzioni che un Fpga è in grado di supportare e dall’altro consentire agli sviluppatori di utilizzare componenti più economici che contribuiscono a ridurre il costo dei prodotti finali.

La riconfigurazione dinamica nei microcontrollori
Nelle applicazioni embedded gli Fpga non sono gli unici dispositivi che utilizzano la riconfigurazione per ottimizzare l’impiego delle risorse disponibili. Attuato in maniera adeguata, il riutilizzo delle risorse durante il funzionamento può rappresentare un modello di riferimento anche per il settore dei microcontrollori a basso costo.

Una piattaforma che integra risorse flessibili può consentire agli sviluppatori di prendere decisioni in tempi brevi e di selezionare componenti di ingombri più contenuti per i loro prodotti. Nel momento in cui dispositivi come convertitori D/A, filtri e temporizzatori vengono realizzati utilizzando il medesimo hardware, risulta possibile ricorrere a circuiti integrati più piccoli e meno costosi con una conseguente drastica riduzione del numero di componenti richiesti. La disponibilità di un hardware flessibile, inoltre, permette di individuare e risolvere problemi hardware nonché di introdurre nuove caratteristiche per mezzo di appropriate revisioni firmware.

Per esempio, un semplice circuito richiesto in un sistema di allarme anti-incendio può trarre notevoli benefici dalla riconfigurazione dinamica. In condizioni normali il convertitore A/D del microcontrollore effettua un monitoraggio costante della tensione ai capi di una camera di ionizzazione alla ricerca di segnali di fumo. Una volta rilevato il fumo, il convertitore A/D non svolge più alcune funzione e le risorse utilizzate per la sua creazione possono essere reimpiegate per generare una periferica PWM. Modem e radio bidirezionali spesso utilizzano un hardware differente per la trasmissione e la ricezione. Questi dispositivi possono sfruttare la medesima infrastruttura per funzionare in entrambe le modalità, riducendo in tal modo il numero di componenti di supporto richiesti.

Un microcontrollore in grado di riconfigurare le sue risorse deve essere sviluppato seguendo il medesimo approccio utilizzato per un Fpga. In sintesi il dispositivo deve garantire il livello di integrazione di un circuito ASIC abbinato alla configurabilità di un Fpga mantenendo nel contempo le modalità d’utilizzo tipiche di un microcontrollore.

Fig. 1 – Esempio di architettura che mette in relazione le tre tecnologie, ovvero Fpga, MCU e ASIC

Nella figura 1 viene riportata un’architettura che mette in relazione le tre tecnologie, ovvero Fpga, MCU e ASIC. Il microprocessore costituisce l’elemento fondamentale della piattaforma e permette agli sviluppatori di accedere a un banco di registri di comunicazione e di configurazione. Tali registri controllano il comportamento dei blocchi analogici e digitali, che risultano agnostici per quel che concerne la funzionalità. Essi inoltre costituiscono le risorse base richieste per la realizzazione di funzioni di livello più elevato e, in linea di principio, sono assimilabili ai blocchi logici di un Fpga. I banchi di registri controllano anche le possibili interconnessioni tra i blocchi e con ogni pin. La possibilità di collegare i blocchi tra di loro consente la creazione di moduli più complessi, che possono essere anche di tipo ibrido (ovvero un misto di funzioni analogiche e digitali). Un insieme di registri presente nella matrice consente ai blocchi di trasferire i dati verso il microprocessore. In questa configurazione il microprocessore, unitamente alle principali risorse del sistema come clock, memoria e interfacce di programmazione, costituiscono la porzione statica della piattaforma che esegue il monitoraggio e il controllo della riconfigurazione dei blocchi durante la fase di avviamento (boot-up) e di esecuzione. Le risorse analogiche e digitali sono in grado di espletare le medesime funzionalità delle periferiche dei microcontrollori tradizionali.

Risorse digitali
I blocchi base digitali possono essere realizzati utilizzando il progetto di una Alu (Arithmetic Logic Unit) che controlla il flusso di dati all’intermo di un insieme di registri a n-bit annidati. Nella figura 2 viene riportata un diagramma ad alto livello di una risorsa di questo tipo, come pure i registri di configurazione per l’impostazione della tabella di ricerca che definisce la funzionalità del blocco digitale.

Fig. 2 - Schema ad alto del blocco digitale insieme ai registri di configurazione per l’impostazione della tabella di ricerca che definisce la funzionalità del blocco stesso

I medesimi registri possono anche consentire di scegliere differenti sorgenti di dati e di clock. La possibilità di scegliere i clock permette all’utente di controllare la velocità di temporizzazione di risorse quali timer o PWM, mentre quella di scegliere le sorgenti dei dati consente ai blocchi di essere collegati a pin esterni o ad altri blocchi. La possibilità di connettere i blocchi gli uni agli altri conferisce doti di scalabilità e permette la generazione di funzioni più complesse. Ipotizzando che un blocco digitale sia realizzato attorno a un registro a 8 bit, la disposizione in cascata di più blocchi permette la generazione di timer a 16 bit o contatori a 32 bit.


Risorse analogiche

Allo stesso modo in cui un blocco digitale utilizza un registro a n bit come base per l’implementazione di differenti funzioni, i componenti analogici possono essere realizzati a partire da un blocco base comune quanto fondamentale: l’amplificatore operazionale. Questo semplice componente viene usato in una vastissima gamma di circuiti analogici: inverter, amplificatori, comparatori e filtri sono solo alcuni dei numerosi esempi di funzioni che possono essere ricavate dall’unione di un amplificatore operazionale con differenti componenti passivi. Una risorsa analogica che vuole anche essere flessibile deve agire alla stregua di una piastra prototipale equipaggiata con un amplificatore operazionale il cui compito è semplificare la realizzazione di differenti circuiti.

Fig. 3 - Schema ad alto livello di una serie di commutatori controllabili tramite registri che definiscono le funzionalità del blocco analogico

Nella figura 3 viene riportato un diagramma ad alto livello commutatori controllabili tramite registri che definiscono le funzionalità del blocco analogico. I multiplexer consentono agli ingressi dell’amplificatore operazionale di connettersi a un insieme di tensioni di riferimento programmabili o a pin esterni o ad altri blocchi. Le matrici resistive consentono un ulteriore controllo delle tensioni di alimentazione e della retroazione. La possibilità di effettuare connessioni tra i blocchi consente inoltre di realizzare di funzioni analogiche di ordine più elevato. Con un setup di questo tipo un microcontrollore può disporre di periferiche molto comuni come convertitori A/D e comparatori ed essere in grado di gestire funzioni come ad esempio amplificatori di guadagno e filtri Butterworth.

I blocchi analogici e digitale che vengono generati devono poter essere sfruttati per molteplici utilizzi, alcuni intrinsecamente di tipo general purpose. Il progetto di un sistema di questo tipo non può dunque essere ottimizzato per una specifica applicazione. In considerazione dell’elevato grado di flessibilità e della sensibile riduzione del numero di componenti richiesti che è in grado di offrire, un’implementazione di questo tipo rappresenta una valida alternativa nel momento in cui si vogliono ottenere livelli ragionevoli di velocità e accuratezza da parte delle periferiche del microcontrollore.

La riconfigurazione dinamica per applicazioni embedded
I recenti progressi a livello tecnologico hanno portato allo sviluppo di dispositivi flessibili come ad esempio i PSoC (Programmable System-on-Chip) espressamente ideati per supportare il concetto di riconfigurazione. Dispositivi di questo tipo mettono a disposizione un insieme di blocchi analogici e digitali unitamente a un sistema di interconnessione programmabile. I blocchi digitali possono essere impostati ad esempio come timer, contatori, PWM, generatori pseudo-randomici, circuiti per la verifica di ridondanza ciclica (CRC) e interfacce UART, SPI e I2C. Allo stesso modo i blocchi analogici possono essere impostati per dar vita ad amplificatori a guadagno programmabile, convertitori A/D e D/A, comparatori, filtri e numerosi altri componenti. Il chip consente inoltre di effettuare la riconfigurazione dinamica poiché la funzione del blocco può essere rimpiazzata durante il funzionamento.

I blocchi analogici e digitali richiedono configurazioni differenti e in un certo senso “intelligenti” per la creazione di periferiche che possano risultare utili. I tool software rappresentano un valido ausilio per l’utilizzatore nelle fasi di assegnazione dei registri di configurazione all’interno di una piattaforma. I tool di sviluppo che supportano la riconfigurabilità permettono agli utilizzatori di evitare di dover approfondire la conoscenza delle periferiche e dell’architettura del microcontrollore. Questi tool mettono a disposizione moduli API (Application Programming Interface) che contengono codice già pronto per la produzione grazie al quale è possibile lanciare e utilizzare le piattaforme realizzate su una piattaforma di silicio flessibile. Grazie a un’interfaccia intuitiva, esso dà vita al framework firmware richiesto per riconfigurare dinamicamente alcune o tutte le risorse disponibili durante il funzionamento.

Un esempio concreto
La riconfigurazione dinamica consente di implementare la funzione di una ventola con motore c.c. brushless utilizzando quattro blocchi digitali e due analogici al fine di garantire un funzionamento uniforme delle pale. Due dei quattro blocchi digitali vengono impiegati come PWM a 16 bit preposti al controllo dei FET. I blocchi rimanenti possono essere modificati per soddisfare differenti esigenze in diversi istanti di tempo. Poiché la ventola contiene un sensore a effetto Hall, l’abbinamento tra un amplificatore di guadagno e un comparatore serve a generare un interrupt quando il rotore si sposta oltre una particolare posizione.

Nel periodo di tempo che intercorre fino al momento in cui è necessario utilizzare nuovamente il circuito di rilevamento della posizione, i blocchi restanti vengono utilizzati per misurare la corrente attraverso le bobine e la temperatura circostante. Nel tempo “passivo” in attesa della prossima rivoluzione, il medesimo hardware viene impiegato ancora per creare un tachimetro che misura la velocità della ventola. In questo modo un ridotto numero di risorse di elaborazione può essere riconfigurato dinamicamente per soddisfare parecchie richieste delle periferiche nell’intervallo tra due rivoluzioni della ventola che ruota a una velocità di 10.000 rpm.
 

Rakesh Reddy, Cypress Semiconductor



Contenuti correlati

  • Altera
    Le innovazioni di Altera basate su FPGA

    Altera ha recentemente fornito nuovi dettagli sui suoi FPGA Agilex 3 di nuova generazione e ha annunciato nuovi kit di sviluppo e supporto software per gli FPGA Agilex 5. Gli FPGA Agilex 3 sono progettati per soddisfare...

  • Microcontrollori per impianti industriali di alta fascia

    Nelle applicazioni di robotica e negli azionamenti industriali, che richiedono la diversificazione tecnologica, la massima potenza di calcolo ed elevati livelli di sicurezza, il microcontrollore riveste un ruolo essenziale Leggi l’articolo completo su EO520

  • Microprocessori multicore a 64-bit per l’“intelligent edge”

    Microchip Technology ha introdotto la gamma di MPU PIC 64 per soddisfare le crescenti esigenze degli odierni progetti embedded Leggi l’articolo completo su EMB93

  • 5 prodotti OSHW per progetti embedded flessibili e personalizzabili

    Optare per un hardware open source significa credere nel potenziale di innovazione, accelerazione e trasformazione di ciascun prodotto o progetto, che deriva da una maggior capacità di controllo sulla tecnologia e dalla condivisione di conoscenze. Le prospettive...

  • Lattice
    Lattice amplia la sua gamma di FPGA

    Lattice Semiconductor ha aggiunto alla sua offerta di dispositivi small FPGA i nuovi componenti logic-optimized Certus-NX-28 e Certus-NX-09. Questi dispositivi general-purpose sono basati sulla piattaforma FPGA Nexus e sono caratterizzati da consumi ridotti e ingombri limitati. I...

  • Presto Engineering
    Presto Engineering ottiene la certificazione ISO 13485 per dispositivi medici

    Presto Engineering ha ottenuto certificazione EN ISO 13485. La certificazione è relativa all’hub danese di Presto e assicura che i suoi servizi di progettazione e produzione ASIC soddisfino costantemente le aspettative dei clienti dei dispositivi medici e...

  • Infineon
    MCU PSOC Control da Infineon

    Infineon Technologies ha presentato una nuova serie di microcontrollori per applicazioni di controllo motore industriali e consumer di nuova generazione, utilizzabile anche per sistemi di conversione di potenza. La nuova famiglia Infineon PSOC Control, basata sul core...

  • Microcontrollori per applicazioni spaziali

    I microprocessori dedicati alle applicazioni spaziali sono essenziali per le missioni e le immunità alle radiazioni, è uno dei principali fattori che guidano la loro progettazione Leggi l’articolo completo su EO519

  • Gowin
    GOWIN amplia la famiglia di FPGA Arora-V

    GOWIN Semiconductor ha presentato GW5AT-15, il più recente componente della famiglia FPGA Arora-V. Si tratta di una soluzione di bridging programmabile ad alta velocità per applicazioni nei settori dell’elettronica di consumo e automobilistico come per esempio il...

  • Progettare veicoli spaziali con FPGA “radiation-tolerant” riconfigurabili ad alta affidabilità

    Un esame delle diverse tecnologie FPGA disponibili per applicazioni spaziali e del processo di sviluppo dei componenti Leggi l’articolo completo su EO518  

Scopri le novità scelte per te x