Perché i processori DSP personalizzati sono essenziali per applicazioni Niche

In molti settori specializzati, come l'imaging medico, l'automazione industriale, la telemetria aerospaziale o audio di fascia alta, le richieste di elaborazione del segnale vanno ben oltre i fattori generali di elaborazione del segnale digitale (DSP) o di campi programmabili gate array (FPGAs) possono fornire efficientemente.

Deep Dive Into Requisiti di applicazione

Prima che una singola linea di linguaggio di descrizione hardware sia scritta, il team di ingegneria deve stabilire una comprensione approfondita dei segnali coinvolti e dei vincoli dell'ambiente di destinazione. Questo va oltre a indicare "abbiamo bisogno di elaborare audio" o "noi gestiamo i dati di raffreddamento radar".

Caratteristiche e precisione del segnale

Per applicazioni audio a banda stretta, aritmetica a 16 bit può essere sufficiente, ma per la compressione o la spettroscopia del polso radar, punto di galleggiamento a 32 bit o anche rappresentazioni a punti di scorrimento personalizzate diventano necessari.

Constrati in tempo reale

Il processore deve garantire che ogni campione o frame sia elaborato in una finestra a tempo determinato, o il sistema non riesce. L'hardware personalizzato eccelle qui perché elimina i rischi imprevedibili di caching e pipeline di CPUs generali-purpose. Tuttavia, il trade-off è che ogni misestimation di tempi di esecuzione peggiori può portare a guasto del sistema. Pertanto, un'analisi rigorosa dei percorsi di inserimento dei dati, banda di memoria

Scelte di progettazione di architettura hardware

Una volta chiariti i requisiti, il prossimo passo principale è la definizione della microarchitettura del processore. L’architettura deve bilanciare flessibilità, prestazioni, potenza e costi. Le seguenti sottosezioni delineano le considerazioni primarie.

Tipo di elaborazione: Fisso vs. Programmabile

I sistemi di calcolo per il funzionamento del sistema di controllo FIR e FSP (FIR) possono essere utilizzati per l'utilizzo di un software di tipo FIR (FIR) e per l'utilizzo di un software di calcolo (FIR) per la configurazione di un core programma specifico.

Progettazione della gerarchia della memoria

La larghezza di banda di memoria è spesso il collo di bottiglia nei sistemi DSP. Un design personalizzato consente agli ingegneri di personalizzare la gerarchia della memoria proprio al flusso di dati. Le decisioni chiave includono il numero e la dimensione delle banche SRAM on-chip, se utilizzare memorie multi-port per la lettura/scrittura simultanea, e l'inclusione di memorie di gratta e vinci per i risultati temporanei.

Integrazione periferica

L'integrazione di periferiche come SPI, I2C, I2S, o transceivers LVDS ad alta velocità direttamente on-chip riduce il conteggio dei componenti, lo spazio di bordo e la latenza. In applicazioni di nicchia, le periferiche standard possono avere bisogno di personalizzazione - ad esempio, un multi-canale interfaccia audio che supporta esattamente i tassi di campionamento e il conteggio dei dati generici del canale

Tecniche di gestione del potere

Il consumo di energia è un costrizione fondamentale, specialmente per i sistemi a batteria o termicamente limitati. I processori personalizzati possono includere funzioni avanzate di gestione della potenza: domini di tensione e frequenza multipli, gating per blocchi non utilizzati e modalità di alimentazione-down a trasmissione dati. A livello architettonico, ridurre l'attività di commutazione attraverso l'isolamento opaco dell'opera e utilizzare l'aritmetica a punto fisso invece di galleggiamento può ridurre l'energia di metà o più.

Ottimizzazione dell'algoritmo per l'implementazione dell'hardware

Scrivere un algoritmo in C o MATLAB e poi “portarlo” all’hardware è raramente efficiente, invece, l’algoritmo e l’architettura dovrebbero essere co-optimizzati.

Ottimizzazione aritmetica e aritmetica a punto fisso

La maggior parte dei DSP personalizzati utilizza rappresentazioni a punto fisso con lunghezze di parola scelte con attenzione per ogni variabile. Gli ingegneri devono analizzare la gamma dinamica dell'algoritmo e il rumore di quantizzazione per determinare il minimo integer e bit frazionari necessari. Per gli algoritmi multistadio, diverse lunghezze di parola possono essere utilizzate per diversi stadi, ad esempio, i dati intermedi a 24 bit circa in un filtro di qualità a più stadi.

Parallelismo e Pipelining

Le applicazioni Niche richiedono spesso un elevato throughput. I DSP personalizzati possono sfruttare più livelli di parallelismo. Il parallelismo a livello di istruzione può essere raggiunto attraverso architetture VLIW (parola di istruzioni molto lunga) che emettono diverse operazioni per ciclo. Più comunemente, il parallelismo a livello di dati viene sfruttato replicando unità funzionali: ad esempio, una banca di filtro polifase può utilizzare 8 unità parallele moltiplicate di rischio che lavorano in diverse fasi contemporaneamente.

