Home>>Solutions>>Case Studies>>Processors
Solution: Transaction-Based Verification
Demo: Linux Boot
Demo: MPEG-4 Decoder
Datasheet: PCI Express Transactor
Datasheet: DRAM Models
Success Story: Tensilica
One 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 using 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 ZeBu, they were able to verify their software running on their hardware in 5 days total, with ZeBu running at 5MHz system clock speed.
Processor verification typically involves simulating the processor core(s) with their associated memories, 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 memories in ZeBu, very high emulation speed is achieved 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 an emulated 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 (FPU) of their chip. They wrote very simple C++ testbenches that stream operands/opcodes to the FPU and compares the result with the C++ golden reference model. This setup enables the emulation of billions of floating-point operations in only a few hours – a task that would have taken weeks in RTL simulation. Writing the testbench for FPU verification using ZeBu's transaction-level API only takes a few days.
Other EVE embedded CPU/multi-core customers include ARM, Tensilica, and TI Automotive, 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.