Home > Community > Blogs > System Design and Verification > trends in using software for system verification
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more conveniennt.

Register | Membership benefits
Get email delivery of the System Design and Verification blog (individual posts).


* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

Trends in Using Software for System Verification

Comments(0)Filed under: Virtual Platforms, Palladium XP, hybrid engines, linux kernel

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."

Jason Andrews


Leave a Comment

E-mail (will not be published)
 I have read and agree to the Terms of use and Community Guidelines.
Community Guidelines
The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.