UVM Book Examples - A Practical Guide to Adopting the Universal Verification Methodology (UVM) Second Edition

About This File


This contribution includes the updated examples for the second edition of the UVM Book: A Practical Guide to Adopting the Universal Verification Methodology (UVM) Second Edition.


Kathleen Meade and Sharon Rosenberg

User Feedback

Hi Kathleen,


Where can I find the examples from the first edition(Published 2010)?




Share this comment

Link to comment

Hi Team,


I downloaded the uvm_ref_flow_1.2.tar.gz


In this example I am seeing for uart_ctrl_env.sv . Why the below lines are removed ?


// uart_ctrl_reg_sequencer reg_sequencer;  //KAM - removed register sequencer

//reg_sequencer = uart_ctrl_reg_sequencer::type_id::create("reg_sequencer", this);  //KAM - removed register sequencer


But looks like as per the Cook book we should have this code here . Is this a old code which is not working ?


The other question I have , In the flow example why we are not using the UVM reg layer for creating the interrupt sequence, We are directly creating apb seq .

I think it should have been uvm_reg_sequence rather than APB sequence ?




Share this comment

Link to comment

Thanks for the upload. I converted this to Mentor UVM but have a problem with apb_slave_config. Wondering if anyone else has seen this error.

Test is u2a_a2u_rand_test .





# UVM_INFO verilog_src/questa_uvm_pkg-1.2/src/questa_uvm_pkg.sv(215) @ 0: reporter [Questa UVM] QUESTA_UVM-1.2.2
# UVM_INFO verilog_src/questa_uvm_pkg-1.2/src/questa_uvm_pkg.sv(217) @ 0: reporter [Questa UVM]  questa_uvm::init(+struct)
# UVM_INFO @ 0: reporter [RNTST] Running test u2a_a2u_rand_test...
# UVM_INFO tb/uart_ctrl_simple_tb.sv(44) @ 0: uvm_test_top.uart_ctrl_tb0 [NOCONFIG] No APB config. creating...
# UVM_WARNING ./apb/sv/apb_slave_agent.sv(73) @ 0: uvm_test_top.uart_ctrl_tb0.apb0.slave[0] [NOCONFIG] Config not set for slave agent using default is_active
# UVM_ERROR ./apb/sv/apb_slave_sequencer.sv(51) @ 0: uvm_test_top.uart_ctrl_tb0.apb0.slave[0].sequencer [NOCONFIG] No configuration set
# ** Warning: (vsim-3635) ./uart/sv/uart_monitor.sv(96): The name of the covergroup instance declared at file './uart/sv/uart_monitor.sv' line 66 has been changed from 'uart_trans_frame_cg' to 'uart_trans_frame_cg#1' in order to avoid the name conflict with the existing covergroup instance declared at file './uart/sv/uart_monitor.sv' line 66.
#    Time: 0 ns  Iteration: 7  Region: /uvm_pkg::uvm_phase::m_run_phases
# UVM_FATAL @ 0: reporter [bUILDERR] stopping due to build errors

mb_816 likes this

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now