Home - Blog

FPGA Vs Microcontrollori – Qual è il Migliore Per Le Tue Necessità

Informazioni su FPGA Vs Microcontrollori, Ti piace ideare I tuoi sistemi interattivi e integrati?

Gli FPGA vs microcontrollori costituiscono due tra gli articoli più in voga tra gli ingegneri elettrici o gli appassionati. Entrambi possono essere progettati per compiere determinate funzioni. Se hai fatto tuoi i concetti base, hai infinite possibilità, e proprio questo aspettò sarà al centro della nostra analisi che segue. Ad ogni modo, prima di iniziare, conosci le differenze che vi sono tra loro?

Conoscere le differenze tra FPGA, microprocessori e microcontrollori è basilare per scegliere quello migliore per portare a termine il tuo progetto.

Abbiamo disposto una guida studiata incentrata sulle differenze dei vari componenti affinché il tuo progetto possa avere successo e risultare funzionale.

1FPGA

1.1 Cos’è il FPGA?

L’acronimo FPGA sta per Dispositivo Logico Programmabile e costituisce una tipologia di circuito integrato. Un ingegnere o progettista è in grado di programmarlo dopo la produzione per compiere varie attività.

Gli FPGA sono dotati di molti blocchi logici programmabili e framework di interconnessioni che hanno la possibilità di essere riconfigurati per poter essere ricablati. Le porte logiche possono essere cablate tramite diverse configurazioni, che permettono loro di essere cablate insieme. Configurando i blocchi logici e le porte logiche sicure quali ad esempio XOR e AND, hai la possibilità di attuare complesse funzioni combinatorie.

All’interno di un FPGA troverai anche componenti di memoria, quali blocchi di memoria completi e semplici flip-flop.

Gli FPGA possono essere in automobili, data center, apparecchiature mediche, strumenti di elaborazione di immagini e video, comunicazioni cablate e così via.

FPGA Vs. Microcontrollore

Immagine 1: FPGA Vs. Microcontrollore

1.2 Programmazione di FPGA

La programmazione FPGA corrisponde al processo di configurazione o riconfigurazione del CI per mezzo di linguaggi descrittivi hardware quali VHDL e Verilog. Grazie alla programmazione, gli FPGA sono in grado di eseguire funzioni specifiche collegando i blocchi logici e le interconnessioni.

Linguaggio di Programmazione di FPGA

Il linguaggio di programmazione per FPGA noto come linguaggio di descrizione hardware è concepito per la progettazione o la descrizione dell’hardware. I due linguaggi più diffusamente utilizzati per la programmazione FPGA sono VHDL e Verilog HDL.

VHDL

VHDL è stato sviluppato dal Dipartimento della Difesa degli Stati Uniti e costituisce un linguaggio VHSIC (Very High Speed ​​Integrated Circuits- ossia Circuiti Integrati Ad Estrema Velocità). Il Dipartimento ha iniziato a studiare il linguaggio negli anni ’80 per creare circuiti ad alta velocità. È stato adottato come standard IEEE 1076 nell’anno 1987.

È largamente utilizzato nella progettazione di circuiti di segnali analogici misti e digitali.

Verilog HDL

Fu D. Warmke, C.-L, ad ideare il linguaggio, mentre Huang, P. Goel e P. Moorby furono coloro che eseguirono la simulazione e modellazione dei gate nel 1984 per un simulatore logico. Cadence rilevò il progetto nel 1990 e acquisì lo standard IEEE 1364 nel 1995.

Questo linguaggio viene impiegato nella convalida e progettazione di circuiti digitali e circuiti analogici o a segnali misti.

1.3 Scheda FPGA

Gli FPGA sono circuiti integrati destinati a eseguire determinati compiti. Puoi acquistarli come prodotto singolo o utilizzare schede FPGA impiegate per scopi di emulazione e sviluppo.

