Cos'è un FPGA?  Definizione, tipi, programmazione e altro

Blog

CasaCasa / Blog / Cos'è un FPGA? Definizione, tipi, programmazione e altro

Aug 30, 2023

Cos'è un FPGA? Definizione, tipi, programmazione e altro

Eileen Ann | 17 agosto 2023 Mentre i data center continuano ad evolversi per soddisfare le crescenti esigenze delle applicazioni moderne, gli FPGA (field-programmable gate array) sono emersi come popolari, versatili e

Eileen Ann | 17 agosto 2023

Mentre i data center continuano ad evolversi per soddisfare le crescenti esigenze delle applicazioni moderne, gli FPGA (field-programmable gate array) sono emersi come soluzioni popolari, versatili ed efficienti per migliorare le prestazioni dei data center.

In questo articolo acquisirai una conoscenza fondamentale di cosa sia un FPGA, imparerai a conoscere i diversi tipi di FPGA, esplorerai i vantaggi e le sfide dell'utilizzo degli FPGA, otterrai una panoramica di alto livello su come programmare un FPGA e scoprirai le potenzialità diversi tipi di linguaggi di programmazione FPGA.

Correlato: Intel frantuma i precedenti e abbraccia i processori con infrastruttura FPGA dedicata

Un gate array programmabile sul campo (FPGA) è un tipo di circuito integrato (IC), o chip, personalizzabile attraverso una serie di blocchi logici configurabili (CLB) e che può essere riconfigurato dopo la produzione.

Un CLB è l'unità logica fondamentale degli FPGA che in genere contiene una combinazione di flip-flop e tabelle di ricerca (LUT). I flip-flop offrono la possibilità di archiviare e manipolare i dati in circuiti logici sequenziali e le LUT vengono utilizzate per implementare la logica combinatoria.

Correlato: Unità di elaborazione dati: cosa sono le DPU e perché le desideri?

Gli FPGA possono includere componenti aggiuntivi come:

I produttori di FPGA possono implementare circuiti digitali personalizzati e riconfigurare i componenti per soddisfare le esigenze dell'utente finale.

Insieme agli FPGA, anche gli ASIC e i CPLD sono componenti importanti nell'informatica moderna e vengono spesso confrontati nel settore. Conoscere le differenze tra loro e quale scegliere per determinate applicazioni è importante sia per i professionisti IT principianti che per quelli veterani coinvolti nelle decisioni informatiche.

FPGA e ASIC sono entrambi tipi di circuiti integrati con progetti di circuiti simili, ma differiscono per scopo e funzionalità. In generale, gli ASIC sono progettati su misura per un'applicazione specifica, mentre gli FPGA sono più multiuso e possono essere riadattati per più applicazioni. I CPLD sono meno complessi degli FPGA e degli ASIC e vengono spesso utilizzati per applicazioni logiche più semplici.

La tabella seguente analizza i vantaggi e gli svantaggi di ciascun tipo di circuito per aiutarti a decidere quale è il migliore per le tue applicazioni.

Esistono tre tipi di FPGA: basati su memoria statica ad accesso casuale (SRAM), basati su flash e anti-fusibile.

Gli FPGA basati su SRAM utilizzano celle SRAM volatili per archiviare i dati di configurazione, che devono essere caricati ogni volta che un FPGA si accende. Sono comunemente utilizzati per la prototipazione, lo sviluppo e le applicazioni in cui sono necessari frequenti modifiche e test di progettazione.

Gli FPGA basati su flash utilizzano celle di memoria flash non volatili per archiviare i dati di configurazione, consentendo all'FPGA di mantenere la propria configurazione e rimanere attivo all'accensione. Gli FPGA basati su Flash sono più adatti per le applicazioni che necessitano di funzionalità immediata senza la necessità di ricaricare i dati di configurazione a ogni ciclo di accensione.

Gli FPGA anti-fusibile non sono volatili e rimangono attivi all'accensione, ma sono programmabili una sola volta e non possono essere annullati o riconfigurati. Queste caratteristiche rendono gli FPGA anti-fusibile ideali per le applicazioni che richiedono sicurezza e non necessitano di riprogrammazione aggiuntiva, come nel settore della difesa, aerospaziale o altre applicazioni ad alta affidabilità.

Gli FPGA offrono numerosi vantaggi, inclusi, ma non limitati a:

Alcune sfide legate all'utilizzo degli FPGA includono, ma non sono limitate a:

Può essere utile familiarizzare prima con termini e concetti come porte logiche, booleani e circuiti logici e i loro vari tipi.

Un bitstream FPGA è un file binario contenente le informazioni di configurazione per l'FPGA. Il flusso di bit FPGA dovrebbe specificare i blocchi logici configurabili, le interconnessioni e altri componenti necessari che dovrebbero funzionare insieme per il circuito digitale desiderato.

Impara e utilizza un HDL, come Verilog o VHDL, per scrivere codice per un flusso di progettazione FPGA che descriva il comportamento desiderato della tua logica, comprese le interconnessioni tra componenti, registri, segnali di controllo e percorsi dati.