What is the difference between a simulator and emulator?
Submitted By: Craig Steiner FAQ Last Modified: 07/10/06
- A simulator is a program which runs on the development system (i.e. your PC) and imitates the architecture of the target processor. For example an 8051 simulator will contain simulated registers, RAM and other stuff on your PC screen. You can run your program in this simulator and verify the functionality. You can single step your program, run it upto a certain address, add breakpoints etc.
Some simulators have small separate window which can be used to simulate the serial port as well. Some are able to simulate LCDs, LEDs, Keypads, ADCs etc. Note that it is usually not possible to debug time dependent bugs using a simulator since the simulator does not run your program at full speed, the speed at which your 8051 would run it.
An emulator is a piece of hardware which contains a processor that replaces your target processor. The emulator processor is under the control of development system. This allows you to execute your software at full target speeds but under PC control. Also you can trace the real time events and like a simulator you can single step, run upto a certain address, add breakpoints and so many other nice features.
An emulator is far more expensive than a simultor. But the benifit of accelerated development time easily justifies the cost.
Add Information to this FAQ: If you have additional information or alternative solutions to this question, you may add to this FAQ by clicking here.