Microprocessor Design Verification:Emulation
Emulation
The fundamental difference between simulation and emulation is that simulation models the design in software on a general-purpose host computer, while emulation actually implements the design using dynamically configured hardware. Emulation, performed in addition to simulation has several advantages. It provides up to six orders of magnitude improvement in execution performance and enables several tests that are too complex to simulate to be performed prior to tapeout. These include power- on-self-tests, operating system boots, and running software applications, e.g., OpenWindows [24]. Finally, emulation reduces the number of silicon iterations that are needed to arrive at the final design, because errors caught by emulation can be corrected before committing the design to silicon.
Preconfiguration
The emulation process consists of four major phases: preconfiguration, configuration, testbed prepara- tion, and in-circuit emulation (ICE) [24]. In the preconfiguration phase, the different components of the design are assembled and converted into a representation that is supported by the emulation vendor. For example, in the K5 emulation, each custom library cell was expressed in terms of primitives that could be mapped to a field-programmable gate array (FPGA) [25]. An FPGA is a simple programmable logic device that allows users to implement multilevel logic. Several thousand FPGAs must be connected together to prototype a complex microprocessor. Once the cell libraries have been translated, the various gate-level netlists are converted to a format acceptable to the configuration software. This can be complicated because the netlists obtained from standard cell and datapath designers are often in a variety of formats [24].
There is often no FPGA equivalent for complex transistor-level megacells, which are commonly used in full custom processors. Gate-level emulation models for megacells must therefore be created. These gate-level blocks are implemented in the programmable hardware and are verified against simulation vectors to ensure that each module performs correctly according to the simulation model.
Full Chip Configuration
In this phase, the design netlists and libraries are combined with control and specification files and downloaded to program the emulation hardware. In the first stage of configuration, the netlists are parsed for semantic analysis and logic optimization [24]. The design is then partitioned into a number of logic board modules (LBMs) to satisfy the logic and pin constraints of each LBM. The logic assigned to each LBM is flattened, checked for timing and connectivity, and further partitioned into clusters to allow the mapping of each cluster to an individual FPGA [25]. Finally, the interconnections between the LBMs are established, and the design is downloaded to the emulator.
Testbed and In-Circuit Emulation
The testbed is the hardware environment in which the design to be emulated will finally operate. This consists of the target ICE board, logic analyzer, and supporting laboratory equipment [24]. The target ICE board contains PROM sockets, I/O ports, and headers for the logic analyzer probes.
Verification takes place in two modes, the simulation mode and ICE. In the simulation mode, the emulator is operated as a fast simulator. Software is used to simulate the bus master and other hardware devices and the entire simulation test suite is run to validate the emulation model [25]. An external monitor and logic analyzer are used to study results at internal nodes and determine success. In the ICE mode, the emulator pins are connected to the actual hardware (application) environment. Initially, diagnostic tests are run to verify the hardware interface. Finally, application software provides the emulation model with billions of vectors for high-speed functional verification.
In Section 64.9, we conclude our discussion on design verification and review some of the areas of current research.
Comments
Post a Comment