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.