Verification Planning

What is verification planning?

Verification planning outlines what needs to be tested when performing pre-silicon verification. This step-in development is where the teams plan exhaustive tests to determine if an integrated circuit does what it is supposed to do. It might seem the same as functional verification, but that couldn't be further from the truth. Verification planning defines and outlines what needs to be tested when doing functional verification. Every design has different parameters that it needs to work within. A chip built for AI will have different parameters to test than one built for digital signal processing. In this phase, we test the features and capabilities that the end user relies on. For example, someone using a smartphone wants a device that will not require much power and can run their favorite apps relatively easily. You also want to take phone calls and read text messages. Verification planning involves ensuring that these scenarios are checked and that they work well for whatever capability the end user requires. It is more about the “what” of functional verification than the “how.”

As mentioned, the main pitfall is anticipating everything the end user could do. Verification planning is done by creating a series of scenarios and use cases that will be tested to ensure that a specific circuit is doing its intended job.

 

Why is verification planning important?

Verification planning is a crucial step in integrated circuit design. Imagine someone building a GPU and not planning to test how well the video encoder works. Imagine end users reading reviews only to find that this GPU performs poorly in their favorite video editing software suite.

A major bug like this would devastate the graphics card because it would mean the loss of hundreds of thousands, if not millions, in sales. Users expect certain features in certain products. Verification planning helps ensure that you test certain functions correctly. Failure during verification planning is massive because it wastes hundreds of thousands or millions of dollars.

As the largest semiconductor devices have billions of gates, you must be good at choosing the ones to test. That adds a secondary element to the testing process because you can only test part of the entire circuit. You must figure out the functionality to prioritize, making this process both a science and an art.

Verification planning is a way to choose your priorities regarding the chip's functionality. Some chips get taped out without their bugs ever being discovered because they only show up during functions that users don't use or care about. For example, the Intel Spectre and Meltdown bugs were only found by a dedicated team of PhD cybersecurity researchers with significant funding from industrial partners and governments. Most end users didn't even care to enable the fixes to these bugs because they had no bearing on the product’s usefulness.

You can think of verification planning as creating a procedure list when doing functional verification. It lets your verification team know where to put their time and effort during the process. It also helps you get feedback from potential customers on what they consider important. For example, GPU testing would involve talking to gamers and creative professionals to learn about functionalities they value. For gamers, this means a graphics card that renders frames as fast as possible for their favorite games. Creative professionals typically want the GPU to perform well when accelerating specific media functions. It is important to consider all of this in the verification planning process.

How does verification planning work?

As mentioned before, verification planning is about figuring out what, in terms of functionality, needs to be tested in your design. We then figure out the how. However, in this case, we must understand how to test what we previously determined. Each function to be tested must be broken down into various steps to follow to make it work correctly. For example, to take a picture with your smartphone, you first go into the main menu before opening the camera and pressing the shutter button. The application responsible for taking the picture must access the hardware camera and storage device after you've taken the picture. The processor must run various algorithms on the photo taken to make it look good. To transfer the photograph, you need wireless connectivity to make that functionality work. By defining the requirement at a high level, we can iteratively figure out how we will test that high-level functionality.

Eventually, we reach the functional verification level of the process, where we ultimately perform the standard methods for functional verification. We then use simulation to go through the high-level process outlined. For example, we would need to simulate accessing the camera, taking the picture, and storing it in memory. As you can see, verifying even the simplest function of a complex device gets very complicated. You will then have a spreadsheet or other document to ensure the completion of every test the team has come up with. Testing at this level is exhaustive, but you can never test millions or billions of permutations. You also need to test for things going wrong during this process, but the functionality you can test for is still not exhaustive.

Automation is the next big step in verification planning. We aim to automate as many of those tests as possible to get through as many permutations as possible during functional verification. You need automation tools and processes to facilitate this in the best way possible. The advantage is that everyone knows what they should do. You can think of it as a contract among verification team members.

It keeps each person accountable because each member has clear goals and requirements. This leaves no room for ambiguity or miscommunication when building functionality that the engineering team and end-users agree on.

Effectively, verification planning also makes it much easier to build devices for applications where failure is not an option. Specific applications such as aerospace and defense need robust chips that cannot fail. Using verification planning makes it possible to achieve that goal.

Verification planning with Cadence

Cadence offers Verisium Manager for verification planning and test management. This tool provides a specific set of features to capture and integrate the verification plan with other Cadence tools. You can then use dedicated Cadence verification tools tied into Verisium Manager. These verification tools can read whether a test succeeded or failed, allowing you to track your testing efforts in an integrated suite automatically. It enables you to cover everything in the specifications of your verification plan. It can also connect with outside tools such as JIRA and Jama to allow specific industries to audit as quickly and efficiently as possible.

Learn about how Cadence can help you with your verification planning needs today.