Nozioni di base sugli FPGA - Parte 5: Introduzione agli FPGA di Intel (Altera)

Di Clive "Max" Maxfield

Contributo di Editori nordamericani di DigiKey

Nota del redattore: spesso le migliori soluzioni di progettazione sono date da combinazioni di processori RISC, CISC, grafici e FPGA, da soli FPGA o da FPGA dotati di hard core di processore integrati. Tuttavia, molti progettisti non conoscono le capacità degli FPGA, come si sono evoluti e come utilizzarli.La Parte 1 di questo articolo ha offerto un'introduzione avanzata agli FPGA; la Parte 2 era dedicata alle offerte di FPGA di Lattice Semiconductor, mentre nella Parte 3 l'attenzione era rivolta alle famiglie di dispositivi FPGA e agli strumenti di progettazione offerti da Microchip Technology (tramite la sua consociata Microsemi Corporation). Nella Parte 4 sono stati presi in esame i componenti e gli strumenti di Xilinx. Questa Parte 5 illustra le offerte di Altera, che è stata acquisita da Intel e che ora forma il Programmable Solutions Group di Intel (nel resto di questo documento verrà usato il nome Intel).

Come discusso nella Parte 1, gli FPGA (gate array programmabili sul campo) hanno molte caratteristiche che li rendono una risorsa di calcolo inestimabile, sia da soli che inseriti in un'architettura eterogenea. Molti progettisti, tuttavia, non hanno familiarità con questi dispositivi e con il modo di incorporarli nei loro progetti. Per superare questo ostacolo possiamo esaminare più a fondo le architetture degli FPGA e i relativi strumenti dei principali fornitori.

Panoramica delle opzioni FPGA di alto livello

Esistono molti tipi di FPGA, ognuno con diverse combinazioni di capacità e funzioni. Il cuore di ogni FPGA è la sua struttura che si presenta come una serie di blocchi a logica programmabile, conosciuti anche come elementi logici (LE) (Figura 1a). Il livello successivo della struttura dell'FPGA include blocchi di SRAM, chiamati RAM di blocco (BRAM), circuiti ad aggancio di fase (PLL) e gestore di clock (Figura 1b). Possono essere inclusi anche blocchi processore di segnali digitali (DSP) (slice DSP) e blocchi serializzatori/deserializzatori (SERDES) ad alta velocità (Figura 1c).

Schema della struttura programmabile degli FPGAFigura 1: Gli FPGA più semplici contengono solo struttura programmabile e GPIO per uso generale configurabili (a). Architetture diverse potenziano questa struttura fondamentale con blocchi SRAM, PLL e gestori di clock (b), blocchi DSP e interfacce SERDES (c), hard core di processore e periferiche (d). (Immagine per gentile concessione di Max Maxfield)

Funzioni dell'interfaccia periferica come CAN, I2C, SPI, UART e USB possono essere implementate come soft core nella struttura programmabile, ma molti FPGA le includono come hard core nel chip. Allo stesso modo, i microprocessori possono essere implementati come soft core nella struttura programmabile o come hard core nel chip (Figura 1d). Gli FPGA con hard core di processore sono detti FPGA System-on-Chip (SoC). I vari FPGA offrono set di funzionalità, caratteristiche e capacità diverse mirate a specifici settori e applicazioni.

Esistono diversi fornitori di FPGA, tra cui Intel (che ha acquisito Altera), Efinix, Lattice Semiconductor, Microchip Technology (che ha acquisito Atmel e Microsemi) e Xilinx.

Tutti questi fornitori mettono a disposizione diverse famiglie di FPGA; alcuni offrono FPGA SoC, altri dispositivi per applicazioni di intelligenza artificiale (IA) e apprendimento automatico (ML) e altri ancora offrono dispositivi immuni alle radiazioni studiati per applicazioni spaziali. Data la grande varietà di famiglie, ognuna con risorse diverse, scegliere il dispositivo migliore per il compito da svolgere può essere difficile.