Le schede FPGA agevolano il tuo lavoro e non hanno bisogno dell’acquisto di periferiche aggiuntive. I pannelli sono dotati di alcune forme di archiviazione esterna e di RAM e ROM per lo svolgimento delle attività. Potresti anche imbatterti in interruttori, LED, connettori di espansione pin, flip-flop e porte I / O necessarie.

Acquistare una scheda FPGA potrebbe costituire un’opzione conveniente piuttosto che investire in componenti hardware separati.

1.4 Tutorial su FPGA

Una tra le questioni fondamentali da comprendere riguarda il design della logica digitale e la familiarità con concetti quali porte logiche e circuiti logici sequenziali e combinatori. Per questo motivo, per configurare i tuoi FPGA potresti dover imparare il linguaggio di programmazione Verilog o VHDL.

Se desideri ricevere assistenza, puoi ricorrere ai molti video online per ottenere istruzioni dettagliate. Esistono anche diverse guide e tutorial disponibili su Internet per studiare la programmazione FPGA.

Nel prossimo capitolo andremo ad analizzare più nel dettaglio i microcontrollori.

2Microcontrollore

I microcontrollori sono proprio come dei veri e propri computer che hanno la propria RAM, ROM, porte I / O e dispositivi periferici per eseguire attività specifiche. Tra i diversi microcontrollori che puoi trovare, vi sono il microcontrollore Arduino e il Microcontrollore Pic.

Microcontrollore

Immagine 2: FPGA Vs. Microcontrollore

Microcontrollore PIC

Microchip Technology produce microcontrollori PIC basati sul PIC1650 sviluppato da General Instrument. Le versioni precedenti sono uscite nel 1976 ed entro il 2013 la società è riuscita a vendere più di dodici miliardi di kit.

I microcontrollori hanno la possibilità di essere riprogrammati e di utilizzare la memoria flash per l’archiviazione. Inoltre, sono disponibili in diversi modelli e quelli moderni fanno uso di potenti chip con linee guida per la lavorazione del segnale digitale.

Puoi acquistarli in diverse combinazioni di pin che possono variare da 6 pin a 144 pin chip. Includono anche porte di comunicazione, USB, pin I / O e moduli ADC e DAC. Per programmare i microcontrollori, puoi utilizzare il software fornito dalla società.

Programmazione di Microcontrollori

I microcontrollori possono essere programmati facendo uso di una varietà di linguaggi di assemblaggio. Al momento vengono impiegati anche vari linguaggi di programmazione di alto livello, quali JavaScript, Python e C. Alcuni linguaggi sono stati concepiti sulla base dello scopo, mentre altri, quali ad esempio C, sono linguaggi di programmazione generali.

I linguaggi generali possono avere alcune limiti e funzionalità per supportare le capacità uniche di un microcontrollore. Al fine di facilitarne lo sviluppo, i produttori sono soliti rilasciare anche un ambiente di programmazione per gli utenti.

Nel capitolo che segue daremo uno sguardo alle differenze tra microprocessori e microcontrollori.

3Microprocessore Vs. Microcontrollore

Molte persone fanno uso dei termini microprocessore e microcontrollore in modo intercambiabile, ma in realtà fanno riferimento a due cose totalmente diverse. Identificare alcune somiglianze tra loro è possibile ed entrambi sono concepiti per svolgere attività in tempo reale.

Microprocessori e microcontrollori non possono essere distinti solamente in base al rilevamento visivo ed entrambi costituiscono tipologie di circuiti integrati. Sulla base di scopo e caratteristiche, puoi imbatterti in diverse versioni sul mercato che vanno da 6 pin a un massimo di 100 pin.

FPGA Vs. Microcontrollore

Immagine 3: FPGA Vs. Microcontrollore

3.1 Differenze tra Microprocessore e Microcontrollore

