Processor verification typically involves simulating the processor core(s) with their associated memory, loading those memories with diagnostics and letting the processors execute the code. A series of external checkers verify that the processor is functioning correctly by comparing it to a C++ instruction set reference model.
By mapping the entire processor system with its memory in ZeBu, very high emulation speed is achieved very easily. With ZeBu's direct access to the program memory, it is easy to run non-regression tests in batch mode. External C++ checkers and monitors also plug in easily to the emulated model.
Another need for processor verification is to run applications and operating systems. Successfully booting Linux on a simulated version of a processor core gives more confidence to the design team than hundreds of passing diags.
As an example, multiple customers have used ZeBu to exhaustively verify the floating-point unit of their chip. They wrote a very simple C++ testbench that streams two operands and an opcode to the FPU and comparing the result with the C++ golden reference model. That setup allowed them to run in a few hours of emulation billions of floating-point operations that would have taken weeks in RTL simulation. Writing the testbench itself, using ZeBu's transaction-level API, took a few days only.
Other EVE embedded CPU/multi-core customers include ARM, Tensilica, TI Automotive, Teranetics, and Seagate, spanning applications from HDD controllers through flash memory storage devices. EVE further provides validation IP for embedded CPU/multicore applications including transaction-based interfaces for PCI and PCIe, UARTs, I2C, memory models such as SDR, DDR, DDR2, and DIMM DRAM, JTAG, and DirectICE interfaces for in-circuit emulation, including JTAG cable connection. EVE also supports connecting software debuggers to perform HW/SW co-verification of firmware together with hardware validation..
Another example embedded processor customer using ZeBu for software development and debug is ARM. Since the ARM core has been thoroughly field tested in embedded systems throughout the world, hardware bugs are not an issue. Using ZeBu, however, they were able to quickly identify a software driver bug that would have been very difficult to find other approaches due to the lack of hardware signal visibility. Another embedded processor customer using ZeBu is SanDisk. One of their designs utilizes an ARC core, which is again thoroughly tested from the hardware side. Using EVE’s ZeBu, they were able to verify their software running on their hardware in 5 days total, with ZeBu running at 5MHz system clock speed.
