Scripting Skills

Importance of Scripting Skills in ASIC Verification:

In the new competitive generation of chip designing where Time-to-Market is so critical  and also the complexity of designs are increasing exponentially.  Adding to that it is also observed that the Verification is always considered the longest pole and takes nearly 70% of the chip design life cycle.  Hence any opportunity to  automate a  task which is repeatable for more than once is  considered of  most importance to improve the verification productivity.  This  is  where  “scripting” skills  are highly valuable for  any  Verification engineer.

Following are some of the  areas in Functional Verification where scripting skills are highly useful

  1. For running tests and regressions
    1. Scripts to invoke compilation and simulation – controlling tools.
    2. Command line  Parameters for controlling test  arguments,  time, enable/disable of checks etc
    3. Scripts to run a selected number of test for multiple seeds
    4. Sometimes even useful to generate  automatic  stimulus/vectors
  2. Post run analysis of  log files
    1. Filtering  reports
    2. Assisting debug of failures  based on defined  keys/patterns
    3. Performance analysis of transactions based on time stamps
  3. Regression Maintenance
    1. Scheduling  Regression runs based on machine/resource availability
    2. Tracking regression pass/fail rates
    3. Automatic triage/classification of regression failures
    4. Automatic re-run of  failures to generate waveform dumps for debug
    5. Analysis quality/effectiveness of tests/regression based on pass/failures across weeks
  4. Automatic code generation
    1. Creating top level files, connectivity etc
    2. OVM/UVM coding framework
    3. Net list modifications
  5. Functional and Code Coverage
    1. Automatic generation of  Code and Functional Coverage selectively
    2. Merging and maintaining coverage data base across regression runs
    3. Analysing, excluding and generating  reports
  6. Automatic  Bug  filing , tracking and closure
    1. Automation of  test failures/debugs with  bug filing
    2. Informing/Reminders to owners of bug and tracking  progress.

What are some of the common scripting languages popular in  Verification Industry?

Perl and Python are the two most common scripting languages used widely in industry  and  Python being the newest entry Regular expression support in the language  would be the most commonly used feature and  it is always good to have a reference untill you grasp all finer details. Following are  good resources in terms of learning  Perl  or Python
  1. Perl  Resources:
    1. Perl Regular expressions on Tutorial Point
  2. Python Resources:
    1. Get started with Python – Dive In to Python   –  One good book to get started learning.  Lots of comparison  with other languages which helps some one with  knowledge in other languages like  Perl or C++ to learn
    2. Python Regular expressions on Tutorial Point   – A good reference