Trasformazioni algoritmiche

A volte l’algoritmo stesso può essere ristrutturato in modo adeguato all’hardware. Ad esempio, la conversione di una convoluzione del time-domain in un metodo di frequenza-dominio che utilizza FFT può ridurre le operazioni per lunghe lunghezze di filtro. Analogamente, utilizzando l’aritmetica distribuita per i filtri FIR, i moltiplicatori di precisione devono essere utilizzati con i più strumenti di elaborazione.

Strumenti di sviluppo e lingue

Mentre l'articolo originariamente menzionato VHDL o Verilog, molti team ora utilizzano SystemVerilog o anche la sintesi di alto livello (HLS) utilizzando C++ o SystemC. HLS consente agli sviluppatori di scrivere in un livello di astrazione superiore, ma gli ingegneri devono guidare strettamente lo strumento di sintesi per raggiungere la microarchitettura desiderata.

Risorsa esterna:[] Per un'immersione profonda nelle architetture di elaborazione dei segnali digitali, vedere Panoramica di ScienceDirect delle architetture DSP[.

Verifica, convalida e strategie di test

Poiché un DSP personalizzato è spesso il cuore di un sistema di sicurezza-critico o ad alto valore, è obbligatoria la verifica esaustiva. Il piano di verifica deve coprire la correttezza funzionale, la chiusura dei tempi e l'integrità della potenza.

Testing Across Temperatura e Tensione angoli

Le applicazioni Niche spesso funzionano a estremi. Il chip personalizzato deve essere caratterizzato in diversi angoli di processo, tensione e temperatura. I team di progettazione dovrebbero integrare l'autotest integrato (BIST) per memorie e logica, così come le catene di scansione per test di produzione.Per applicazioni critiche come avionica, il processore potrebbe essere necessario soddisfare i livelli di garanzia del design DO-254, che richiedono una rigorosa tracciabilità dai requisiti ai test.

Integrazione, distribuzione e supporto a lungo termine

La gestione termica è una preoccupazione primaria: un processore che dissipa 10W in un piccolo pacchetto richiede una simulazione termica dettagliata e probabilmente dissipatori di calore o aria forzata. La sequenziamento e il decoupling di potenza devono essere progettati con attenzione per evitare la chiusura o la discarica di tensione. Sul lato del software, un programmabile DSP personalizzato ha bisogno di un kit di sviluppo del software (SDK) con l'accelerazione del processore.

Risorsa esterna:[] Il libro I trattamenti digitali dei segnali nei sistemi incorporati[[ fornisce una guida pratica sulle sfide di integrazione.

Studi di casi: DSP personalizzato sul lavoro

Fascio di ultrasuoni medico

Una startup che sviluppa una sonda a ultrasuoni portatile ha progettato un DSP personalizzato che ha eseguito il teletrasporto dinamico a 64 canali. Integrando il controllo front-end analogico, il calcolo del ritardo del teletrasformatore e il rilevamento delle buste in un unico processore, hanno ridotto l'area di bordo dell'80% e il consumo di energia a 1,5W, consentendo l'operazione della batteria.

Monitoraggio della vibrazione industriale

Una società di automazione di fabbrica ha bisogno di un processore per la manutenzione predittiva che potrebbe analizzare i segnali di vibrazione da decine di sensori contemporaneamente, eseguendo FFT in tempo reale e rilevamento di anomalia. Le soluzioni Off-the-shelf erano troppo lente o consumavano troppa potenza.

Risorsa esterna:[] Per ulteriori informazioni sul design DSP personalizzato per applicazioni industriali, vedere questo articolo Embedded.com sul design industriale di IoT DSP[].

Pitfalls comune e come evitare di loro

  • Overlooking the memory bottleneck: Anche le unità aritmetiche più veloci sono inutili se i dati non possono essere consegnati.
  • Verifica insufficiente dei casi di angolo:[[] Gli algoritmi DSP possono mostrare comportamenti inaspettati ai confini del segnale (ad esempio, overflow nei filtri IIR).
  • Consumo energetico:[] Bilancia di potenza dinamica con il quadrato di tensione; un leggero aumento della tensione di esercizio per soddisfare i tempi possono causare un aumento significativo di potenza.
  • Ignorando lo sforzo software:[] Un DSP personalizzato programmabile è utile solo se ha una portautensile decente. Allocate budget per il porting del compilatore o almeno una libreria C robusta di funzioni DSP comuni.
  • Over-customization:[] Aggiungendo troppe caratteristiche speciali può rendere il complesso del processore per verificare e documentare.

Conclusioni

Sviluppare un processore DSP personalizzato per un’applicazione di nicchia è un’impresa di ingegneria impegnativa ma gratificante, che richiede una profonda comprensione dei segnali e dei vincoli dell’applicazione, un’attenta co-design di algoritmi e architetture, e un approccio disciplinato alla verifica e al test.