Chapter 11 – Running the simulation

To run thesimulation, we simply execute the provided Makefile in the GitHub repository:

$ make -f Makefile.vcs

The testbenchwill generate random inputs and then those inputs will be sent to the DUT. Themonitors will capture the data in the communication bus and make a predictionof the expected result. Finally the scoreboard will evaluate the functionalityby matching the DUT’s response with the prediction made by one of the monitors.If the DUT and the prediction match, an “OK” message will be outputted,otherwise, we will se a “Fail” message.

So, in theoutput of the simulation, we must find for the messages starting with UVM_INFObecausethe compare() method from the scoreboard is going to print amessage using the macro`uvm_info() with the result of the test.

The result ofthe simulation can be seen below:

***********      IMPORTANT RELEASE NOTES        ************

You are using a version of the UVMlibrary that has been compiled
with `UVM_NO_DEPRECATED undefined.
See http://www.eda.org/svdb/view.php?id=3313 for more details.

(Specify +UVM_NO_RELNOTES to turn offthis notice)

UVM_INFO @ 0: reporter [RNTST] Runningtest simpleadder_test…
UVM_INFO simpleadder_scoreboard.sv(49) @ 70: uvm_test_top.sa_env.sa_sb[compare] Test: OK!
UVM_INFO simpleadder_scoreboard.sv(49) @ 130: uvm_test_top.sa_env.sa_sb[compare] Test: OK!
UVM_INFO simpleadder_scoreboard.sv(49) @ 190: uvm_test_top.sa_env.sa_sb[compare] Test: OK!
UVM_INFO simpleadder_scoreboard.sv(49) @ 250: uvm_test_top.sa_env.sa_sb[compare] Test: OK!
UVM_INFO simpleadder_scoreboard.sv(49) @ 310: uvm_test_top.sa_env.sa_sb[compare] Test: OK!
UVM_INFO simpleadder_scoreboard.sv(49) @ 370: uvm_test_top.sa_env.sa_sb[compare] Test: OK!
UVM_INFO simpleadder_scoreboard.sv(49) @ 430: uvm_test_top.sa_env.sa_sb[compare] Test: OK!
UVM_INFO simpleadder_scoreboard.sv(49) @ 490: uvm_test_top.sa_env.sa_sb[compare] Test: OK!
UVM_INFO simpleadder_scoreboard.sv(49) @ 550: uvm_test_top.sa_env.sa_sb [compare]Test: OK!
UVM_INFO simpleadder_scoreboard.sv(49) @ 610: uvm_test_top.sa_env.sa_sb[compare] Test: OK!
UVM_INFO simpleadder_scoreboard.sv(49) @ 670: uvm_test_top.sa_env.sa_sb[compare] Test: OK!
UVM_INFO simpleadder_scoreboard.sv(49) @ 730: uvm_test_top.sa_env.sa_sb[compare] Test: OK!
UVM_INFO simpleadder_scoreboard.sv(49) @ 790: uvm_test_top.sa_env.sa_sb[compare] Test: OK!
UVM_INFO simpleadder_scoreboard.sv(49) @ 850: uvm_test_top.sa_env.sa_sb[compare] Test: OK!
UVM_INFO ../uvm-src/uvm-1.1d/src/base/uvm_objection.svh(1268) @ 900: reporter[TEST_DONE] ‘run’ phase is ready to proceed to the ‘extract’ phase

— UVM Report Summary —

** Report countsby severity
UVM_INFO :   16
UVM_WARNING :    0
UVM_ERROR :    0
UVM_FATAL :    0
** Report counts by id
[RNTST]     1
[TEST_DONE]     1
[compare]    14
$finish called from file “../uvm-src/uvm-1.1d/src/base/uvm_root.svh”, line 430.
$finish at simulationtime                 900
V C S   S i m u l a t i o n   R e p o r t
Time: 900 ns
CPU Time:      2.040 seconds;      Data structure size:   0.2Mb

 

This chapterconcludes this beginner’s guide. You can access all the code in this repository。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章