From: Kip Koon
I tend to get emulation and simulation a bit confused.
You and me both!
I think part of the problem is that there is no generally-agreed-upon
definition of the two terms.
I like this one a lot, though:
Emulation is the process of mimicking the outwardly observable behavior to
match an existing target. The internal state of the emulation mechanism
does not have to accurately reflect the internal state of the target which
it is emulating.
Simulation, on the other hand, involves modeling the underlying state of
the target. The end result of a good simulation is that the simulation
model will emulate the target which it is simulating.
Ideally, you should be able to look into the simulation and observe
properties that you would also see if you looked into the original target.
In practice, there may some shortcuts to the simulation for performance
reasons -- that is, some internal aspects of the simulation may actually be
EDIT: Other responses have pointed out that the goal of an emulation is to
able to substitute for the object it is emulating. That's an important
point. A simulation's focus is more on the modelling of the internal state
of the target - and the simulation does not necessarily lead to emulation.
... SPICE, for example, cannot substitue for an actual electronics circuit
There's also the question of what's being emulated.
Ersatz-11, for example, does a good job of looking like a PDP-11 - for the
software. However, it does not like a PDP-11 for the hardware (although John
used to sell boards you could plug into a PC, which provided a QBUS, IIRC).
So is it a simulator or an emulator? Good question.
About the only _generally-agreed_ example of the terminology I can think of
are 'in-circuit emulators', which _exactly_ match the behaviour of a given