• 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. Community Forums
  2. Functional Verification
  3. How do I instantiate a UVM agent with a monitor, functional...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 66
  • Views 17022
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How do I instantiate a UVM agent with a monitor, functional coverage and scoreboard in a legacy testbench

Rajat Mitra
Rajat Mitra over 11 years ago

Hello all,

 I have a traditional testbench that instantiates a Stimulus Generator and a DUT. Looks like this

//in module tb.v

module tb; 

driver i_driver(...);

dut i_dut(..); 

endmodule

The stimulus generation occurs within the driver.

I would like to add an UVM Environment with only a Monitor, Scoreboard and Functional Coverage to this testbench. I created a wrapper called "svid_packet_monitor" and instantiated that in the tb. 

module tb; 

driver i_driver(...);

dut i_dut(..);

svid_packet_mon_wrapper i_svid_packet_mon_wrapper();

endmodule 

I am new to the whole UVM thing and am not sure how the code inside the monitor wrapper should look like. I took a first stab at creating a package with the monitor and associated class items and  imported this inside the svid_packet_mon_wrapper. Then I created my_test inside the wrapper that extends uvm_test but I am not sure how to start this up. I am attaching the code for the monitor package and  the monitor wrapper( with questions inside the monitor_wrapper code ). Any help to put this together would be highly appreciated...

Best

Raj 

 

svid_packet_mon_wrapper.pdf
  • Cancel
Parents
  • LaydnerF
    LaydnerF over 8 years ago

    Hello! I Just found this thread now. I'm having a problem that is very similar to this one.


    We already have a non-UVM SystemC verification environment to verify certain DUV, but this environment lacks in coverage. We want to use a UVM agent (with monitor and coverage collector) with this environment so we can track what is beeing sent to the DUV.

    The first step was to try adding the "-uvm" option on the command line, so then I can add my uvm units to the environment. The problem is that I get an elaboration error just for adding the "-uvm" argument to the irun call:

    tc_driver testc(
                      |
    ncelab: *E,CUVMUR (/.../my_tb.sv,148|15): instance 'my_tb.testc' of design unit 'tc_driver' is unresolved in 'worklib.viking_digital_top_tb:sv'


    What I'm I doing wrong? Is it possible to do this?

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • LaydnerF
    LaydnerF over 8 years ago

    Hello! I Just found this thread now. I'm having a problem that is very similar to this one.


    We already have a non-UVM SystemC verification environment to verify certain DUV, but this environment lacks in coverage. We want to use a UVM agent (with monitor and coverage collector) with this environment so we can track what is beeing sent to the DUV.

    The first step was to try adding the "-uvm" option on the command line, so then I can add my uvm units to the environment. The problem is that I get an elaboration error just for adding the "-uvm" argument to the irun call:

    tc_driver testc(
                      |
    ncelab: *E,CUVMUR (/.../my_tb.sv,148|15): instance 'my_tb.testc' of design unit 'tc_driver' is unresolved in 'worklib.viking_digital_top_tb:sv'


    What I'm I doing wrong? Is it possible to do this?

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

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

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