• 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. UVM Testflow Phase Debugging- Identifying Blocking Acti…
teamspecman
teamspecman

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
AF
uvm
Specman
methodology
Testflow
Functional Verification
testflow phase debugging
testflow phases
advanced verification
e language
blocking activities
IES-XL

UVM Testflow Phase Debugging- Identifying Blocking Activities

16 Jul 2012 • 1 minute read
UVM Testflow debugging capabilities have been recently enhanced through the addition of more information to the output of the show domain command. In this post, we demonstrate how this information can be used to answer such questions as  
  • 1. What domains are in the environment? What units do they contain?
  • 2. What phase is running now?
  • 3. Why are we still in this phase? Which activity is still running, and blocking us from proceeding?
  • 4. ... and more...
The following screen shot shows the output of a show domain command, where blocking activity prevented a domain from proceeding to the next phase.

 

Notice that from the output of this command, we can learn the following:

  • There is a domain named ENV_A_DOMAIN, and it contains three units: my_bfm-@2, my_driver-@1, and env_a-@3.
  • The domain is running the phase MAIN_TEST.
  • The domain has not proceeded to the next phase because of the following blocking activities:   
    • The unit env_a is running the blocking thread tf_main_test.
    • There is also a blocking sequence: my_seq-@7.
    • As you can see, there are also blue hyper links to the sources of the two blocking threads
      1. We can also see that the timeout value of this phase is 1 millisecond, and that we are at the beginning of the phase – still ~999 microseconds before the watchdog timer will expire.

        It may happen that a domain had finished all its current phase activities, but is not proceeding to the next phase, because it waits for a domain it depends on. The show domain command gives this information.

        In the following screenshot example, the ENV_B_DOMAIN completed its FINISH_TEST phase activities, but waits for ENV_A_DOMAIN to finish its FINISH_TEST activities before it can proceed to the next phase.

         

          

        To display all defined dependencies at any time during the test, you use the show dependencies command. The following show dependencies screenshot example lists these dependencies between the three domains defined in this environment:

         

        Read more about Testflow, defining domains activities and domains dependencies, in the UVM e Reference Manual.

        Enjoy verification! 

        Efrat Shneydor,

        UVM e

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

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