Centro Assistenza  
Invio di un messaggio
Orari di apertura: 9:00-21:00 (GMT+8)
Hotline di servizio

9:00 -18:00, lun. - Ven. (GMT+8)

9:00 -12:00, sabato (GMT+8)

(Eccetto i giorni festivi cinesi)

X

FPGA vs. Microcontrollore: comprendere le differenze chiave

8476

Microcontrollori e FPGA (Field Programmable Gate Array) sono entrambi ampiamente utilizzati nella progettazione di sistemi digitali. I sistemi basati su microcontrollori stanno diventando sempre più popolari. Da un lato, il loro basso costo, il basso consumo energetico e la loro idoneità per compiti di controllo di base li rendono una scelta ovvia. Dall'altro, la rapida espansione degli FPGA, la disponibilità di strumenti di sviluppo robusti e la loro maggiore capacità e densità di elaborazione parallela rendono i sistemi basati su FPGA un'opzione interessante.


Oggi sono disponibili diversi core per microcontrollori per il mercato embedded, che vanno da modelli convenzionali come l'8051 a macchine RISC o DSP. La scelta tra diversi modelli è determinata da criteri quali velocità, potenza, base installata, potenziale di riutilizzo e altre considerazioni tecniche. Le applicazioni embedded sono un argomento di studio in continua espansione nei sistemi informatici. L'elevato numero di porte di comunicazione, unità di modulazione di larghezza di impulso (PWM) e convertitori analogico-digitali (ADC) integrati in un singolo chip rendono l'MCU ideale per le applicazioni industriali.



In vari campi dell'ingegneria elettrica, le MCU sono tipicamente utilizzate per il controllo di base, la comunicazione e compiti a bassa complessità, mentre gli FPGA (Field Programmable Gate Array) sono impiegati per compiti di elaborazione ad alta velocità e time-critical. Tuttavia, le applicazioni basate su dispositivi integrati nell'elettronica di consumo presentano diverse restrizioni progettuali. In questo caso, il consumo energetico, la densità di codice e l'integrazione periferica potrebbero avere la precedenza sui requisiti prestazionali. D'altra parte, da un punto di vista tecnologico, la crescente densità degli FPGA e il calo dei loro prezzi dovuto all'elevato volume di produzione consentono l'integrazione di sistemi embedded in un singolo chip FPGA.

 

Cos'è un microcontrollore?

 

Un microcontrollore è un dispositivo elettronico appartenente alla famiglia dei microcomputer. I componenti del microcontrollore sono realizzati con l'ausilio della tecnologia Very Large Scale Integration (VLSI) per formare un singolo chip. Sono anche noti come Computer-on-chip. Un microcontrollore dispone di una certa quantità di RAM e ROM (EEPROM, EPROM, ecc.) o memorie flash per la memorizzazione del codice di programma. Ulteriori funzionalità includono timer, porte parallele, porte seriali, porte di interrupt, ADC, PWM e DAC. Un microcontrollore è un microprocessore con capacità di memoria e I/O. I microcontrollori sono ampiamente utilizzati nei sistemi embedded grazie all'integrazione di CPU, memoria e periferiche I/O in un singolo chip.

 



Un PC o un laptop è un dispositivo multiuso (utilizzato per varie attività come giocare, navigare in Internet, ascoltare musica, elaborare testi, ecc.). Al contrario, i sistemi embedded sono in genere dispositivi monofunzionali progettati per compiti specifici. Una caratteristica fondamentale dei sistemi a microcontrollore è che spesso svolgono attività dedicate senza bisogno di un sistema operativo completo (ad esempio, Windows, Linux, macOS, iOS). Orologi, lettori MP3, distributori automatici e altri dispositivi elettronici contengono sistemi embedded. Un computer completo a volte interferirebbe con le funzionalità del dispositivo. Immaginate di dover avviare Windows per far funzionare una lavastoviglie. La Figura 2 illustra l'architettura di un microcontrollore.

 



I compilatori verificano la validità del codice del linguaggio di programmazione di alto livello, sia in termini di grammatica che di allocazione di memoria. In queste circostanze, vengono spesso visualizzati errori o avvisi e i codici contenenti errori non vengono memorizzati sul microcontrollore. Una volta che il codice è corretto, il compilatore lo trasforma in codice macchina e genera un file HEX che viene caricato nella memoria del microcontrollore.

 

Che cosa è un FPGA (Field Programmable Gate Array)?

 

