osmium said:
To simulate is to try to predict how fast some CPU design (probably unbuilt)
will be. To emulate is to produce the effect on computer B that a program
was run on computer A.
From The American Heritage Dictionary, second college edition, 1985.
emulate tr. v. 1. To strive to equal or excel, esp. through
imitation. 2. To compete with or rival successfully.
3. Computer Sci. To imitate one system with another so that
both accept the same data, execute the same programs and
achieve the same results.
simulate tr. v. 1. To have or take on the appearance, form,
or sound of; imitate. 2. To make a pretense of; feign.
Etymologically the proper word to use in this context is "simulate."
This is because "simulate" (from Latin similis) connotes likeness,
whereas "emulate" (from latin aemulus) connotes rivalry/competition.
However, as can be seen in the aforementioned dictionary entries,
in computer science the use of the word "emulate" to mean something
akin to "simulate" has been accepted for sometime now.
Note that the presence of entry (3) for "emulate" should not be
taken to mean that it is the accepted usage but rather the usage
is an exceptional case in the field of computer science.
That said, depending on the circumstances, even at present one or
the other of these words is preferred.