EO_486

DIGITAL PROGRAMMABLE LOGIC 52 - ELETTRONICA OGGI 486 - MAGGIO 2020 Come altro esempio di applicazione, si consideri un’attività ad alta intensità di calcolo come l’elabo- razione dei segnali richiesta per implementare un si- stema radar, o il beamforming in una stazione base di comunicazione. I processori convenzionali con le loro architetture von Neumann o Harvard sono idonei per assolvere certi compiti, ma non risultano altrettanti efficaci per espletare compiti che richiedono l’esecuzione ripetu- ta della stessa sequenza di operazioni. Questo perché un singolo core di processore che esegue un singolo thread può eseguire solo un’istruzione alla volta (Fig. 4a). Nell’FPGA è invece possibile eseguire più funzioni contemporaneamente, il che permette di configurare in modalità pipeline una serie di operazioni, con un conseguente sensibile aumento del throughput. Ana- logamente, invece di eseguire la stessa operazione, ad esempio 1.000 volte su 1.000 coppie di valori di dati con il processore, gli stessi calcoli potrebbero essere eseguiti in maniera massiva e parallela in un singolo ciclo di clock nell’FPGA istanziando 1.000 sommatori nella struttura programmabile (Fig. 4b). Uno sguardo al mercato Quello degli FPGA è un mondo in continua evoluzio- ne. I due principali produttori di dispositivi che si possono considerare effettivamente di fascia alta ca- ratterizzati da capacità e prestazioni più elevate sono Intel (che ha acquisito Altera ) e Xilinx . Le offerte di Intel e Xilinx spaziano da FPGA di fascia bassa a FPGA SoC di fascia alta. Un altro fornitore che si occupa quasi esclusivamente di FPGA è Lattice Semiconductor , che punta alle applicazioni di fascia medio-bassa. Infine, ora vi è Microchip Technology che, a seguito dell’acquisizione di Actel , Atmel e Mi- crosemi , sta proponendo numerose famiglie di FPGA di piccole e medie dimensioni e prodotti di fascia bassa della categoria di SoC FPGA. Data la grande varietà di famiglie, ognuna delle quali offre risorse, prestazioni, capacità e package diver- si, scegliere il dispositivo migliore per il compito da svolgere può essere difficile. FPGA: tool di progettazione Tradizionalmente, per progettare con FPGA i proget- tisti utilizzano un linguaggio di descrizione dell’hard- ware come Verilog o VHDL per catturare l’obiettivo del progetto. Queste descrizioni possono prima essere simulate per verificare che funzionino come richiesto, dopo- diché vengono trasferite a uno tool di sintesi che ge- nera il file di configurazione utilizzato appunto per configurare (programmare) l’FPGA. Ogni fornitore di FPGA sviluppa internamente la pro- pria tool-chain oppure mette a disposizione una ver- sione personalizzata di uno strumento di un fornitore specializzato. In entrambi i casi, gli strumenti sono accessibili dai siti Web dei fornitori di FPGA. Inoltre, possono essere disponibili versioni gratuite o a bas- so costo di suite complete di tool. Per rendere gli FPGA più accessibili agli sviluppatori di software, alcuni fornitori di FPGA ora offrono stru- menti di sintesi di alto livello (HLS). Questi strumenti interpretano una descrizione algoritmica del com- portamento desiderato, catturato a un alto livello di astrazione in C, C++ o OpenCL, e generano l’input per l’engine di sintesi di livello inferiore. Per i progettisti che desiderano iniziare a utilizzare gli FPGA, esistono molte schede di sviluppo e di valuta- zione, ognuna delle quali con capacità e caratteristi- che diverse. Tre esempi sono il kit di sviluppo DFR0600 di DFRo- bot che è dotato di un FPGA SoC Zynq-7000 di Xilinx, DE10 Nano di Terasic con un FPGA SoC Cyclone V di Intel e la scheda di valutazione ICE40HX1K-STICK- EVN con un FPGA iCE40 a basso consumo di Lattice Semiconductor. I progettisti che pensano di utilizzare una scheda figlia PCIe basata su FPGA per accelerare le appli- cazioni in esecuzione su una scheda madre X86 po- trebbero essere interessati a una delle schede figlie Alveo PCIe di Xilinx. Spesso le soluzioni di progettazione ottimali sono for- nite da FPGA, combinazioni di processori e FPGA o da FPGA dotati di hard core di processore integrati. Gli FPGA si sono evoluti rapidamente nel corso degli anni e sono in grado di soddisfare numerosi requisiti di progettazione in termini di flessibilità, velocità di elaborazione e potenza, per cui risultano particolar- mente utili per un’ampia gamma di applicazioni. Fig. 4 – A differenza dei microprocessori in cui può essere eseguita una sola istruzione alla volta (in sequenza), in un FPGA si possono eseguire allo stesso tempo (contemporaneamente) più blocchi funzionali. Inoltre, gli FPGA possono implementare algoritmi appropriati in modo massivamente parallelo

RkJQdWJsaXNoZXIy MTg0NzE=