Array di porte programmabili sul campo (FPGAGli FPGA (FPGA) sono circuiti integrati digitali (CI) che includono blocchi logici e interconnessioni modificabili (programmabili). I progettisti possono programmare tali dispositivi per eseguire un'ampia gamma di funzioni. A seconda di come sono costruiti, alcuni FPGA possono essere programmati una sola volta, mentre altri possono essere programmati ripetutamente. Non sorprende che un dispositivo che può essere programmato una sola volta sia noto come "one-time programmable".

 

La parte "programmabile sul campo" del nome FPGA allude al fatto che la programmazione avviene "sul campo" (a differenza dei dispositivi le cui funzionalità principali sono preconfigurate dal produttore). Questo potrebbe applicarsi alla configurazione di FPGA in laboratorio o alla modifica del funzionamento di un dispositivo in un sistema elettronico già implementato nel mondo reale. Se un dispositivo può essere programmato rimanendo in un sistema di livello superiore, si dice che è programmabile nel sistema. La Figura 3 illustra la scheda di sviluppo per l'FPGA.

 



Gli FPGA vengono spesso utilizzati come coprocessori per processori esistenti, sia per accelerare attività time-critical sia per estendere le funzionalità delle tipiche ALU. Ad esempio, quando si utilizzano microcontrollori, il calcolo di equazioni con più di due termini richiede una serie di operazioni aritmetiche e/o logiche e, in molte circostanze, è necessario assegnare una variabile temporanea. Gli FPGA possono migliorare le prestazioni di tali sistemi completando tali calcoli in parallelo e utilizzando una buona dose di logica combinatoria.

 

Sono anche comunemente impiegati in sistemi di elaborazione personalizzati, in cui un intero dispositivo di elaborazione viene creato e implementato in un FPGA. I microcontrollori a chip singolo sono spesso utilizzati e sufficienti per determinate esigenze applicative. In questo caso, è necessario scrivere solo il software per l'applicazione desiderata. L'interfaccia hardware è essenziale per la progettazione di tali sistemi e viene spesso implementata utilizzando chip specializzati standard. Ciò si traduce in un sistema fisso che non può essere modificato senza una riprogettazione hardware. Gli FPGA offrono una notevole flessibilità in queste applicazioni, consentendo la personalizzazione dell'hardware e l'elaborazione parallela. La Figura 4 rappresenta lo schema a blocchi interno di una scheda di sviluppo FPGA.

 



Differenze chiave tra microcontrollori e FPGA

 

Cookie di prestazione

 

Poiché i microcontrollori dipendono dalla velocità di clock, solitamente hanno prestazioni inferiori rispetto agli FPGA, poiché la loro frequenza dipende dal progetto. La maggior parte di queste applicazioni riguarda l'elaborazione di immagini e video.

 

Consumo di energia

 

I microcontrollori (MCU) consumano meno energia degli FPGA grazie alle loro dimensioni compatte. I microcontrollori sono ideali per il funzionamento di batterie, inverter e convertitori. D'altro canto, gli FPGA sono più adatti all'elaborazione digitale di immagini e video.

 

Flessibilità e personalizzazione

 

La configurazione hardware è flessibile durante l'esecuzione su FPGA, mentre nei microcontrollori tutte le modifiche vengono eseguite tramite sviluppo software. Questo ha reso i microcontrollori meno flessibili degli FPGA. La personalizzazione basata su software è vantaggiosa negli MCU, mentre quella basata su hardware è più semplice negli FPGA.

 

Tempo di sviluppo e complessità

 

MCU e FPGA differiscono in termini di architettura di memoria e caratteristiche prestazionali. Un microcontrollore ha una memoria non volatile, il che significa che dopo lo spegnimento, le MCU mantengono la propria memoria, mentre questa caratteristica è assente negli FPGA a causa della memoria ad accesso casuale (RANM) presente in questi ultimi. I microcontrollori sono in genere programmati utilizzando linguaggi di alto livello come C/C++, mentre lo sviluppo di FPGA richiede linguaggi di descrizione hardware come Verilog o VHDL. Verilog e FPGA sono supportati hardware, mentre C/C++ sono supportati software.

 

Somiglianze tra microcontrollore e FPGA?

 

Componenti di base

 

Un microcontrollore non è nulla se integrato con circuiti integrati (IC), mentre gli FPGA contengono principalmente IC e altri circuiti integrati. In breve, entrambe le tecnologie sono una combinazione di circuiti integrati e linguaggio di alto livello.

 

Personalizzazione

 

Dopo la produzione, sia gli FPGA che i microcontrollori sono riprogrammabili e la loro funzionalità può essere modificata dopo la realizzazione dell'infrastruttura. Tuttavia, gli FPGA sono adatti principalmente ad applicazioni complesse, mentre le MCU come Arduino sono adatte anche ad applicazioni più semplici.

 

Applicazioni per FPGA e microcontrollori

 

I microcontrollori sono ampiamente disponibili a basso costo e offrono una vasta gamma di funzionalità per applicazioni di potenza ed elettronica. Tuttavia, l'utilizzo di MCU richiede competenze in linguaggi di alto livello come C/C++. D'altra parte, gli FPGA hanno un prezzo più elevato, ma sono molto più intuitivi. I microcontrollori funzionano in modo efficiente a basso consumo, il che riduce il fabbisogno energetico. D'altra parte, gli FPGA richiedono un'elevata potenza, che a sua volta richiede più energia per il funzionamento. Le soluzioni basate su software non sono direttamente personalizzabili, mentre le soluzioni basate su hardware lo sono. Inverter, UPS e convertitori sono applicazioni ideali per MCU, mentre l'elaborazione di video e immagini è più adatta agli FPGA grazie alle loro capacità di elaborazione parallela.

 

Quando utilizzare FPGA e microcontrollori

 

Entrambi, tuttavia, dipendono dall'applicazione. Progettisti e ingegneri hanno trovato gli MCU più sofisticati nei sistemi embedded grazie alle loro dimensioni compatte, e la maggior parte delle applicazioni presenta vincoli dimensionali, come i convertitori CC-CC e molte altre applicazioni di elettronica di potenza. D'altra parte, gli FPGA sono durevoli ed efficienti nell'intelligenza artificiale, nell'elaborazione delle immagini e nell'elaborazione video. Gli FPGA sono intuitivi e possono gestire calcoli complessi molto più velocemente degli MCU. L'utilizzo degli FPGA richiede meno competenze da parte dell'utente rispetto agli MCU.

 

FPGA contro altri

 

In questa sezione vengono descritte le differenze tra FPGA, CPLD e MCU.

 

FPGA rispetto a CPLD

 

Aspetto di confronto

FPGA

CPLD

Struttura interna

Hcome tabelle di consultazione

Has minore complessità e blocchi logici più piccoli

Tempo di accensione

Tnon perde tempo

Tprende tempo

Consumo di energia

Elevato requisito di consumo energetico

Requisiti di basso consumo energetico


FPGA contro microprocessore

 

Aspetto di confronto

FPGA

Microprocessore

Funzionalità e flessibilità

Un programmamatrice logica in grado di eseguire più attività, tra cui elaborazione, crittografia e networking, offrendo elevata flessibilità

Esegue istruzioni per attività generali, progettate per funzioni specifiche e prive di flessibilità

Esecuzione attività

Esegue attività in parallelo, gestendo in modo efficiente grandi set di dati

Esegue le attività in sequenza

Tipo di memoria

Utilizza memoria volatile e necessita di riprogrammazione dopo un'interruzione di corrente

Utilizza memoria non volatile, mantenendo i dati dopo lo spegnimento

Casi d'uso

Adatto per calcoli ad alta velocità, elaborazione di flussi di dati e attività hardware personalizzate

Utilizzato per l'elaborazione di dati di uso generale, come il controllo del sistema operativo e la gestione I/O


Conclusione

 

Sia le MCU che gli FPGA sono vantaggiosi per numerose applicazioni digitali, elettriche e di potenza. I microcontrollori sono economici, consumano poca energia e sono software-friendly, mentre gli FPGA sono costosi, consumano molta energia e sono hardware-friendly, ma offrono prestazioni elevate e facilità di elaborazione parallela. Le MCU mantengono le loro funzioni anche se spente a causa della RAM, mentre questa caratteristica è assente negli FPGA a causa della loro memoria volatile. Sebbene entrambi si applichino a tecnologie basate sulla progettazione, un utente può considerare il consumo energetico, i tempi di sviluppo, l'elaborazione parallela e la flessibilità per un'applicazione in cui sia possibile utilizzare sia le MCU che gli FPGA.

Chi Autore

Emilia Carter

Steven si concentra sulla ricerca e sviluppo e sulla produzione di circuiti stampati ad alta precisione, ha familiarità con i più recenti processi di progettazione e produzione del settore e ha gestito diversi progetti di produzione di PCB per marchi di fama internazionale. I suoi articoli sulle nuove tecnologie e le tendenze nei circuiti stampati forniscono approfondimenti tecnici approfonditi per i professionisti del settore.

Assemblare 20 PCB per $0

Richiesta di informazioni sull'assemblea

Caricare un file

Preventivo istantaneo

x
Caricare un file

Contatto telefonico

+ 86-755-27218592

Inoltre, abbiamo preparato un Centro assistenza. Ti consigliamo di verificarlo prima di contattarci, poiché la tua domanda e la relativa risposta potrebbero essere già chiaramente spiegate lì.

Supporto WeChat

Inoltre, abbiamo preparato un Centro assistenza. Ti consigliamo di verificarlo prima di contattarci, poiché la tua domanda e la relativa risposta potrebbero essere già chiaramente spiegate lì.

Supporto WhatsApp

Inoltre, abbiamo preparato un Centro assistenza. Ti consigliamo di verificarlo prima di contattarci, poiché la tua domanda e la relativa risposta potrebbero essere già chiaramente spiegate lì.