I microprocessori costituiscono circuiti integrati dotati di un computer o una CPU all’interno e di potenza di elaborazione. Esempi di microprocessori possono essere Pentium 3, 4, i5, core two duos e altri che puoi trovare nei computer.

Non ti imbatterai in periferiche come RAM, ROM sul chip, poiché vengono fornite dal chip dal progettista per ottenere funzionalità.

Il microcontrollore stesso è un computer con RAM, ROM, timer, porte I / O e altre periferiche incorporate. Per questo motivo sono anche noti come computer su un singolo chip o mini-computer. Oggi sono disponibili diverse versioni di microcontrollori con una varietà di funzioni diverse.

I microprocessori sono ingombranti a causa delle periferiche esterne, mentre i microcontrollori sono più piccoli. costituiscono il cuore di un sistema informatico mentre i microcontrollori scortano i sistemi integrati.

I microcontrollori sono concepiti per portare a termine compiti specifici in cui sono stati stabiliti determinati input e output. Alcune elaborazioni vengono eseguite in base alla natura dell’applicazione e da lì generato il lavoro. La specificità delle attività richiede un utilizzo notevolmente inferiore di porte I / O, RAM, ROM e può essere adattata a un singolo chip.

I benefici principali includono costi ridotti e possono essere riscontrati in dispositivi come telecomandi, cellulari, tastiere, pen drive, fotocamere digitali, ecc.

I microprocessori non vengono impiegati in attività specifiche ma in attività multiforme quali ad esempio lo sviluppo di giochi, software, siti Web e editing video. In questo caso, difatti, la relazione tra input e output non è definita.

I microprocessori sono concepiti per dirigere attività articolate e raggiungere velocità di clock molto più elevate rispetto ai microcontrollori.

I microprocessori moderni possono andare oltre 1 GHz, mentre i microcontrollori riescono a spingersi fino ad un massimo di 30-50 MHz.

Un’altra differenza è legata al costo. Puoi acquistare, difatti, un microcontrollore a un prezzo molto inferiore rispetto a un microprocessore. Tuttavia, fare uso di un microcontrollore al posto di un microprocessore non è consigliabile, mentre utilizzare un microprocessore al posto di un microcontrollore può far incorrere in applicazioni decisamente costose.

Il costo risulta inferiore anche perché i microcontrollori vengono configurati con una la tecnologia CMOS. I microprocessori, al contrario, richiedono più componenti esterni per operare e alla fine finiscono per divenire dispendiosi.

I microcontrollori sono dotati di un sistema di risparmio energetico, mentre i microprocessori ne sono privi. consumano anche meno energia rispetto al microprocessore in quanto non hanno bisogno del supporto di componenti esterni.

Per progettare un microcontrollore con memoria e programmare informazioni specifiche viene impiegata l’architettura di Harvard. sono elaborati con un’architettura von-Neumann, ove la memoria viene trasferita a un modulo di memoria equivalente.

I microprocessori non necessitano di tanti registri quanti sono i microcontrollori. I primi hanno operazioni basate sulla memoria e il secondo permette ai programmi di essere maggiormente accessibili alla scrittura.

Abbiamo fin qui parlato in maniera approfondita delle differenze tra microprocessori e microcontrollori, perciò a questo punto dovresti aver accumulato una chiara comprensione di entrambi. Ora esploreremo le differenze tra FPGA e microcontrollori.

4FPGA Vs. Microcontrollori

I microcontrollori e gli FPGA costituiscono i due strumenti più vitali per gli appassionati e gli ingegneri elettrici. Al fine di poter avere una comprensione quanto più esauriente in merito alle loro differenze, è necessario analizzare meglio FPGA vs microcontrollore.

I microcontrollori e gli FPGA sono i due strumenti più essenziali utilizzati sia dagli hobbisti che dagli ingegneri elettrici. È necessario passare attraverso una discussione su FPGA vs microcontrollore per distinguere tra i due.

