Nozioni di base sugli FPGA - Parte 3: Introduzione agli FPGA di Microchip Technology
Contributo di Editori nordamericani di DigiKey
2020-01-30
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. Nella Parte 3 l'attenzione è rivolta alle famiglie di dispositivi FPGA e agli strumenti di progettazione offerti da Microchip Technology (tramite la sua consociata Microsemi Corporation). Le Parti 4 e Parti 5 prenderanno in esame gli FPGA e gli strumenti di Altera e Xilinx.
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. Questo articolo si occupa della linea di Microchip Technology.
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).
Figura 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 Altera (acquisita da Intel), Atmel (acquisita da Microchip Technology), Lattice Semiconductor, Microsemi (anch'essa acquisita da Microchip Technology) e Xilinx.
Tutti questi fornitori mettono a disposizione diverse famiglie di FPGA; alcuni offrono FPGA SoC e altri dispositivi immuni alle radiazioni studiati appositamente per ambienti ad alta radiazione come lo spazio. 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 di Microchip Technology
L'offerta di FPGA di Microchip Technology si colloca nella fascia medio-bassa, con particolare attenzione ai dispositivi di alta sicurezza, a bassa potenza e alta affidabilità. Gli FPGA di Microchip sono ampiamente diffusi nelle comunicazioni cablate e wireless, nella difesa e nell'aviazione e nelle applicazioni industriali embedded. Vantano DSP robusti e grande capacità di memoria e sono particolarmente idonei in applicazioni quali l'accelerazione hardware, l'intelligenza artificiale, l'elaborazione delle immagini e l'edge computing.
Microchip offre tre famiglie principali di FPGA:
- FPGA IGLOO®2: dispositivi a bassa densità dotati di ingenti risorse
- FPGA SoC SmartFusion®2: dispositivi a bassa densità dotati di ingenti risorse e di un hard core di processore a 32 bit
- FPGA e FPGA SoC PolarFire™: dispositivi ad alte prestazioni e ottimizzazione dei costi implementati con una tecnologia di processo a 28 nm
Tutti gli FPGA hanno celle di configurazione che determinano la funzionalità di ogni blocco a logica programmabile e come sono collegati tra loro e con il mondo esterno. Queste celle sono utilizzate anche per configurare lo standard di interfaccia GPIO, l'impedenza di ingresso, la velocità di variazione dell'uscita, ecc.
Alcuni FPGA utilizzano celle di configurazione basate su SRAM, ma essendo volatili queste celle perdono il loro contenuto quando si toglie l'alimentazione dal sistema. Questo significa quindi che i dati di configurazione devono essere caricati da una fonte esterna - in genere un dispositivo di memoria flash - quando il sistema viene acceso. Questi FPGA richiedono più tempo per accendersi ed essere pronti per l'uso.
Alcuni FPGA utilizzano la memoria flash su chip per memorizzare i dati di configurazione, ma hanno comunque celle di configurazione basate su SRAM. In questo caso, all'accensione, un controller su chip copia i dati di configurazione dalla memoria di configurazione flash nelle celle di configurazione SRAM. Questi FPGA si accendono più velocemente dei loro cugini SRAM puri.
Gli FPGA IGLOO2 e gli FPGA SoC SmartFusion2 di Microchip si servono di un meccanismo diverso in cui sia la memoria di configurazione su chip che le celle di configurazione su chip sono entrambe implementate tramite la tecnologia flash. Nel caso dei dispositivi PolarFire, le celle di configurazione sono basate sulla tecnologia della memoria non volatile (NVM) di silicio-ossido-nitruro-ossido-silicio (SONOS), che potrebbe essere considerata una versione "simile ma migliore della flash".
Dal momento che i dati di configurazione sono memorizzati in celle flash non volatili (o SONOS), gli FPGA e gli FPGA SoC di Microchip sono "ad accensione istantanea". Ovvero, si accendono più velocemente di qualsiasi altro tipo di FPGA. Questi dispositivi sono dotati anche di una memoria di configurazione flash che consente di caricarvi una nuova configurazione mentre l'FPGA continua a funzionare usando quella presente nelle sue celle di configurazione. Una volta completato e verificato il download della nuova configurazione (che può essere criptata e accompagnata da un controllo a ridondanza ciclica (CRC)), il dispositivo può essere messo in uno stato sicuro mentre la nuova configurazione memorizzata nella memoria di configurazione viene utilizzata per sovrascrivere la configurazione originale memorizzata nelle celle di configurazione.
Dispositivi tradizionali: FPGA IGLOO2
Gli IGLOO2 sono dei validi FPGA per uso generale di fascia medio-bassa. Molti progettisti li considererebbero degli FPGA "tradizionali". Questi dispositivi flash FPGA sono ideali per uso generale come Gigabit Ethernet o piani di controllo Dual PCI Express, funzioni di bridging, espansione e conversione ingresso/uscita (I/O), elaborazione di video e immagini, gestione del sistema e connettività sicura. Le applicazioni sono le più disparate, comprese le comunicazioni, i settori industriale e medicale, la difesa e l'aviazione.
Figura 2: Gli FPGA IGLOO2 sono ideali per uso generale come Gigabit Ethernet o piani di controllo Dual PCI Express, funzioni di bridging, espansione e conversione ingresso/uscita (I/O), elaborazione di video e immagini, gestione del sistema e connettività sicura. (Immagine per gentile concessione di Microchip Technology)
Gli FPGA IGLOO2 offrono da 5.000 a 150.000 LE con un sottosistema di memoria ad alte prestazioni, fino a 512 kB di memoria flash incorporata, 2 x 32 kB di memoria statica ad accesso casuale (SRAM) embedded, due motori ad accesso diretto alla memoria (DMA) e due controller a doppia velocità dati (DDR). I dispositivi sono inoltre dotati di un massimo di 16 canali transceiver, blocchi di processori DSP integrati e memorie protette/tolleranti all'effetto da evento singolo (SEU). Per motivi di sicurezza, sono integrati nell'hardware per l'analisi della potenza differenziale (DPA) e utilizzano la crittografia AES256 e SHA256 e il controllo dell'integrità dei dati NVM on-demand.
Un buon esempio di dispositivo IGLOO2 è M2GL025-FGG484I con 27.696 LE, 1.130.496 bit di RAM e 267 I/O. Per consentire ai progettisti di studiare e sperimentare le caratteristiche della famiglia di FPGA IGLOO2, Microchip fornisce anche un kit di valutazione abbinato, M2GL-EVAL-KIT (Figura 3).
Figura 3: M2GL-EVAL-KIT è un kit di valutazione per IGLOO2, dotato di un alto livello di integrazione delle funzionalità, bassa potenza, alta affidabilità e sicurezza avanzata. (Immagine per gentile concessione di Microchip Technology)
M2GL-EVAL-KIT facilita lo sviluppo di applicazioni integrate che interessano il controllo motori, la gestione del sistema, l'automazione industriale e applicazioni I/O seriale ad alta velocità, oltre a PCI Express e Gigabit Ethernet. Il kit offre un alto grado di integrazione delle funzionalità, bassa potenza, alta affidabilità e sicurezza avanzata. La scheda ha anche un fattore di forma compatto conforme a PCIe che consente agli sviluppatori di effettuare la prototipazione utilizzando qualsiasi PC desktop o portatile con uno slot PCIe.
SoC entry-level: FPGA SoC SmartFusion2
Gli FPGA SoC SmartFusion2 sono basati sulla struttura tradizionale programmabile dei dispositivi IGLOO2 potenziata con un hard core di processore a 32 bit. Dato che il processore fa parte della famiglia Arm® Cortex®, la famiglia SmartFusion2 rappresenta un ottimo punto di ingresso nel mondo degli FPGA SoC.
Questi FPGA SoC offrono da 5.000 a 150.000 LE con un processore Arm Cortex-M3 a 166 MHz, comprese l'Embedded Trace Macrocell (ETM) e la cache di istruzioni con eSRAM su chip e NVM embedded (eNVM), oltre a un sottosistema completo di microcontroller potenziato con una suite estesa di periferiche, incluse CAN, TSE e USB.
Figura 4: Gli FPGA SoC SmartFusion2 offrono da 5.000 a 150.000 LE con un processore Arm Cortex-M3 a 166 MHz, comprese ETM e cache di istruzioni con eSRAM su chip ed eNVM embedded, oltre a un sottosistema completo di microcontroller potenziato con una suite estesa di periferiche, incluse CAN, TSE e USB. (Immagine per gentile concessione di Microchip Technology)
Questi dispositivi flash FPGA SoC sono ideali per uso generale come Gigabit Ethernet o piani di controllo Dual PCI Express, funzioni di bridging, espansione e conversione I/O, elaborazione di video/immagini, gestione del sistema e connettività sicura. Anche in questo caso, le applicazioni sono molteplici e varie: dal settore delle comunicazioni a quello industriale e medicale, della difesa e dell'aviazione.
Un buon esempio di dispositivo SmartFusion2 è M2S025-FCSG325I con 25.000 LE, 256 kB di flash, 64 kB di RAM e un sottosistema con processore Arm Cortex-M3 a 32 bit a 166 MHz. Per consentire ai progettisti di studiare e sperimentare le caratteristiche della famiglia di FPGA SoC SmartFusion2, Microchip fornisce anche una scheda per maker SmartFusion2 abbinata, M2S010-MKR-KIT (Figura 5).
Figura 5: La scheda per maker SmartFusion2 è un kit di valutazione a basso costo per Flash SoC SmartFusion2 che combina su un singolo chip un processore Arm Cortex-M3 con una struttura FPGA basata su flash, oltre a molte delle SoC periferiche di uso comune come RAM e blocchi DSP.(Immagine per gentile concessione di Microchip Technology)
L'economica scheda per maker SmartFusion2, venduta in esclusiva da DigiKey, permette ai progettisti di accedere alla famiglia SmartFusion2. Questo particolare dispositivo offre un FPGA basato su flash con 12.000 LE, un processore Arm Cortex-M3 a 32 bit a 166 MHz, blocchi DSP, SRAM, eNVM e interfacce GPIO, tutto su un singolo chip.
La scheda per maker SmartFusion2 è inoltre dotata di un'interfaccia Ethernet, un sensore di luce ambiente, flash SPI, otto LED utente e due pulsanti utente.Le sue due connessioni predisposte non occupate supportano i moduli Wi-Fi/Bluetooth ESP32 ed ESP8266 (non inclusi). La scheda supporta una porta USB per la programmazione JTAG, le comunicazioni UART e la sua alimentazione. Vanta inoltre flash SPI, una sorgente di clock a 50 MHz e lo strato fisico (PHY) VSC8541 di Microchip per Ethernet a 100 Mbps o 1 Gbps.
Ottimizzazione dei costi e alte prestazioni: FPGA e FPGA SoC PolarFire
Gli FPGA PolarFire sono dispositivi ad alte prestazioni e ottimizzazione dei costi implementati con una tecnologia di processo a 28 nm. Sono progettati per consumare molto poco a medie densità con un alto grado di sicurezza e affidabilità.
La famiglia di prodotti va da 100.000 a 500.000 LE, è dotata di transceiver da 12,7 Gbit ed è progettata per consumare fino al 50% di energia in meno rispetto agli FPGA di fascia media della concorrenza.I dispositivi sono ideali per un'ampia gamma di applicazioni all'interno delle reti ad accesso cablato e dei mercati dell'infrastruttura cellulare, della difesa e dell'aviazione commerciale, nonché dei settori dell'automazione industriale e IoT.
Figura 6: Gli FPGA PolarFire vanno da 100.000 a 500.000 LE, sono dotati di transceiver da 12,7 Gbit e sono progettati per consumare fino al 50% di energia in meno rispetto agli FPGA di fascia media della concorrenza. (Immagine per gentile concessione di Microchip Technology)
La ragione principale per cui gli FPGA PolarFire consumano complessivamente fino al 50% in meno di energia rispetto agli FPGA della concorrenza è dovuta al fatto che utilizzano la tecnologia NVM sia per la memoria di configurazione su chip che per le celle di configurazione su chip. Ne conseguono una dispersione intrinsecamente bassa tra le celle di configurazione e un'accensione veramente "immediata", che elimina la corrente di inserzione e azzera la corrente di configurazione.
La preoccupazione principale per i dispositivi collegati alla periferia della rete è la sicurezza informatica, quindi non è sufficiente che gli sviluppatori si limitino a soddisfare i requisiti funzionali del loro progetto, ma devono farlo anche in modo sicuro. La sicurezza inizia durante la produzione del chip e continua lungo l'implementazione e il funzionamento del sistema. Microchip presenta gli FPGA PolarFire come i più avanzati del settore quanto a programmazione sicura.
Molte applicazioni per apparecchiature elettroniche complesse hanno un certo grado di requisiti di sicurezza nella loro progettazione. Gli FPGA PolarFire sono progettati per assicurare alta affidabilità, alta disponibilità, sicurezza e per sistemi mission-critical in applicazioni industriali, aeronautiche, militari e di comunicazione. Le caratteristiche che rendono i PolarFire idonei per queste applicazioni includono:
- Configurazione di FPGA con tasso zero di guasti per unità di tempo (FIT)
- Memorie protette SEU
- Controller di memoria con correzione dell'errore singolo, rilevamento di doppio errore (SECDED)
- Auto-test incorporato
- Non è richiesto alcun dispositivo di configurazione esterno
Un buon esempio di dispositivo PolarFire è MPF100T-FCSG325I con 109.000 LE, 7.782.400 bit di RAM e 170 I/O. Per consentire ai progettisti di studiare e sperimentare le caratteristiche della famiglia di FPGA PolarFire, Microchip fornisce anche un kit di valutazione abbinato, MPF300-EVAL-KIT (Figura 7).
Figura 7: Per consentire ai progettisti di studiare e sperimentare le caratteristiche della famiglia di FPGA PolarFire, Microchip fornisce anche un kit di valutazione abbinato, MPF300-EVAL-KIT. (Immagine per gentile concessione di Microchip Technology)
MPF300-EVAL-KIT offre una valutazione ad alte prestazioni in una vasta gamma di applicazioni. È particolarmente adatto per la valutazione di transceiver ad alta velocità, Ethernet 10 Gbit, IEEE1588, JESD204B, SyncE, CPRI e altri ancora. Le connessioni del kit includono una scheda mezzanine FPGA (FMC) ad alta piedinatura (HPC), numerosi SMA, PCIe, Dual Gigabit Ethernet RJ45, SFP+ e USB. Un FPGA PolarFire con 300.000 elementi di logica (LE) con DDR4, DDR3 e Flash SPI permette di sviluppare un'ampia classe di progetti ad alte prestazioni.
I progressi della linea PolarFire continuano. Al momento della stesura di questo articolo, Microchip Technology rendeva noti i dettagli sulla sua prossima famiglia di FPGA SoC PolarFire, che sarà dotata di un sottosistema di microprocessori basati su RISC-V open-source a 64 bit, abilitati per Linux, in tempo reale e integrati nell'hardware.
Progettazione e sviluppo con gli FPGA di Microchip Technology
Una delle tecniche più diffuse per sviluppare utilizzando gli FPGA è quella della progettazione guidata dal linguaggio (LDD). Ciò comporta l'acquisizione dell'intento progettuale a un livello di astrazione noto come livello a trasferimento tra registri (RTL) utilizzando un linguaggio di descrizione dell'hardware (HDL), come Verilog, VHDL o SystemVerilog. Dopo la verifica tramite simulazione logica, questa rappresentazione viene inserita in un motore di sintesi, insieme a informazioni aggiuntive come il tipo di FPGA di destinazione, le assegnazioni dei pin e i vincoli di temporizzazione (ad esempio, i ritardi massimi tra ingresso e uscita). Il motore di sintesi emette un file di configurazione che viene caricato direttamente nell'FPGA (in caso di FPGA o FPGA SoC di Microchip) o in un dispositivo di memoria esterno (in caso di dispositivi basati su SRAM) (Figura 6).
Figura 8: Dopo la verifica per mezzo di una simulazione logica, la descrizione del progetto RTL viene inserita in un motore di sintesi insieme a ulteriori dettagli pertinenti come il tipo di FPGA, le assegnazioni dei pin e i vincoli di temporizzazione. Il motore di sintesi produce un file di configurazione che viene caricato direttamente nell'FPGA. (Immagine per gentile concessione di Max Maxfield)
La Libero SoC Design Suite di Microchip rientra in questa classe di strumenti. Questo software offre una suite completa di strumenti di sviluppo integrati, facili da imparare e da adottare per la progettazione con gli FPGA IGLOO2 e PolarFire e gli FPGA SoC SmartFusion2 e PolarFire di Microchip. La suite integra la sintesi Synopsys Synplify Pro standard del settore e la simulazione ModelSim di Mentor Graphics con strumenti di gestione dei vincoli, programmazione e debug e supporto per la programmazione della produzione sicura.
Oltre ad acquisire i progetti in formato testuale utilizzando Verilog, VHDL o SystemVerilog, la suite include anche una voce grafica tramite la quale è possibile definire il sistema come una gerarchia di blocchi collegati in cui quelli di livello inferiore sono rappresentati in HDL definiti dall'utente o come IP di terze parti.
Esiste poi System Builder, uno strumento di progettazione intuitivo che guida gli utenti attraverso una serie di domande di alto livello che definiranno il sistema previsto. System Builder inizia ponendo domande sull'architettura di sistema desiderata, aggiunge eventuali periferiche da implementare come soft core nel tessuto programmabile e, da ultimo, crea un sistema completo corretto per il progetto.
Infine vi è l'ambiente di sviluppo integrato (IDE) SoftConsole che facilita il rapido sviluppo di software C/C++ basato su bare-metal e RTOS per processori soft a 32 bit istanziati negli FPGA e negli FPGA SoC di Microchip, oltre agli hard core di processori a 32 e 64 bit che si trovano rispettivamente negli FPGA SmartFusion2 e SoC PolarFire.
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'IA.
Come è stato dimostrato, l'offerta di FPGA e FPGA SoC di Microchip Technology si colloca nella fascia medio-bassa, con particolare attenzione ai dispositivi di alta sicurezza, a bassa potenza e alta affidabilità. Gli FPGA sono dotati di robuste risorse di elaborazione dei segnali e di memoria e rappresentano un'eccellente piattaforma su cui sviluppare applicazioni come l'accelerazione hardware, l'intelligenza artificiale, l'elaborazione delle immagini e l'edge computing in settori come le comunicazioni, industriale, militare e dell'aviazione.

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.