• Non ci sono risultati.

CAPITOLO 3

N/A
N/A
Protected

Academic year: 2021

Condividi "CAPITOLO 3"

Copied!
10
0
0

Testo completo

(1)

CAPITOLO 3

Analisi sistemi ibridi Dsp-Fpga

Tutte le schede, descritte si sono dimostrate uno strumento flessibile e potente per la realizzazione di sistemi di elaborazione per applicazioni sia di tipo intrachip che di tipo SoC (System On a Chip), che utilizzano dispositivi DSP e FPGA.

Fra le caratteristiche positive delle schede si possono citare:

Il numero elevato di risorse di elaborazione programmabili, sia hardware che software.

Il numero elevato di risorse di comunicazione (bus) fra i vari dispositivi di tipo FPGA e DSP e la loro disposizione funzionale entro la scheda.

La possibilità di trasferire i dati su bus ad elevate frequenze e utilizzando dei protocolli di comunicazione sincroni.

La disponibilità di reti di clock indipendenti e programmabili in vari modi, sia per la sorgente del segnale di clock, sia per la frequenza di tale segnale, specialmente nella Nallatech Ballynuey2.

(2)

La disponibilità di un ampio numero di connettori su scheda, per l'interfacciamento con dispositivi esterni.

Un aspetto negativo che bisogna considerare per quasi tutte le schede è la banda ridotta sul canale di comunicazione fra PC host e scheda (User FPGA), a causa dell'interfaccia PCI a 33 MHz

3.1 DSP-FPGA

L’approccio DSP e quello FPGA si differenziano fortemente; il DSP è un processore specializzato programmato tipicamente in C ma viene usato talvolta anche l’Assembler, specialmente quando non vengono soddisfatte le specifiche di real time.

Si adatta molto bene a compiti estremamente complessi ma è limitato nelle prestazioni dalla frequenza di clock e dal numero di operazioni utili che può svolgere ad ogni clock.

Come esempio si può prendere in considerazione un TMS320C6201, che ha due moltiplicatori e una frequenza di funzionamento di 200 MHz, così si possono raggiungere 400M moltiplicazioni al secondo.

Al contrario un FPGA è un “sea of gates”, che viene programmato connettendo i vari gates tra loro per formare multiplexer, registri, sommatori ecc…

(3)

Tutto questo è svolto a livello di diagramma a blocchi, e molti di questi possono essere di alto livello, si parte da un singolo gate fino ad arrivare a un FIR o FFT.

Le prestazioni in questo caso sono limitate dal numero di gates che possiede ciascun FPGA e dalla frequenza di clock, così, per esempio un 200K gate della Virtex con una frequenza di 200 MHz può implementare dieci moltiplicatori da 16 bit.

Quando si hanno alte frequenze di campionamento, oltre qualche MHz, un DSP può eseguire solo operazioni molto semplici sui dati mentre un FPGA non ha nessun problema.

Con basse frequenze di campionamento la situazione si inverte, il DSP può implementare in maniera massiccia programmi complessi che sarebbero difficili da far eseguire all’FPGA.

Infatti a basse frequenze il DSP risulta essere più funzionale, può mettere in coda i vari dati, assicurando che tutti quanti vengano elaborati, anche se sarebbero presenti delle latenze prima di venire trattati. [1]

Al contrario l’FPGA non può gestire così tanti dati, ciascuno di essi deve avere un hardware a lui dedicato anche se ogni singolo dato può essere trattato allo stesso tempo degli altri.

Se è richiesto un “context swith” il DSP può implementarlo diramandolo a una nuova parte del programma, mentre un FPGA ha

(4)

bisogno di costruire risorse dedicate per ciascuna configurazione. [1]

Se le configurazioni sono piccole allora possono coesistere allo stesso tempo nello stesso FPGA.

Configurazioni più grandi fanno sì che l’FPGA abbia bisogno di essere riconfigurato, processo che necessita di molto tempo.

Un DSP può prendere un programma standard in C ed eseguirlo. Questo codice C può avere un alto livello di complessità, cosa invece difficile da implementare con un FPGA.

Infine un FPGA è programmato come diagrammi a blocchi, dove il flusso dei dati è facilmente osservabile. Un DSP invece è programmato con un flusso sequenziale di istruzioni.

