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