L’evoluzione dei Dsp basati su Fpga

La qualità del prodotto finale e la gamma delle scelte progettuali, non è un mistero, dipendono in larga misura dalla qualità del materiale di base. Parecchie generazioni di Fpga hanno ospitato, al loro interno, migliaia di core Dsp che hanno consentito loro di garantire un'enorme potenza di calcolo. Nel corso degli anni il progetto di questi blocchi Dsp non ha subito sostanziali modifiche: lo sviluppatore poteva contare su moltiplicatori 18x18 o 18x25 a precisione fissa e utilizzare logica aggiuntiva presente nell'Fpga per concatenare i vari moltiplicatori al fine di supportare operazioni più complesse.

Una importante evoluzione
Il blocco Dsp ad alte prestazioni e ed elevata precisione integrato nei nuovi Fpga della serie Stratix V di Altera realizzati in tecnologia da 28 nm rappresenta un'evoluzione di notevole entità. Invece di utilizzare un approccio che prevede l'utilizzo di blocchi “a taglia unica”, questo nuovo blocco di elaborazione digitale dei segnali è caratterizzato da una precisione variabile. Una caratteristica di questo tipo consente di adattare l'architettura del blocco Dsp alle particolari esigenze dell'applicazione per la quale l'Fpga è stato realizzato. Differenti applicazioni richiedono diversi livelli di precisione: si passa dai sistemi di videosorveglianza (che richiedono precisioni dell'ordine di 9-12 bit) agli apparati di elaborazione ad alte prestazioni (che richiedono rappresentazioni in virgola mobile a doppia precisione). Il blocco Dsp a precisione variabile può supportare diverse modalità di funzionamento e integra numerose caratteristiche aggiuntive grazie alle quali viene garantito il completo supporto per i più svariati tipi di funzioni Dsp.

L'importanza della precisione
Un blocco Dsp a precisione variabile può supportare livelli di precisione compresi tra 9x9 a 27x27. La precisione di qualsiasi blocco all'interno di un certo percorso può essere impostata in maniera indipendente in modo da soddisfare le crescenti esigenze (in termini di numero di bit) di funzioni quali Fft e filtri Fir. L'adattamento del blocco Dsp alle esigenze di un determinato progetto è un'operazione semplice e garantisce un sensibile incremento di efficienza in quanto risulta possibile effettuare parecchie moltiplicazioni differenti (9x9 bit, 12x12 bit, ecc.) utilizzando un solo blocco.
Nel caso siano richieste ampiezze di bit superiori a 27 x 27 bit è possibile connettere più blocchi Dsp per realizzare funzioni di maggiori dimensioni. Esistono diverse modalità di moltiplicazioni a elevata precisione . Tali modalità garantiscono una più elevata precisione e un migliore sfruttamento delle risorse rispetto all'architettura del blocco Dsp delle precedenti generazioni grazie all'integrazione nel nuovo blocco Dsp di un percorso formato da addizionatori in cascata a 64 bit. Ciò contribuisce a migliorare sensibilmente l'efficienza nella realizzazione di funzioni di più ampie dimensioni e non richiede l'uso di logica aggiuntiva dell'Fpga, in modo da garantire un minor utilizzo di risorse, una riduzione dei consumi e un miglioramento delle prestazioni.

Il supporto ad algoritmi complessi
Il blocco Dsp a precisione variabile prevede anche caratteristiche aggiuntive atte a supportare algoritmi particolarmente complessi quali filtri Fir e Fft. In un filtro Fir simmetrico due campioni di dati vengono moltiplicati per un coefficiente comune: in un blocco Dsp a precisione variabile può essere usato un pre-addizionatore per sommare i due campioni prima della moltiplicazione in modo da ridurre il numero di moltiplicatori richiesto per un filtro Fir a due coefficienti (tap) a uno (invece di due). In funzione della modalità richiesta il pre-addizionatore opera in modalità doppia a 18 bit o semplice a 26 bit: esso può anche essere configurato come un sottrattore al fine di supportare funzioni quali la somma di differenze al quadrato. In molte applicazioni sono richieste operazioni di somma di prodotti: queste sono supportate da post-addizionatori che possono essere usate per effettuare operazioni di somma o sottrazioni in presenza di moltiplicazioni complesse o per realizzare addizionatori di maggiori dimensioni. Una diffusa architettura di filtro FIR, nota come architettura sistolica, utilizza un addizionatore di uscita distribuito che può essere realizzato interamente mediante post-addizionatori presenti nel blocco Dsp, eliminando il ricorso a circuiti addizionatori basati su logica programmabile indipendentemente dalle dimensioni del filtro Fir. Un'architettura di questo tipo non solo consente di risparmiare risorse logiche, ma anche di realizzare filtri Fir con Fmax (frequenza di clock) più elevata.