Tuttavia, per prima cosa, daremo un’occhiata a quelle che sono le somiglianze! Entrambi i componenti hanno lo scopo di monitorare i valori di uscita e l’effetto in base al valore di uscita in un senso più ampio. Puoi creare un’architettura del microcontrollore utilizzando un FPGA, ma non è possibile il contrario.

FPGA Vs. Microcontrollore

Immagine 4: FPGA Vs. Microcontrollore

4.1 Differenze tra FPGA e Microcontrollori

Quasi tutti i dispositivi informatici sono dotati di un microcontrollore incorporato per poter portare a termine attività e interazioni. In tal senso, puoi mettere a confronto la struttura di un microcontrollore con quella di un computer, che dispone di tutte le periferiche necessarie come memoria, porte di ingresso-uscita e timer. Può essere programmato per compiere semplici operazioni per conto di altro hardware.

L’FPGA costituisce un circuito integrato che viene fornito con milioni di porte logiche e può essere ideato per eseguire attività programmandole. Per poter essere applicati, gli FPGA necessitano di periferiche esterne come RAM e ROM.

Il microcontrollore fa uso di un programma software per eseguire i comandi consecutivamente, quali ad esempio C, C ++. La connessione di programmazione dell’FPGA sta sul circuito logico e fa uso di soluzioni di programmazione quali ad esempio VHDL e Verilog.

La potenza di lavorazione dei microcontrollori è limitata nel tempo e fa affidamento sulla potenza di ciclo del processore. Gli FPGA hanno spazio limitato perciò è necessario creare più circuiti logici per ottenere la scala di codifica desiderata.

Gli FPGA sono più versatili e flessibili a causa della loro natura. Sono “programmabili sul campo”, ossia si può riprogrammare l’FPGA per poter portare a termine qualsiasi attività logica che può essere adattata alle porte logiche disponibili. Le porte logiche possono essere ricablate tante volte quante sono necessarie per modificare il programma ed eseguire un’attività differente.

Dal momento che vengono forniti con istruzioni e relativi circuiti, i microcontrollori possono eseguire attività limitate.

Per questo motivo, un programmatore deve rispettare le restrizioni durante lo sviluppo del codice.

I due si distinguono anche in base ai metodi impiegati per elaborare le istruzioni. I microcontrollori leggono ogni riga del programma in maniera sequenziale; ciò implica che anche i comandi vengono elaborati in sequenza. Gli FPGA sono in grado di processare gli ordini simultaneamente e possono eseguire molteplici righe di codici in un determinato momento. Sono inoltre cablati proprio come nel caso di un circuito elettrico così che possono ottenere circuiti paralleli appropriati.

Ciò nonostante, nei microcontrollori, il processore passa da un codice all’altro per ottenere un certo livello di parallelismo. Di sicuro troverai più semplice scrivere i codici riportati di seguito sui microcontrollori rispetto agli FPGA.

La capacità di elaborazione parallela degli FPGA permette di verificare le interruzioni in modo efficiente tramite Finite State Machines (FSM). Nel caso dei microcontrollori, devi tener conto del tempo impiegato da ISR per risolvere un’interruzione.

Puoi ricablare facilmente un FPGA semplicemente riprogrammandolo. La configurazione in un FPGA viene caricata sulle celle logiche configurabili all’accensione. Non è necessario apportare modifiche all’hardware per riprogrammare l’FPGA.

I microcontrollori possono eseguire un programma e svolgere compiti generali. Se si desidera modificare il set di istruzioni della scheda, sarà necessario modificare il layout dell’IC al silicio.

Puoi ricablare agevolmente un FPGA semplicemente riprogrammandolo.

La configurazione in un FPGA viene caricata sulle celle logiche configurabili al momento dell’accensione. Per poter riprogrammare l’FPGA non c’è bisogno di apportare modifiche all’hardware.

I microcontrollori possono eseguire un programma e svolgere attività di carattere generale. Se vuoi modificare il set di istruzioni della scheda, dovrai apportare modifiche al layout dell’IC al silicio.

