“Emulation” in the software context is the use of an application program or device that is used to imitate the behavior of another program or device. A typical example is the running of Windows application programs on Linux operating system even though they were originally developed for windows. In hardware, emulation is the use of use of hardware to imitate the function of another hardware device.
Hardware emulators are extensively used today in the design of complex system on chips (SOC’s) or digital systems. These hardware emulators enable functional verification of the SOC and enable system level validation by allowing embedded software to be validated along with the design in the hardware. They enable identification of bugs not found during hardware simulation and formal analysis before silicon is available for validation. The emulation market is rapidly growing with wide range of companies using it.
There are 3 types of hardware emulators that are available in the market
- Processor-based emulators
These emulators use processors to process the design database stored in memory like a simulator. The larger the memory, larger the design that can be processed. There can be large arrays of these processors that can be running in parallel and this create a soft limit on the design capacity and the speed at which the design can be run. Fast compilation, good scalability, excellent debugging, support for speed bridges are some of the key advantages, but they suffer large power consumption and physical dimensions compared to other types.
- Custom ASIC-based emulators
These are far more flexible, offer better TAT’s to implement the design on the emulator, excel in debugging capabilities to ensure 100% design visibility without requiring compilation and no drop in performance. They still suffer from larger physical dimensions, longer compilation times and slower speed when compared to commercial FPGA-based emulator.
- Commercial FPGA-based emulators
There come in smaller footprints, consumes less power, and can handle larger designs and can be used for any design emulation. But they also have disadvantages in terms of lower utilization of each FPGA to keep the compilation times slower. This means that more number of FPGA’s will be needed for implementing designs.
The increasing population and adoption of the commercial FPGA-based emulators is because of some of reasons listed below
- The latest FPGA architectures offer newer capabilities, larger capacities of up to several billion gates and superior debug thereby enabling verification of the hardware, validate embedded software and the entire system or SOC.
- Advances in software technology has reduced the overall compilation time to days and increased the ability to handle complex designs.
- They can be used in variety of acceleration modes. Software based testbenches through PLI interfaces can be used to drive them shortening the time to bring up the design. They can be used in standalone modes by having both the DUT and the synthesizable testbench both inside the emulator. Transaction based interfaces can drive them, thereby allowing better performances and they can be used in different combinations of the use modes mentioned.
- Emulators will continue to help exhaustive validation of designs when simulations become too slow as the designs sizes and complexity continues to increase.
- Emulators provide 100% visibility into the design without requiring compilation of probes and allow verification of power domains in the design. Cycle accurate representation of the design allows efficient tracing of a bug anywhere in the SoC.
- Data centers can be created with large number of emulators allowing multiple users to use them remotely.
- Emulation can be combined with virtual prototyping to enable architectural validation and software development even when RTL for critical blocks isn’t available. Hardware architects can use Processor subsystems running in an emulator and System C models of other blocks like memories running in a virtual platform to do architectural exploration and validation.
Some of the industries or domains in which hardware emulators bring tremendous value is discussed below to help better understand their potential
Design of products and networks that include the Internet of Things and networking ecosystem needs extensive verification because of more protocols per chip, designs being very large and complex, having very low power requirements, more software and the growing number of switch and router ports. Only emulators have the capacity, speed, and debug capabilities to allow so much of verification, but careful choice of the different types of emulation methodologies that are available is needed to make this work.
The electronics industry is being fueled by the next generation multimedia and high-definition chips. These chips enable encoding and decoding of data in real time for increasingly higher definition video content. It is not trivial to verify the video capture circuitry, components that collect data and those which stream video. When using a testbench to generate a Ultra High Definition (UHD) 4K stream is very painful, it will be very easy to take an existing video file and convert it into UHD-4K stream and stream it into the design which is running on the emulator. The market for Drone powered solutions are growing at an astronomical pace and emulators are best suited for verifying the SOC’s that are part of the chips.
Automotive designs are quite complex and validation of them combines physical components like sensors / actuators, cyber-physical systems, and electronic component safety. This combined with the need to estimate power consumption along with characterization and improvement of design reliability can be achieved only through emulation.
- Consumer Electronics
SOC’s that are designed for consumer electronics products like digital TV, set-top boxes, digital cameras, camcoders, multi-function printers, gaming systems, smart homes, etc are also complex because of usage of multiple industry standard interfaces. The software complexity is also higher and hence the verification cycles can be complex and long which needs the usage of emulation to verify such systems.
Hardware emulators, especially commercial FPGA-based emulators have become indispensable in verifying the complex system on chips and systems of today in an industry. They continue to dominate the verification strategy because of the variety of solutions available to suite different needs. EDA vendors continue to invest in providing new innovations to capture the ever growing market needs for different emulation solutions.