I frequently see  *Simulation* and *Emulation* in computer science. These two terms seem synonymous. Is there any difference between *Simulation* and *Emulation*?