Flessibilità a tutto campo
Ciascun blocco Dsp a precisione variabile dispone di un accumulatore a 64 bit, il più ampio al momento disponibile. L'accumulatore supporta operazioni di incremento, decremento e pre-caricamento di elevata precisione. Oltre a ciò, la possibilità di effettuare un arrotondamento polarizzato sul risultato dell'accumulo finale consente di eseguire troncamenti di bit all'interno del blocco Dsp. Numerose funzioni Dsp, come filtri Fir e Fft, utilizzano coefficienti del moltiplicatore che solitamente sono immagazzinati nella memoria dell'Fpga esterna al blocco Dsp. Poiché parecchie funzioni implementate in hardware sono realizzate mediante strutture parallele o parzialmente parallele, il numero di coefficienti utilizzato per moltiplicatore è spesso ridotto. In situazioni di questo tipo, il blocco Dsp a precisione variabile mette a disposizione un banco di coefficienti interni di ampiezza pari a 27 bit (profondità 8) o un doppio banco di ampiezza pari a 18 bit (profondità 8). In questo modo non solo è possibile ottimizzare l'uso delle risorse di memoria, ma anche ridurre la congestione in fase di sbroglio e semplificare l'operazione di “timing closure” nel caso di progetti che richiedono elevate prestazioni.
Il blocco Dsp a precisione variabile è anche in grado di supportare operazioni di moltiplicazione seguite dalla somma di prodotti con ingressi esterni (modalità AxB+C). Il risultato finale può essere reso disponibile in uscita oppure accumulato con i risultati delle precedenti operazioni.
L'abbinamento di tali caratteristiche permette di creare un blocco Dsp flessibile ottimizzato in funzione dell'algoritmo invece di costringere il progettista a utilizzare una struttura inefficiente che preveda il ricorso a un moltiplicatore fisso poco efficace o adattare l'algoritmo alla logica Fpga e ai moltiplicatori Dsp disponibili. Nel caso un'implementazione Dsp in virgola fissa non soddisfi i requisiti in termini di range dinamico dell'applicazione, il passo successivo probabilmente sarà quello di valutare una realizzazione in virgola mobile. Il blocco Dsp a precisione variabile è stato espressamente ideato per supportare operazioni in virgola mobile. Un moltiplicatore in virgola mobile a precisione singola può essere implementato utilizzando solamente un blocco a precisione variabile configurato in modalità a elevata precisione, mentre una moltiplicazione a doppia precisione necessita solamente di due blocchi a precisione variabile. In abbinamento all'ampio portafoglio di blocchi IP in virgola mobile (che vanno dai semplici operatori come Add/Sub/Invert a moltiplicazioni matriciale complesse, inversione e Fft), Altera può mettere a disposizione soluzioni efficaci e complete per le operazioni in virgola mobile.

Ridurre i tempi e abbattere i costi
La riduzione dei tempi di progetto è un elemento chiave per abbattere i costi di ricerca e sviluppo. Lo sviluppo di un algoritmo può essere effettuato utilizzando software scritto in C per i calcoli in virgola mobile anche se oggigiorno parecchi sviluppatori preferiscono optare per un ambiente di valutazione algoritmico come Simulink/Matlab, grazie all'accelerazione delle fasi di sviluppo garantiti da tool di questo tipo. Il processo di trasferimento manuale dell'algoritmo finale in un formato Verilog o Vhdl per l'implementazione in un Fpga non è sicuramente un'operazione semplice: per questo motivo Altera mette a disposizione il tool “Dsp Builder Advanced Blockset” capace di automatizzare questo processo di conversione. Dsp Builder è un add-on di Simulink che genera automaticamente il linguaggio Hdl con il livello di pipelining e di multiplazione a divisione di tempo richiesto per soddisfare i vincoli a livello di latenza e di frequenza di clock impostati a livello di sistema in Simulink. Il risultato finale è un sistema che assicura un rapido sviluppo degli algoritmi per la piattaforma Fpga, con prestazioni e dimensioni di implementazione del tutto assimilabili a quelle ottenibili con il linguaggio Hdl ottimizzato a mano - specialmente se si utilizzano i nuovi blocchi Dsp a precisione variabile.
L'utilizzo di un Fpga come processore Dsp può soddisfare le esigenze di numerosi settori industriali e di una molteplicità di applicazioni, ciascuna delle quali con requisiti specifici in termini di prestazioni, precisione, blocchi IP e flusso di tool. Con la realizzazione di un blocco Dsp innovativo a precisione variabile in grado di adattarsi all'ampiezza dei bit richiesta e di tool di sviluppo ad alte prestazioni corredati da una nutrita gamma di blocchi IP per applicazioni Dsp, Altera mette a disposizione degli architetti di sistemi Dsp il materiale base di elevato livello qualitativo che permette lo sviluppo di futuri sistemi Dsp più efficienti e in grado di garantire prestazioni più spinte.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome