Relazione tra MCU / CPU comuni a FPGA e ASIC

1

Sto cercando di capire la relazione tra MCU / CPU "comuni" come Intel, AMD, PowerPC, AVR, ARM, ecc. e gli FPGA e gli ASIC.

Ecco la mia comprensione :

  • Questi MCU / CPU (comuni, Intel, AVR, ARM, ecc.) sono "generali" e come tali non sono programmabili e sono pensati per eseguire una varietà di app diverse.
  • Gli FPGA sono anche MCU / CPU, tuttavia i loro circuiti sono interamente programmabili.
  • Gli ASIC sono anche MCU / CPU, tuttavia sono specifici delle app e non programmabili / riutilizzabili
  • Più MCU / CPU sono ottimizzate per l'applicazione che sta utilizzando, più veloce sarà la prestazione dell'app
  • Ergo: gli ASIC sono più veloci ma sono specifici per le app, non generici. MCU / CPU comuni sono più lenti (relativamente, non chiamandoli "lenti" con qualsiasi mezzo!) Ma sono di uso generale e possono eseguire qualsiasi app compatibile con i binari. E gli FPGA sono nel mezzo perché sono entrambi specifici per app e programmabili.

qualsiasi sulla mia comprensione sopra non è corretto? Se è così, per favore correggimi!

    
posta smeeb 13.05.2015 - 18:23
fonte

1 risposta

4

Stai mescolando le cose un po '. Hai in qualche modo ottenuto il succo ma non completamente.

Confrontiamo i microprocessori, i microcontrollori, gli FPGA e gli ASIC di uso generico. Hai messo insieme microcontrollori e microprocessori, quando davvero non dovevi.

General Purpose Microprocessori : questi sono processori desktop e portatili, processori Intel Pentium, AMD Athlon, ecc. Questi sono costosi processori ad alte prestazioni (watt) e molto potenti. Richiedono un'enorme quantità di circuiti di supporto per funzionare.

Microcontrollers : sono classicamente dispositivi come gli AVR Atmel a 8 bit, i PIC Microchip e molti altri. Si tratta in genere di dispositivi economici, a bassa velocità, a bassa prestazione ea bassa potenza, e spesso richiedono pochissimi circuiti di supporto per funzionare. 40W è basso per una CPU, 40mW è alto per un microcontrollore. Hanno poca memoria, spesso con solo 4-8K di SRAM e 64 KB di memoria flash.

I processori in molte applicazioni, come i telefoni cellulari, confondono le linee tra i microprocessori di uso generale, con prestazioni più elevate e maggiore memoria, ma ancora a bassa potenza. Ci sono molti prodotti ARM che stanno facendo progressi nel regno del microcontrollore che hanno capacità di prestazione enormemente superiori ai microcontrollori descritti sopra, con un consumo di energia decisamente maggiore, ma simili in termini di piccoli circuiti di supporto e costi. I processori di una fotocamera digitale, ad esempio, potrebbero essere un chip che non si adatta facilmente a nessuno dei due bucket (e probabilmente avrà un DSP robusto per utilizzarlo).

FPGA sono economicamente nel mezzo di microcontrollori e ASIC. Danno un trade-off ad alta velocità e bassa potenza, ma con una flessibilità ridotta e una maggiore complessità. Scrivere VHDL o Verilog per loro è molto più complicato della scrittura di C per un microcontrollore. In questi giorni, a meno che la tua applicazione non abbia molti componenti analogici, gli ASIC non sono spesso più economici degli FPGA. Un FPGA non è né un microprocessore né un microcontrollore, tuttavia, è possibile programmarne uno per funzionare come microcontrollore, purché disponga delle periferiche appropriate.

Circuito integrato specifico dell'applicazione ( ASIC s). Questi sono chip personalizzati progettati per un'attività specifica. Nella mia esperienza, l'etichetta ASIC continua con chip progettati per un singolo cliente / singolo prodotto, non solo per la loro specializzazione. Personalmente non chiamerei nulla del catalogo di chiavi digitali ASIC, solo un IC. Anche qualcosa come la TI ADS1298R, un chip progettato appositamente per i dispositivi ECG. Gli ASIC vengono utilizzati per prodotti speciali che hanno vincoli di velocità, potenza o dimensioni, in cui non è sufficiente una parte generica esistente. Un ASIC non è necessariamente progettato per la massima velocità, potrebbe anche essere a basso consumo energetico. Un ASIC può fare tutto e darti qualsiasi combinazione di velocità, potenza e dimensioni di cui hai bisogno, ma per arrivarci ti costerà più di qualsiasi altra opzione.

Anche in questo caso, come gli FPGA, gli ASIC non sono né microcontrollori né microprocessori, ma è possibile implementarne uno in un ASIC. Tuttavia, farlo sarebbe così scandalosamente costoso e complesso, che è necessario ripensare a quello che stai facendo. Invece, implementeresti un dispositivo che calcola un piccolo pezzo del puzzle, l'elemento che si trova nel ciclo più stretto della tua applicazione, quindi usa le parti generiche per tutto il resto.

Ovviamente, come accennato, ci sono molti dispositivi che non si adattano perfettamente a questi bucket.

Infine, i microprocessori generici non sono necessariamente i più lenti del gruppo, infatti i processori desktop sono incredibilmente veloci, superando quasi tutti gli FPGA. Tuttavia, richiedono anche tonnellate di energia rispetto a un FPGA. Quindi, se vuoi utilizzare un normale processore o un FPGA dipenderà dal fatto che la tua applicazione sia collegata al muro o che funzioni con una piccola batteria.

    
risposta data 14.05.2015 - 06:31
fonte

Leggi altre domande sui tag