Hvordan kan jeg forklare forskjellen mellom emulator og simulator når det gjelder språket elektroteknikk?


Svar 1:

En simulator er programvare som kjører en modell av maskinvare på vanlige prosessorer (som X86), en emulator er maskinvare som kjører en modell av maskinvare. Maskinvaren for en emulator er vanligvis noe som FPGAer eller ASIC-er som kan utføre FSM-er raskt - som beskrevet i HDL på RTL-nivå for for IC-designen.

Emulatorer er først og fremst nyttige for å validere programvare som kjører på et system før du får den virkelige Silicon, fordi de kan løpe nærmere reell hastighet. De modellerer ikke aspekter ved Silicon som timing eller strømstyring, som kan modelleres i programvaresimulatorer.


Svar 2:

Ikke ta dette som evangelium, men kanskje det er et sted å begynne. Så vidt jeg vet, repliserer en emulator, i programvare og maskinvare, den faktiske programvaren og maskinvaren til et annet produkt. At den gjenskaper den faktiske maskinvaren som programvare, og gjenskaper deretter operasjonsprogramvaren på den maskinvaren. Så du vil ha et lag med programvare (OS, program osv.) Som vil ha et annet lag programvare (maskinvaren til enheten som blir replisert) som vil ha et annet lag med programvare (programvaren som kjøres i den emulerte maskinvaren). Hvis jeg kjørte et elektrisk simuleringsprogram der jeg gjenskaper en Super Nintendos maskinvare, og på sin side lastet inn ROM-en for Super Mario Brothers, er det en emulator.

En simulator gjenskaper derimot effekten av det ovennevnte, men prøver ikke å gjøre det ved å gjenskape den faktiske maskinvaren. Det er bare ment å gjøre det samme, dvs. Super Mario kjøres på datamaskinen min.

Jeg håper dette hjelper.