There is a clear trend to use more software running on the CPUs of a design for system verification. Historically, there has always been the pre-silicon operating system boot that was performed on emulators like Palladium. Typically, the boot was about all that could be done before the allotted verification time would run out. Today, the Virtual Platform + Emulator hybrid is enabling more software to be run in less time. In addition, companies have long used directed C test programs running on a processor to check the hardware functionality of a chip. Most of the time this test software consists of diagnostic programs written to exercise the hardware. Typically, the code boots up, presents some kind of diagnostic menu on a terminal attached to a UART, and users can select particular tests to run. The same diagnostic software can be used on any execution platform: simulation, emulation, FPGA, and post-silicon. Reuse has always been one of the benefits compared with a verification testbench, and the performance has been good because the test programs are small. There are many names for this approach, including processor-driven verification, software-driven verification, software-driven hardware verification, and more.
The more recent trend is the move to using more complex software during pre-silicon verification. Take a look at the listing below from a popular job site:
It requires significant Linux kernel expertise (including process scheduler), but then comes the surprise description at the very bottom. The purpose of Linux is to exercise and test the hardware of an SoC!
Some companies are clearly adopting Linux for the purpose of hardware verification. They actually have teams of software engineers doing Linux development, but they are not working on the production Linux that will go into a product. They prepare a version of Linux for testing the hardware--it's essentially a "test Linux".
Another approach is to use a special verification operating system that is designed specifically for the verification problem. It offers some advantages over a stripped-down version of Linux such as:
- Much smaller size
- Faster boot time
- Deterministic execution (simpler scheduler)
- Easier debugging (without full virtual memory)
This week Kozio announced Verification Test OS (VTOS) support for the Xilinx Zynq-7000 family. If you are interested, take a look at the press release and product description. It provides an interesting alternative compared to custom diagnostics or a full operating system like Linux.
I'll summarize with a quote from Jim Hogan's interview on the first episode of Unhinged with Brian Fuller. Jim described the purpose of EDA companies by saying, "EDA should do everything that the system customer does that isn't necessarily value added, and we can assist them in automating that, that's what we are good at."