EO_501
ELETTRONICA OGGI 501 - APRILE 2022 48 DIGITAL FPGA DESIGN tali operazioni simultaneamente sullo stesso fronte del clock. Ciò consente di eseguire un numero di calcoli in misura 100 volte superiore nello stesso periodo di tempo oppure effettuare lo stesso numero di calcoli a 1/100 della frequenza di clock. Questa flessibilità intrinseca contribuisce a ridurre il time-to-market dei progetti basati su FPGA in quanto la funzionalità dell’FPGA integrato può essere determinata, o modificata, in parallelo al progetto del sistema nella fase di finalizzazione dello stesso. Questa riprogrammabilità inoltre fa sì che gli sviluppatori possano prolungare il ciclo di vita di un FPGA (e quindi anche dei sistemi che utilizzano FPGA) aggiornandone o modificandone la funzionalità tramite un semplice aggiornamento del software. Progettazione con MCU: i principali limiti I microcontrollori operano secondo una modalità diversa. Una volta scelta la piattaforma hardware, la funzionalità del dispositivo a semiconduttore rimane invariata e il “testimone” passa agli sviluppatori software, che “acquisiscono” la loro parte del progetto mediante un linguaggio di programmazione come C or C++. Una volta creato, il codice sorgente in C/C++ viene trasferito a un compilatore, che genera il codice macchina che sarà eseguito dall’MCU. Sebbene gli MCU siano in grado di svolgere operazioni che comportano decisioni, l’architettura di von Neumann utilizzata nella maggior parte delle MCU è inefficiente per quanto riguarda l’esecuzione di algoritmi di elaborazione di grandi quantità di dati. Questo perché una tale architettura opera in questo modo: recupera un’istruzione dalla memoria, la decodifica, preleva (fetch) determinati dati (se necessario), esegue l’istruzione e memorizza il risultato (se necessario).Naturalmente si trattadi unadescrizionemolto semplificata, ma che dovrebbe rendere l’idea. Il risultato finale è che la MCU esegue le operazioni sequenzialmente. L’esecuzione del gran numero di operazioni necessarie per implementare un DSP su una MCU richiede un clock di sistema ad alta velocità, il che si traduce in un aumento del consumo di potenza dell’applicazione. Le architetture di sistema più datate utilizzano sia MCU sia FPGA combinando i due dispositivi – il primo fornisce le funzionalità relative ai processi decisionali e il secondo elabora le grandi quantità di dati. In architetture più avanzate, i team di progetto stanno sfruttando i vantaggi intrinseci degli FPGA in termini di flessibilità e prestazioni, sostituendo completamente l’MCU e unificando entrambe le tipologie di operazioni – decisionali e di elaborazione dati – nell’FPGA: una soluzione di questo tipo comporta innegabili vantaggi in quanto consente di ridurre sia gli ingombri sia i consumi. A tal fine i progettisti possono utilizzareMCU“soft core”nell’FPGA, ossia implementando la funzionalità dell’MCU nella struttura programmabile. Gli FPGA possono anche contenere varie funzioni implementate sotto forma di “hard core” direttamente nel silicio – SRAM, memoria non volatile, DSP, PLL, circuiti di gestione del clock e blocchi SERDES. Per iniziare con gli FPGA Ilmodo tradizionaledi acquisireunprogettobasatosuFPGA prevede l’utilizzo di un linguaggio di descrizione hardware (HDL), come Verilog o VHDL, per descrivere il progetto al livello di astrazione RTL (Register Transfer Level – ovvero a livello di trasferimento tra registri). Il codice sorgente RTL viene quindi inserito in un engine di sintesi (si pensi a un compilatore), che genera il file di configurazione che sarà impiegato per programmare l’FPGA. Per gli sviluppatori che non hanno familiarità con il linguaggio HDL, sono disponibili strumenti dotati di un’interfaccia grafica ( Lattice Propel ne è un esempio) che consentono di acquisire elementi come progetti basati su processore mediante un’interfaccia di tipo “drag&drop”. In questo caso, vengono selezionati uno o più core di processore e le associate funzioni periferiche, e quindi connessi mediante l’interfaccia grafica dello strumento, che genererà automaticamente l’RTL da inserire nell’engine di sintesi. Per chi desidera iniziare a progettare (o sperimentare) con gli FPGA, Lattice offre dispositivi programmabili caratterizzati da prestazioni elevate, bassi consumi e ridotti fattori di forma. La piattaforma Lattice Nexus è basata su un processo FD-SOI da 28 nm che consuma il 75% inmeno di potenza e produce una percentuale di errori soft 100 volte inferiore rispetto a FPGA simili di altri fornitori. La piattaforma Nexus è stata utilizzata per sviluppare le famiglie di FPGA CrossLink-NX , Certus-NX , CertusPro- NX e Mach-NX di Lattice, offrendo agli sviluppatori un’ampia scelta di soluzioni FPGA ottimizzate in funzione della particolare applicazione considerata. Lattice offre anche una suite di strumenti di progettazione La piattaforma Lattice Nexus è realizzata con un processo FD-SOI da 28 nm
Made with FlippingBook
RkJQdWJsaXNoZXIy Mzg4NjYz