Saturday, 23 May 2015

Verification Management: Scripting makes Life Easier

Increase in demand for high quality Verification IP’s and shortening design cycles puts pressure on IP houses to leverage automation in verification process. This shows that the management of data and process are important to an efficient and productive verification environment. Using a built in system like Questa VRM (Verification Run Manager) and Cadence Emanager can give Verification Engineers maximum throughput and the benefits of automation but companies who can’t afford licenses for a long period can develop their own automation scripts for the verification process.

Often automation scripts are heavily scripted by an individual and are carried out from project to project, majority of the team don’t know what actually the script is doing and they just simply use it until and unless it works fine for them. To get the full benefits of the automation script, an individual needs to understand what actually the script does.

You may be asking me why should I make the effort of learning how to script? The Simple answer is it will likely start to impact our job in the near future if we do not. As systems get increasingly larger and more complex, the time spent in verification process consumes an increasing sum of time.

Two main justifying reasons to script a task:

1)     It is repetitive, time consuming or overly tedious
2)     Human Error must be reduced to as close to zero as possible


  

We developed an automation script in cshell that performs 70% of functionality what actually a built in Verification management does. Our script has the ability to automate management of seeds for constrained random tests, re-run failed tests automatically perhaps with more debug visibility, merge coverage across multiple runs, manage tool time-outs, to name just a few functions.

The features available in this script include:

·         Single test case run with coverage on and off.
·         Multiple test case run with coverage on and off.
·         Single test case run with particular seed number.
·         Graph analysis of regression results.
·         Regression Results distribution to team.
All required options can be passed through command line or through a configuration file. Some of these switches include
<script_name> <layer>  : Runs Regression with functional coverage enable.

Note: <layer> specifies either protocol , link ,physical layer specific tests to  USB3.

<script_name>  <layer> cov_off : Runs Regression with functional coverage off.

<script_name>  <test_name>  cov_off  re_run seed <seed_number>: Re-run a single test case with a particular seed number.

A set of analysis has been performed on the scripts and observed that the users Productivity is being boosted across many different aspects of verification management including capacity, performance, resource usage, turn-around time, preparation, maintenance etc...In conclusion, the user has to be careful in selecting the options based upon his requirements.

So would you like to try to use scripts to reduce verification efforts? I would like to hear from all of you.

2 comments:

  1. True !
    Smart working is always preferred over Hard working ; you can script your career slope with expertise in script

    ReplyDelete
  2. Thanks Ramakant for Reading the Post

    ReplyDelete