Esempio di progettazione del filtro di decimazione riconfigurabile

Consigliato per:

  • Dispositivo: sconosciuto

  • Quarzo®: v9.1

author-image

di

Questo esempio dimostra come implementare un filtro di decimazione a tasso variabile a più canali nell'intel® DSP Builder Advanced Blockset. Per molti sistemi di imaging medico, tra cui l'ecografia e la risonanza magnetica (MRI), è necessario un filtro di decimazione riconfigurabile per ridurre la frequenza di campionamento dei dati eco. I dati di input hanno una frequenza di campionamento fissa; tuttavia, il tasso di decimazione intero deve essere cambiato in tempo reale. Inoltre, la lunghezza totale del filtro cresce linearmente con il tasso di decimazione. Requisiti simili possono applicarsi nelle applicazioni di comunicazione wireless e in altri sistemi. La struttura polifase è altamente ottimizzata per questo tipo di applicazioni, perché il numero di moltiplicatori è fissato in fase di compilazione e non cresce con l'aumento della velocità. Le caratteristiche principali di questo design sono i rubinetti di ritardo a lunghezza variabile e l'efficiente storage dei coefficienti di filtro.

Caratteristiche

Questo esempio di progettazione presenta le seguenti caratteristiche principali:

  • Supporto per i tassi di decimazione dei numeri interi arbitrari, inclusi i casi senza variazione del tasso di campionamento
  • Supporto per un numero arbitrario di canali, velocità di clock arbitrarie e velocità di campionamento di input, purché la frequenza di clock sia sufficientemente elevata da elaborare tutti i canali in un unico datapath, o in altre parole, senza duplicazione hardware
  • Supporto per la riconfigurazione in fase di esecuzione dei tassi di decimazione
  • Utilizzo di due banchi di memoria per l'archiviazione dei coefficienti di filtro invece dei coefficienti di pre-archiviazione per tutte le velocità nella memoria. Questa funzione consente di aggiornare una banca di memoria mentre la progettazione legge i coefficienti dall'altra banca
  • Controllo in tempo reale del ridimensionamento nel datapath della risposta a impulso finito (FIR)

Descrizione funzionale

Il design utilizza una struttura di filtro di decimazione della polifase in forma diretta ed è mostrato nella Figura 1. Il controller dell'indirizzo genera l'indirizzo di lettura della memoria del coefficiente, un selettore di banca e l'indirizzo di scrittura dei tocchi di ritardo variabile. I coefficienti sono memorizzati in blocchi di RAM su chip. I rubinetti di ritardo variabili sono implementati anche nelle memorie a doppia porta e il suo puntatore è controllato dall'attuale tasso di decimazione. Viene utilizzato un numero fisso di moltiplicatori.

Figura 1. Diagramma a blocchi del decimatore a tasso variabile.

I blocchi di ritardo del tocco variabile in questo esempio hanno una profondità riconfigurabile in fase di esecuzione. Pertanto, sono implementati come memorie elastiche utilizzando blocchi di RAM su chip. Ogni tap di ritardo viene allocato in base al caso peggiore. Il numero effettivo di ritardi in un blocco di tap di ritardo si basa sulla frequenza di decimazione corrente. Un singolo puntatore o segnale di indirizzo viene utilizzato sia per le operazioni di lettura che di scrittura nel tocco di ritardo. Pertanto, leggerete e scrivete nella stessa posizione di memoria. La RAM a due porte è configurata per leggere i vecchi contenuti di memoria, realizzando così un ritardo di un certo numero di cicli.

Questo design utilizza solo due banchi di memoria, di cui uno aggiornato mentre l'altro viene letto. È necessaria un'interfaccia del processore per realizzare il reload dei coefficienti in fase di esecuzione.

Nello script di configurazione per questo design, abbiamo definito la frequenza di clock, la frequenza di decimazione, la lunghezza del filtro, il motore moltiplicatore ecc. La gestione bit-width è anche basata su script per la parametrizzazione. I parametri principali e le relative definizioni sono elencati nella tabella seguente.

Tutti i parametri possono essere modificati per indirizzare diversi progetti. I nuovi codici HDL verranno generati in base ai parametri aggiornati.

Per ulteriori informazioni sulla progettazione di filtri di ricampionamento in DSP Builder Advanced Blockset, fare riferimento a AN 623: Utilizzo del blocco avanzato DSP Builder per implementare i filtri di ricampionamento (PDF).

Scaricare i file utilizzati in questo esempio:

I file in questo download zip includono:

  • vardownsampler.mdl - Scheda di test e file di progettazione di primo livello advanced blockset DSP Builder per il filtro di decimazione riconfigurabile
  • setup_vardownsampler.m - Script MATLAB* per configurare l'inizializzazione e i parametri di vardownsampler.mdl
  • vardownsampler_bare.mdl : file di progettazione basato su vardownsampler.mdl. Alcuni blocchi di banco di prova non sintetizzabili vengono rimossi per la generazione del livello di trasferimento del registro (RTL)

Per ulteriori informazioni sulle funzionalità correlate utilizzate in questo esempio di progettazione nel progetto, andare a:

Il contenuto di questa pagina è il risultato della combinazione tra la traduzione umana e quella automatica del contenuto originale in lingua inglese. Questo contenuto è fornito soltanto a titolo di informazione generale e non ha pretese di completezza o accuratezza. In presenza di contraddizioni tra la versione in lingua inglese di questa pagina e la sua traduzione, fa fede la versione inglese. Visualizza la versione in lingua inglese di questa pagina.