Molti sistemi di “signal processing” infatti nascono come diagramma a blocchi. Attualmente riportando il diagramma a blocchi ad un FPGA può risultare più semplice che convertirlo in codice C per il DSP.

Quindi quando si deve compiere una scelta fra DSP e FPGA la prima cosa da chiedersi è la frequenza di campionamento della parte del sistema interessata.

(5)

Si analizza se il sistema è già in codice C. Se così è un DSP può implementarlo direttamente; certo non sarà la soluzione con prestazioni migliori ma sarà molto più veloce a svilupparsi.

Un’altra cosa importante prima di effettuare una scelta è vedere la frequenza dei dati del sistema. Se è maggiore di 20-30 Mbyte per secondo allora l’FPGA sarà in grado di trattarli nel migliore dei modi.

Un aspetto importante che rende bene l’idea della differenza tra i due dispositivi è la presenza o meno di operazioni condizionate. Se non è presente nessuna di queste operazioni allora l’FPGA risulta perfetto. Se invece se ne riscontrano parecchie di queste operazioni un’implementazione software può essere l’ideale.

L’FPGA quindi viene usato quando abbiamo di fronte algoritmi ripetitivi mentre algoritmi più irregolari e meno standard vengono trattati con il DSP.

Un ulteriore analisi può essere fatta a seconda che il sistema usi o meno floating point. Infatti se così è questo fattore gioca in favore al DSP, nessun “core” della Xilinx ad esempio supporta floating point al giorno d’oggi, sebbene possa essere progettato personalmente.

Molti componenti complessi potrebbero non essere disponibili; sia i DSP che gli FPGA offrono librerie con blocchi base a disposizione come blocchi FIR e FFT,e questo può influenzare la decisione su un approccio anziché su un altro. In realtà molti sistemi sono composti

(6)

da tanti blocchi e, alcuni di questi sono meglio implementati nell’FPGA altri nel DSP.

3.2 Alcuni esempi

1-Filtro di decimazione in un ricevitore digitale wireless.

Tipicamente questo è un filtro CIC che opera alla frequenza di campionamento di 50-100 Mhz, composto da 10 registri dà un “add rate” di 500-1000MHz. A questa frequenza qualsiasi processore DSP troverebbe estremamente difficile realizzare qualsiasi compito. Avendo però il CIC una struttura estremamente semplice il modo più naturale per implementarlo sarebbe utilizzando un FPGA. Una frequenza di campionamento di 100 MHz sarebbe raggiungibile anche dal più piccolo FPGA che avrebbe anche altre risorse disponibili per altri processi.

2-Communications Protocol Stack-ISDN, IEEE1394 ecc…

Queste comunicazioni sono grosse parti di codice C, completamente inadattabili all’FPGA, mentre il DSP le implementerà facilmente. Non solo, può essere mantenuto ogni singolo codice di base permettendo al “code stack” di essere realizzato su un DSP.

(7)

3-Ricevitore digitale radio-banda base processing

Certi tipi di ricevitori richiederebbero FFT per l’acquisizione dei segnali e in seguito unire i filtri una volta che il segnale è acquisito. Entrambi i blocchi possono essere facilmente implementati dai due approcci.

Comunque c’è un cambiamento nel passaggio dell’acquisizione del segnale alla sua ricezione, per questo sarebbe meglio l’uso del DSP, visto che l’FPGA ha bisogno di implementare i due blocchi simultaneamente.

Bisogna aggiungere che un processing in radio frequenza si sviluppa meglio in un FPGA, proprio per questo si potrebbe pensare ad un utilizzo di un sistema misto, anche se al giorno d’oggi si riescono a trovare in commercio FPGA in grado di realizzare il sistema autonomamente senza l’utilizzo di un DSP.

4-Image processing

Nel caso dell’ “image processing” la maggior parte delle operazioni sono semplici e molto ripetitive, la prima scelta cade sull’FPGA. Comunque una pipeline di immagini è spesso utilizzata per identificare quelli che in gergo vengono definito “blobs” o regioni di interesse presenti nell’oggetto analizzato.

(8)

Le “blobs” possono essere di diverse dimensioni e i processi che seguono tendono a essere più complessi, così la pipeline di immagini può essere elaborata con un DSP.

5-Filtri digitali