Presentazione degli FPGA tradizionali e degli FPGA SoC di Intel

Intel offre dispositivi programmabili con prestazioni e capacità da basiche a estremamente elevate, da FPGA tradizionali a FPGA SoC (ovvero, dispositivi che combinano la struttura programmabile degli FPGA con uno o più core di processore integrati nell'hardware).

L'attuale portafoglio di prodotti Intel conta su cinque famiglie attive di FPGA, fra cui Max 10, Cyclone 10 e Arria 10 (Figura 2). Intel dispone anche di Stratix 10, un prodotto di fascia estremamente alta, e dei più recenti dispositivi Agilex allo stato dell'arte.

Schema delle applicazioni per le cinque famiglie di FPGA di IntelFigura 2: Le applicazioni e i mercati di destinazione per tre delle cinque famiglie di FPGA di Intel - da quelle più economiche (Max 10) a quelle con le capacità e le prestazioni più elevate (Arria 10) - spaziano dalla gestione della scheda e dall'espansione I/O alla visione embedded e al settore militare/della difesa. Stratix 10 e i nuovi dispositivi Agilex estendono ulteriormente le prestazioni. (Immagine per gentile concessione di Max Maxfield)

Gli FPGA Max 10 di Intel incorporano una memoria flash NOR su chip in cui conservare la loro configurazione. Le altre famiglie di prodotti hanno celle di configurazione basate su SRAM e caricano le proprie configurazioni all'accensione da un dispositivo di memoria esterno incorporato o da un'altra parte del sistema (ad esempio, sotto il controllo di un processore esterno). Fatta eccezione per la famiglia MAX 10, tutte le altre famiglie di FPGA Intel sono disponibili come FPGA tradizionali o come FPGA SoC con sistemi a microprocessore integrato nell'hardware.

Le caratteristiche integrate degli FPGA MAX 10 includono convertitori analogico/digitale (ADC) e flash a doppia configurazione, che permettono di memorizzare e commutare dinamicamente tra due immagini su un singolo chip. Gli FPGA MAX 10 sono inoltre dotati di supporto per processori embedded soft core Nios II, blocchi DSP e controller di memoria Double Data Rate 3 (DDR3).

Un dispositivo rappresentativo del portafoglio MAX 10 è 10M16SCU169I7P con 16.000 elementi logici/celle, 562.176 bit di RAM totali e 130 input/output (I/O). Una scheda di valutazione idonea per MAX 10 è EK-10M08E144 di Intel. Un'altra è HINJKIT, un kit di sviluppo per hub di sensori IoT FPGA di Alorium Technology, LLC (Figura 3). HINJKIT è particolarmente interessante perché il suo FPGA MAX 10 include il microcontroller a 8 bit compatibile AVR di Alorium Technology che permette di usare HINJKIT con l'IDE Arduino. La scheda offre anche un alto livello di flessibilità di interfaccia per schede carrier IoT, moduli e accessori di terze parti.

Immagine della piattaforma di sviluppo di FPGA HINJKIT MAX 10 di AloriumFigura 3: HINJKIT è una piattaforma di sviluppo di FPGA MAX 10 di Alorium che offre un alto livello di flessibilità di interfaccia per schede carrier IoT, moduli e accessori di terze parti. (Immagine per gentile concessione di Alorium Technology)

Gli FPGA Cyclone 10 GX di Intel offrono funzioni basate su transceiver a 12,5 GB, segnalazione differenziale a bassa tensione (LVDS) a 1,4 Gbit/s e un'interfaccia SDRAM DDR3 fino a 72 bit per velocità di trasmissione dati fino a 1866 Mbit/s. Gli FPGA Cyclone 10 GX sono ottimizzati per applicazioni con prestazioni di alta larghezza di banda, quali visione artificiale, connettività video e telecamere di visione intelligente.

Gli FPGA Cyclone 10 LP sono invece ottimizzati per applicazioni a basso costo e a bassa potenza statica come l'espansione I/O, Sensor Fusion, il controllo di motori/del movimento, il bridging chip-to-chip e il controllo. Entrambe le famiglie di dispositivi GX e LP supportano la migrazione verticale, permettendo ai progettisti di iniziare a lavorare con un dispositivo e passare successivamente alle densità adiacenti.

Un membro rappresentativo del portafoglio Cyclone 10 è 10CL006YU256A7G con 6272 elementi logici/celle, 276.480 bit di RAM totali e 176 I/O. Sono disponibili moltissime schede di valutazione e moduli legati allo sviluppo, fra cui il kit SoC DE10-NANO Cyclone V SE P0496 (Figura 4), la scheda di valutazione TSoM Cyclone V SE P0553 (anche in questo caso basata su FPGA SoC Cyclone V) e la scheda di valutazione FPGA TSoM Cyclone V SE P0581, tutti di Terasic Inc. (Tenere presente che l'FPGA Cyclone V di queste schede è di una generazione precedente della famiglia Cyclone 10.)

Immagine dell'economico kit di sviluppo P0496 DE10-NANO di TerasicFigura 4: P0496 DE10-NANO è un kit di sviluppo a basso costo con un'affidabile piattaforma di progettazione hardware che permette agli utenti di testare e valutare gli FPGA Cyclone. (Immagine per gentile concessione di Terasic Inc.)

Basati sulla tecnologia di processo a 20 nanometri di TSMC, i dispositivi Arria 10 combinano un HPS (Hard Processor System) MPCore Arm Cortex-A9 dual core con una struttura programmabile che include blocchi DSP in virgola mobile integrati nell'hardware. I dispositivi Arria 10 sono inoltre dotati di transceiver embedded ad alta velocità, controller di memoria hardware e di proprietà intellettuale (IP) del protocollo, il tutto in un unico contenitore altamente integrato.

Un dispositivo rappresentativo del portafoglio Arria 10 è 10AX022C4U19E3SG con 220.000 elementi logici/celle, 13.752.320 bit di RAM totali e 240 I/O. Una piattaforma idonea per sviluppare utilizzando questo FPGA è la scheda di valutazione di FPGA Arria 10 GX DK-DEV-10AX115S-A di Intel (Figura 5). Questa scheda consente ai progettisti di sviluppare e testare progetti di PCI Express (PCIe) 3.0 basati su Arria 10; sviluppare e testare sottosistemi costituiti da DDR4, DDR3, QDR IV e memorie RLDRAM III; nonché di sviluppare progetti modulari e scalabili servendosi dei connettori della scheda mezzanine FPGA (FMC) per interfacciarsi con una scheda mezzanine FMC fornita dai partner Intel.

Immagine del kit di sviluppo di FPGA Arria 10 GX DK-DEV-10AX115S-A di IntelFigura 5: Il kit di sviluppo di FPGA Arria 10 GX DK-DEV-10AX115S-A offre un ambiente di sviluppo completo che include tutto l'hardware e il software richiesti per sviluppare e testare progetti basati su PCIe, sottosistemi di memoria e sistemi basati su schede FMC. (Immagine per gentile concessione di Intel)

Gli FPGA Stratix 10 e gli FPGA SoC di Intel vantano l'architettura proprietaria degli FPGA Hyperflex. Gli FPGA di questa linea di dispositivi soddisfano le esigenze di sistemi ad alta velocità con un massimo di 10 TFLOPS di prestazioni in virgola mobile e supporto di transceiver da 28,3 Gbit/s (GX) a 57,8 Gbit/s. Quest'ultimo valore lavora in un massimo di 144 canali transceiver per rispondere alle esigenze di larghezza di banda delle comunicazioni 5G, del cloud computing, della virtualizzazione delle reti e delle reti di trasporto ottico. Una variante include un'interfaccia PCIe Gen4 con configurazione fino a x16 a 16 GT/s e un nuovo controller di memoria per supportare la memoria persistente Intel Optane DC.

Il supporto dello sviluppo con la linea Stratix 10 viene offerto dalla scheda di valutazione di FPGA Stratix 10 GX DK-DEV-1SGX-L-A di Intel (Figura 6). Questa scheda consente ai progettisti di sviluppare e testare progetti di PCI Express (PCIe) 3.0 basati su Stratix 10; sviluppare e testare sottosistemi costituiti da DDR4, DDR3, QDR IV e memorie RLDRAM III; nonché di sviluppare progetti modulari e scalabili servendosi dei connettori della scheda mezzanine FPGA (FMC) per interfacciarsi con una scheda mezzanine FMC fornita dai partner Intel.

Immagine della scheda di valutazione di FPGA Stratix 10 GX DK-DEV-1SGX-L-A di IntelFigura 6: La scheda di valutazione di FPGA Stratix 10 GX DK-DEV-1SGX-L-A offre un ambiente di sviluppo completo che include tutto l'hardware e il software richiesti per sviluppare e testare progetti basati su PCIe, sottosistemi di memoria e sistemi basati su schede FMC. (Immagine per gentile concessione di Intel)

Progettazione e sviluppo con gli FPGA tradizionali e gli FPGA SoC di Intel

Nella Parte 1 di questa serie sugli FPGA è stato osservato che, tradizionalmente, per progettare questi dispositivi gli ingegneri utilizzano un linguaggio di descrizione dell'hardware (HDL) come Verilog o VHDL che coglie l'obiettivo del progetto a un livello di astrazione noto come livello di trasferimento del registro (RTL). Queste descrizioni RTL possono prima essere simulate per verificare che funzionino come richiesto, dopodiché vengono passate a uno strumento di sintesi che genera il file di configurazione utilizzato per programmare l'FPGA.

Nel passo successivo di astrazione viene colto l'obiettivo del progetto usando un linguaggio di programmazione come C/C++, o un'implementazione speciale come SystemC, ossia un insieme di classi C++ e macro che forniscono un'interfaccia di simulazione guidata dagli eventi e facilitano la simulazione di processi concomitanti, ognuno dei quali è descritto con una sintassi C++ semplice. Queste descrizioni possono essere analizzate e profilate eseguendole come dei normali programmi, dopodiché vengono passate a un motore di sintesi ad alto livello (HLS). L'RTL risultante viene quindi immesso nel normale motore di sintesi.

A un livello di astrazione concettuale superiore vi è Open CL (Open Computing Language), un framework per la scrittura di programmi che vengono eseguiti su piattaforme eterogenee. Oltre agli FPGA, queste piattaforme includono unità di elaborazione centrale (CPU), unità di elaborazione grafica (GPU), processori di segnali digitali (DSP) e altri processori o acceleratori hardware. OpenCL specifica i linguaggi di programmazione (basati su C99 e C++11) per la programmazione di questi dispositivi, oltre alle interfacce di programmazione delle applicazioni (API) per controllare la piattaforma ed eseguire programmi sui dispositivi di elaborazione.

Nel caso degli FPGA tradizionali e degli FPGA SoC di Intel, gli utenti sviluppano progetti per tutte le famiglie di prodotti utilizzando il software di progettazione Quartus Prime di Intel. Questo software è disponibile in tre versioni: Quartus Prime Pro Edition, Quartus Prime Standard Edition e Quartus Prime Lite Edition. Le edizioni Pro e Standard richiedono licenze a pagamento, mentre quella Lite può essere scaricata gratuitamente.

L'edizione Pro è ottimizzata per supportare le funzionalità avanzate degli FPGA di ultima generazione e degli FPGA SoC con le famiglie di dispositivi Agilex, Stratix 10, Arria 10 e Cyclone 10 GX. L'edizione Standard include un ampio supporto per le famiglie di dispositivi precedenti, oltre alla famiglia Cyclone 10 LP, mentre l'edizione Lite, scaricabile gratuitamente senza file di licenza, offre un punto di ingresso ideale per famiglie di dispositivi ad alto volume.

Intel offre una gamma di strumenti di progettazione e risorse aggiuntive molto ampia, tra cui Intel DSP Builder, il compilatore Intel High Level Synthesis (HLS) e Intel FPGA SDK for OpenCL.

È utile anche la distribuzione del toolkit OpenVINO di Intel, che permette agli sviluppatori di realizzare applicazioni di intelligenza artificiale (IA), visione artificiale, audio, voce e linguaggio, consentendo un'inferenza di apprendimento profondo dalla periferia del cloud. Oltre gli FPGA, questo toolkit supporta l'esecuzione eterogenea attraverso l'architettura Intel e gli acceleratori di IA - CPU, iGPU, Vision Processing Unit (VPU) Intel Movidius e Gaussian & Neural Accelerator (GNA) Intel, utilizzando un'API comune. Questo toolkit è supportato dallo starter kit OpenVINO basato su FPGA Cyclone V GT.

Conclusione

Spesso le migliori soluzioni progettuali per l'elaborazione sono date da combinazioni di processori e FPGA, da soli FPGA o da FPGA dotati di hard core di processore integrati. La tecnologia degli FPGA si è evoluta rapidamente nel corso degli anni ed è in grado di soddisfare numerosi requisiti di progettazione in termini di flessibilità, velocità di elaborazione e potenza, il che rende questi dispositivi molto utili per un'ampia gamma di applicazioni, dalle interfacce intelligenti alla visione artificiale e all'intelligenza artificiale.

Le offerte di dispositivi programmabili Intel comprendono prodotti sia di fascia bassa che di fascia estremamente alta, da FPGA tradizionali a FPGA SoC. Come è stato dimostrato, per realizzare progetti con questi dispositivi, Intel e altre terze parti offrono una suite potente di kit di sviluppo e strumenti per soddisfare le esigenze degli sviluppatori di hardware e software e dei creatori di sistemi di intelligenza artificiale e di visione artificiale.

Ulteriori letture

  1. Nozioni di base sugli FPGA: cosa sono gli FPGA e perché sono necessari?
  2. Nozioni di base sugli FPGA - Parte 2: Introduzione agli FPGA di Lattice Semiconductor
  3. Nozioni di base sugli FPGA - Parte 3: Introduzione agli FPGA di Microchip Technology
  4. Nozioni di base sugli FPGA - Parte 4: Introduzione agli FPGA di Xilinx
  5. Nozioni fondamentali sugli FPGA: Una guida per principianti
  6. Come implementare l'edge computing a bassa potenza e ad alte prestazioni grazie agli FPGA Efinix predisposti per la tecnologia Quantum
DigiKey logo

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo autore

Image of Max Maxfield

Clive "Max" Maxfield

Clive "Max" Maxfield ha conseguito la laurea in ingegneria di controllo nel 1980 presso l'Università di Sheffield Hallam, Inghilterra, e ha iniziato la carriera lavorativa come progettista delle unità di elaborazione centrale (CPU) per computer mainframe. Nel corso degli anni, Max ha progettato di tutto, dai chip di silicio alle schede a circuito stampato, dagli amplificatori per onde cerebrali ai motori di prognosticazione steampunk (davvero!). È stato anche a capo della Electronic Design Automation (EDA) per oltre 30 anni.

Max è autore e/o coautore di diversi libri, tra cui i titoli: Designus Maximus Unleashed (vietato in Alabama), Bebop to the Boolean Boogie (An Unconventional Guide to Electronics), EDA: Where Electronics Begins, FPGAs: Instant Access e How Computers Do Math. Visita il suo blog "Max's Cool Beans".

Informazioni su questo editore

Editori nordamericani di DigiKey