Gli FPGA sono idonei per l’elaborazione ad alta velocità di dati paralleli e sono dotati di un alto grado di customizzazione. Tuttavia, soffrono anche di alcuni svantaggi dal punto di vista del funzionamento del prototipo e della complessità della configurazione.

Ci vuole tempo per creare una funzione FPGA poiché è necessario scrivere tutti i codici da zero e quindi convertirli in linguaggio macchina. Nel caso dei microcontrollori, puoi trovare pacchetti già pronti per attuare attività specifiche e personalizzarli in base alle proprie esigenze.

I microcontrollori sono di facile utilizzo e configurazione e possono gestire dati sequenziali ad alta velocità. Tuttavia, mancano di alcune delle caratteristiche degli FPGA. I microcontrollori si sono rivelati più flessibili se si fa riferimento alla programmazione ma non possono essere personalizzati con precisione tramite l’hardware.

Inoltre, nell’aver a che fare con la programmazione FPGA dovrai anche affrontare una curva di apprendimento piuttosto ripida. Puoi adattare il metodo per tentativi ed errori e testare i tuoi progressi utilizzando microcontrollori.

Quando si parla delle differenze tra microcontrollore e FPGA, devi tenere conto anche del consumo energetico. Discuteremo di questo argomento nel prossimo capitolo.

5Consumo Energetico FPGA Vs. Microcontrollore

È ormai di pubblico dominio il fatto che gli FPGA consumano più energia rispetto ai microcontrollori per diversi motivi. Questo aspetto può rappresentare una sfida per gli ingegneri che vogliono realizzare sistemi di alimentazione efficienti. Gli FPGA possono superare i limiti di potenza di un sistema integrato e potrebbero non rivelarsi idonei a tutti gli scopi.

Gli FPGA sono stati impiegati per l’emulazione e la prototipazione, ma non sono ugualmente efficienti come altri componenti quali gli ASIC. Puoi riprogrammare un FPGA, ma sicuramente soffrirà dello svantaggio relativo all’inefficienza, dal momento che l’utilizzo della logica diventa irrisorio a causa dei vincoli di luogo e percorso.

Inoltre, a causa dei transistor inutilizzati, consuma un elevato quantitativo di potenza. Anche clock trees inefficienti e percorsi di segnale estesi contribuiscono ad incrementare il consumo di energia.

Gli FPGA vengono impiegati in attività ad alta velocità che superano le capacità del microcontrollore. Per questo motivo, gli FPGA non risultano ottimizzati dal punto di vista del consumo energetico. I microcontrollori hanno velocità di elaborazione di pochi MHz e consumano molta meno energia rispetto agli FPGA.

Puoi anche trovarti di fronte a modalità di inattività o risparmio energetico sui microcontrollori, rendendoli una scelta sostenibile in molti casi. Alcuni di essi hanno correnti di riposo inferiori a 1 µA e possono operare a pochi µA durante frequenze di clock lente.

Non sarai in grado di trovare nessun FPGA con requisiti di potenza così bassi sul mercato. Per questo motivo molti sistemi FPGA fanno uso di un microcontrollore sulla scheda per aumentare l’efficienza energetica.

Consumo Energetico Diagramma schematico

Immagine 5: FPGA Vs. Microcontrollore

6Conclusioni

Possiamo esserti di supporto nell’acquisto di circuiti integrati e produzione di schede in base alle tue precise specifiche e preferenze.

Per ulteriori domande sulla produzione e l’assemblaggio di PCB, non esitate a contattarci, saremo più che lieti di supportarvi.

Hommer Zhao
Ciao, sono Hommer, il fondatore di WellPCB. Finora abbiamo più di 4.000 clienti in tutto il mondo. Per qualsiasi domanda puoi sentirti libero di contattarmi. Grazie in anticipo.

Servizi