Emulation versus Simulation: Do you Know the Difference?
What do gamers, chip designers, and high-speed digital (HSD) wireline communication developers have in common? They all understand the need for emulation – albeit with different use case applications.
Retro video game players know that emulation allows one computer (the host) to act as another. Emulation hardware and related interface software provide an easy way to play games that aren't otherwise accessible. For example, in video game emulation, Project64 software mimics a console’s hardware like the Nintendo 64, allowing users to play console games on a PC, even though they aren’t usually compatible.
Hardware emulation uses special-purpose hardware to emulate the behavior of a host or yet-to-be-built system with greater speed than just software emulation. Typically, the emulation hardware must run at an order of magnitude faster than the original. For example, if a user attempts to emulate a Commodore 64 on a PC, they must emulate each chip on the motherboard and all the hardware on the external disk drives.
Another common emulation use case is running an operating system on a hardware platform for which it was not originally engineered. IBM was one of the first companies to develop computer emulation to run its older programs on newer models rather than design new software applications on newer computers. A combination of software and hardware dedicated to emulation was needed to do so.
In the semiconductor chip world, hardware emulators are used to imitate the behavior of one or more pieces of hardware with another piece of hardware, typically based upon FPGAs, to prototype and debug an ASIC system-on-chip (SoC). The advantage of hardware emulation is that it allows the testing of ASIC designs in a complete system-clocked environment operating at near full-time frequencies.
For example, chip design company Synopsys’s use cases for emulation include a platform to accelerate simulation software in the verification of SOC and IP blocks. Another example of the power of emulation is as a virtual network chip tester. Modern Ethernet systems with interface speeds of up to 800 Gbit/s and port counts of 256 and more can be effectively verified using Keysight’s IXVerify platform connected to the Synopsys ZeBu fast emulator.
From the above use case examples, it’s apparent that emulators are not stand-alone devices but are part of a more extensive system that may include simulators. So how does one distinguish an emulator from a simulator?
Simulator vs. Emulator in HSD
One use case that doesn’t rely as heavily on emulation to mimic basic system functionality is the development of high-speed digital interfaces such as the latest versions of UBS, PCIe, etc. Here, high-speed test and measurement systems (including arbitrary waveform generators (AWGs) can provide the input that emulates compliant and conformant test signals. In the world of high-speed digital interfaces, emulating test signals with an AWG is essential. But is there a simulation component here as well?
Signal simulators artificially create waveforms that can behave like signals generated in natural processes, man-made equipment, or instruments. These signals are characterized by standard parameters such as frequency, wavelength, waveform shape, and phase with specific voltage and current levels. However, in most cases, they do not supply driving power,
Conversely, an emulator must function as hardware capable of driving power to circuits or machines with associated control software. Emulators are needed for use cases where real-time systems are too expensive or dangerous. For example, a nuclear power plant is unsafe to turn off and dangerous to control, so an emulator is used to mimic the plant for real-world applications.
In the case of HSD wireline systems, buying all the necessary equipment to generate an eye diagram to test a PCIe interface design would be expensive. In this case, applied waveform generators are used as emulators in conjunction with a software template to determine compliance with a specific standard, such as PCIe 5.