Gli algoritmi di filtraggio digitale sono solitamente implementati su processori DSP oppure, quando i requisiti impongono elevate frequenze di campionamento, su ASIC appositamente progettati.

L’implementazione di questi filtri su FPGA molte volte permette di raggiungere prestazioni significativamente superiori a quelle basate su DSP tradizionali e, per volumi di produzione moderati, costi molto più bassi, essendo del tutto assenti i costi NRE (non-recurring engineering costs) che sono molto forti nel caso ASIC (anche decine di milioni di dollari per un ASIC nelle ultime tecnologie disponibili).

Vi sono poi dei vantaggi secondari, dovuti al fatto che gli FPGA possono essere riprogrammati sul posto, rendendo così possibile il miglioramento delle funzionalità offerte dal prodotto e l’adattamento a nuove condizioni operative o nuovi standard approvati nel frattempo, allungando sostanzialmente la vita utile del prodotto, cosa impossibile per DSP e ASIC. [1]

(9)

1- La densità raggiunta dai dispositivi disponibili, anche se al momento il problema può essere fortemente dimensionato con l’acquisto di ottime FPGA come quelle montate nella scheda QUADIA ad esempio, realizzate della Virtex II Pro e contenenti più di 44000 blocchi logici capaci di realizzare moduli di elevata complessità.

Bisogna sottolineare che una delle caratteristiche più vantaggiose degli FPGA è la possibilità di confrontare le prestazioni di diverse architetture senza alcun costo di produzione e senza tempi di attesa.

2- L’architettura impone un numero significativo di vincoli sulle funzioni logiche realizzabili all’interno di ogni blocco logico e sui ritardi dell’instradamento dei segnali all’interno dell’array.

L’elemento base di un filtro digitale è l’unità MAC (multiply and accumulation unit), un blocco funzionale in grado di eseguire il prodotto tra il dato di ingresso e il coefficiente del filtro digitale, e di sommare poi il risultato della moltiplicazione in un registro di accumulazione

Un FPGA non possiede la velocità che può avere un circuito integrato ASIC a pari tecnologia, paga infatti la completa riconfigurabilità con la presenza di un numero elevato di risorse di interconnessione, ovvero alcune net che attraversano tutto l’FPGA con i relativi driver, ed altre risorse di interconnessione locali.

(10)

FPGA ritardi superiori rispetto a quelle di un DSP o volendo un chip ASIC.

Questo però non toglie al costruttore la possibilità di realizzare particolari linee interne dedicate con driver rinforzati e capacità parassite più basse per assolvere ad alcune funzioni, come la distribuzione del clock o, il calcolo e la propagazione del carry nelle addizioni.

Il trattamento digitale dei segnali su FPGA è diventata una soluzione di riferimento anche in ambito video. Il consolidamento di questo tipo di soluzione è così elevato che Xilinx rende disponibile un prodotto software denominato System Generator for DSP [2], che permette di completare tutte le fasi di progettazione, simulazione, implementazione e verifica di un sistema DSP basato su FPGA all’interno di un unico ambiente di lavoro di tipo MATLAB/Simulink.

Riferimenti

Documenti correlati

Al fine di comprendere il funzionamento del presente modulo nella seconda modalità si evidenzia che esso realizza una sorta di sistema adattivo per la generazione delle parole di

Nel caso in esame, osservando che nelle funzioni di Bessel il valore di riferimento della portante non modulata, cioè J 0 con m=0 è uguale a 1, si stabilisce di considerare come

 provocare, mediante i terminali asincroni di CLEAR l’azzeramento di tutti i bistabili dopo il numero prefissato di impulsi di clock; in questo modo, se si vuole dividere

• La risposta di un sistema Lineare Tempo Invariante ad un Ingresso Sinusoidale, se tale ingresso non coincide con un modo naturale del sistema, è costituita dalla somma di una

La descrizione della composizione in frequenza dei segnali sonori può essere condotta valutando il contenuto di energia sonora all’interno di prefissati intervalli

[r]

Il grafico della funzione di amplificazione di Valco S.Paolo è in realtà costituito dai grafici di 7 funzioni, ognuna corrispondente ad un moto di input.. Le 7 funzioni sono del

le osservazioni equidistanti dalla mediana (coincidente in questo caso col massimo centrale) presentano la stessa.