Professional Documents
Culture Documents
UVM Phases
UVM Phases
UVM Phases
Connect TB
Connect_phase component
Function using TLM BOTTOM-UP
port
mechanism
Make final
End_of_elaboration adjustment
Function phase before
simulation BOTTOM-UP
starts.
It also displays
uvm topology
Used for
Start_of_simulation displaying
Function phase banners
Display TB BOTTOM-UP
topology
Configuration
information
Actual
simulation
happen in Run
TASK Run_phase phase PARALLEL
It is time
consuming
task
12 sub phases
added in
parallel with
run phase
Sub phases in
run phase
a) Reset
b) Configure
c) Main
d) shutdown
Retrieves and
Extract_phase process
information
Function from BOTTOM-UP
scoreboards
and functional
coverage
Checks the
DUT behavior
Indentifies
Function error that may BOTTOM-UP
Check_phase have occured
Display the
Function Report_phase result of BOTTOM-UP
simulation
Complete any
Function Final_phase() other pending TOP-DOWN
jobs
EXAMPLE OF PHASES
https://www.edaplayground.com/x/Hxr4
OUTPUT:
# KERNEL: UVM_INFO @ 0: reporter [RNTST] Running test test...
# KERNEL: UVM_INFO /home/runner/testbench.sv(27) @ 0:
uvm_test_top.env.agt_h.drv [INFO] build phase of driver class
# KERNEL: UVM_INFO /home/runner/testbench.sv(97) @ 0:
uvm_test_top.env.agt_h.mon [INFO] build phase of monitor class
# KERNEL: UVM_INFO /home/runner/testbench.sv(33) @ 0:
uvm_test_top.env.agt_h.drv [INFO] Connect phase of driver class
# KERNEL: UVM_INFO /home/runner/testbench.sv(103) @ 0:
uvm_test_top.env.agt_h.mon [INFO] Connect phase of monitor class
# KERNEL: UVM_INFO /home/runner/testbench.sv(178) @ 0:
uvm_test_top.env.agt_h [INFO] Connect_phase of agent class
# KERNEL: UVM_INFO /home/runner/testbench.sv(40) @ 0:
uvm_test_top.env.agt_h.drv [INFO] end_of_elaboration_phase of driver class
# KERNEL: UVM_INFO /home/runner/testbench.sv(110) @ 0:
uvm_test_top.env.agt_h.mon [INFO] end_of_elaboration_phase of monitor class
# KERNEL: UVM_INFO /home/build/vlib1/vlib/uvm-1.2/src/base/uvm_root.svh(583)
@ 0: reporter [UVMTOP] UVM testbench topology:
# KERNEL: --------------------------------------------------------------
# KERNEL: Name Type Size Value
# KERNEL: --------------------------------------------------------------
# KERNEL: uvm_test_top test - @335
# KERNEL: env environment - @348
# KERNEL: agt_h agent - @357
# KERNEL: drv driver - @513
# KERNEL: rsp_port uvm_analysis_port - @532
# KERNEL: seq_item_port uvm_seq_item_pull_port - @522
# KERNEL: mon monitor - @367
# KERNEL: sqr sequencer - @376
# KERNEL: rsp_export uvm_analysis_export - @385
# KERNEL: seq_item_export uvm_seq_item_pull_imp - @503
# KERNEL: arbitration_queue array 0 -
# KERNEL: lock_queue array 0 -
# KERNEL: num_last_reqs integral 32 'd1
# KERNEL: num_last_rsps integral 32 'd1
# KERNEL: --------------------------------------------------------------
# KERNEL:
# KERNEL: UVM_INFO /home/runner/testbench.sv(46) @ 0:
uvm_test_top.env.agt_h.drv [INFO] start_of_simulation_phase of driver class
# KERNEL: UVM_INFO /home/runner/testbench.sv(116) @ 0:
uvm_test_top.env.agt_h.mon [INFO] start_of_simulation_phase of monitor
class
# KERNEL: UVM_INFO /home/runner/testbench.sv(222) @ 0: uvm_test_top [INFO]
run_phase of test class
# KERNEL: UVM_INFO /home/runner/testbench.sv(123) @ 0:
uvm_test_top.env.agt_h.mon [INFO] run_phase of monitor class
# KERNEL: UVM_INFO /home/runner/testbench.sv(53) @ 0:
uvm_test_top.env.agt_h.drv [INFO] run_phase of driver class
# KERNEL: UVM_INFO /home/runner/testbench.sv(60) @ 0:
uvm_test_top.env.agt_h.drv [INFO] extract_phase of driver class
# KERNEL: UVM_INFO /home/runner/testbench.sv(130) @ 0:
uvm_test_top.env.agt_h.mon [INFO] extract_phase of monitor class
# KERNEL: UVM_INFO /home/runner/testbench.sv(66) @ 0:
uvm_test_top.env.agt_h.drv [INFO] check_phase of driver class
# KERNEL: UVM_INFO /home/runner/testbench.sv(136) @ 0:
uvm_test_top.env.agt_h.mon [INFO] check_phase of monitor class
# KERNEL: UVM_INFO /home/runner/testbench.sv(72) @ 0:
uvm_test_top.env.agt_h.drv [INFO] report_phase of driver class
# KERNEL: UVM_INFO /home/runner/testbench.sv(142) @ 0:
uvm_test_top.env.agt_h.mon [INFO] report_phase of monitor class
# KERNEL: UVM_INFO /home/runner/testbench.sv(79) @ 0:
uvm_test_top.env.agt_h.drv [INFO] final_phase of driver class
# KERNEL: UVM_INFO /home/runner/testbench.sv(149) @ 0:
uvm_test_top.env.agt_h.mon [INFO] final_phase of monitor class
# KERNEL: UVM_INFO /home/build/vlib1/vlib/uvm-
1.2/src/base/uvm_report_server.svh(869) @ 0: reporter [UVM/REPORT/SERVER]
Build phase:
The build phase is responsible for creating lower level
components.
It is very crucial to complete the build phase before
moving to other phase.
Connect phase :
connection between TB components.Actual
connection happen in connect phase.
This is crucial for setting up communication between
TB and DUT.
Run phase:
in this phase actual stimulus is applied to the DUT and
test scenarios are executed.