Mark Litterick - Verilab, Inc.
Jonathan Bromley - Verilab, Inc.
Does your UVM codebase contain hidden traps that may undermine current or future projects?
Working on client projects we have seen many verification environments that superficially claim to follow UVM best practice, but don’t stand up to expert scrutiny – for example:
• inflexible components that don’t provide appropriate hooks for future extension
• code that can’t easily be reused in a different setting
• stimulus that fails to make good use of the power of UVM sequences
• weak coverage that gives false confidence in verification completeness
• existing (legacy) code that doesn’t do all it claims to do
• poor architecture that will be difficult for reviewers or future maintainers to understand
In this tutorial we present a strategy and guidelines for auditing existing and new UVM code, giving you a technically robust approach to planning and review of your UVM project. Going far beyond trivial “tabs or spaces” coding checklists, UVM Audit addresses the truly important issues of reuse, flexibility and verification effectiveness. It identifies a range of frequently-encountered problems, and provides easily-understood guidance that you can apply to legacy, current, and future projects.
The audit approach we offer in this tutorial has field-proven value both for project managers and for the engineering team. Its benefits include:
• quality control and assessment of your code, especially important when the team has diverse levels of skill and experience
• evaluation of existing code that you plan to reuse, improving accuracy of effort estimation for the new project
• identifying areas for improvement for you and your team’s skill-sets
• reasoned prioritization of areas of improvement based on severity of defects found
The tutorial content is of interest to verification management and leadership as well as the testbench implementation team. Attendees will take away a renewed awareness of their priorities for building high-quality environments, and practical ideas for reviewing existing and newly written code to ensure it is fit for purpose.