• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Blogs
  2. Verification
  3. How Do You Debug Your Testbench when it Won’t Stand Still…
archive
archive
Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
whitepaper
uvm
debug
Functional Verification
bugs
simvision
OVM
Incisive
testbench

How Do You Debug Your Testbench when it Won’t Stand Still?

14 Dec 2010 • 1 minute read

The task of debugging a simulation problem in your design can be a difficult and time consuming task.  These days, the verification engineer must also be able to debug very complex SystemVerilog testbenches too.  This becomes difficult because of their dynamic nature -- they just won’t stand still.  So what can you do?

 

Companies have been forced to put a lot more time and effort into verifying today’s complex designs by using regression farms running a large number of tests with constrained random stimulus to exercise the design and measure coverage.  This whole process, what I like to call the Verification Machine, can do massive amounts of simulation once it is up and running.  All of this technology is being put to use in hope of finding the bugs in the design.  However, this Machine comes to a screeching halt when it is interrupted by a simulation failure.  But why did it fail?  Was it the design or the testbench that caused the failure?

 

In the past, users relied on simple mechanisms such as $display and print() statements to help them see what was going on in the testbench.  With today’s modern SystemVerilog class-based testbenches, which can easily contain more code than the design, this just isn’t practical.  Not only would it be a lot of additional code for these $display and print() probes, but any change to them forces a recompile.

 

SimVision, part of the Cadence Incisive Enterprise Simulator, has the capabilities built into it to be much more efficient in testbench debug.  With SimVision you can browse the testbench hierarchy and configuration, record the transactions, view them in a stripe chart, set breakpoints and debug the constraints.  This debug and analysis can be done with an interactive simulation or in a post processing mode.  However, for post processing it’s a little more complicated since the testbench is not static in the newer methodologies such as OVM and UVM.

 

A new whitepaper is available, “Post Processing Your OVM/UVM Simulation Results,” on this topic.  This whitepaper details the process of how to gather the necessary information from the simulation to be able to do the testbench debug in a post processing mode.  You can access it here:

 

http://www.cadence.com/rl/Resources/white_papers/post_process_UVM_wp.pdf

 

Good luck in getting your simulation failure resolved and your Verification Machine back up and running quickly toward verification closure of your design.

 

Jim Kjellsen

 

 

 

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information