Come posso spiegare la differenza tra emulatore e simulatore in termini di linguaggio dell'ingegneria elettrica?


Risposta 1:

Un simulatore è un software che esegue un modello di hardware su processori regolari (come X86), un emulatore è un hardware che esegue un modello di hardware. L'hardware di un emulatore è in genere qualcosa di simile a FPGA o ASIC in grado di eseguire rapidamente FSM, come descritto in HDL a livello di RTL per la progettazione IC effettiva.

Gli emulatori sono principalmente utili per la convalida del software che verrà eseguito su un sistema prima di ottenere il vero silicio, perché possono funzionare più vicino alla velocità reale. Non modellano aspetti del silicio come i tempi o la gestione dell'alimentazione, che possono essere modellati nei simulatori software.


Risposta 2:

Non prenderlo come vangelo, ma forse è un punto di partenza. Per quanto ne so, un emulatore replica, in software e hardware, l'effettivo software e hardware di un altro prodotto. Detto questo, ricrea l'hardware effettivo come software, quindi ricrea il software operativo su quell'hardware. Quindi avresti uno strato di software (sistema operativo, programma, ecc.) Che avrebbe un altro strato di software (l'hardware del dispositivo da replicare) che avrebbe un altro strato di software (il software in esecuzione nell'hardware emulato). Se eseguo un programma di simulazione elettrica in cui ho ricreato l'hardware di un Super Nintendo e caricato a sua volta la ROM per Super Mario Brothers, quello è un emulatore.

Un simulatore, d'altra parte, ricrea l'effetto di cui sopra, ma non cerca di farlo replicando l'hardware reale. È pensato solo per fare la stessa cosa, ovvero far funzionare Super Mario sul mio computer.

Spero che questo possa essere d'aiuto.