This is a small and seemingly trivial post, but it’s a really big deal for me (and I assume others in the DV world). Verilator can compile and run UVM!
Building the latest and greatest Link to heading
This seems like cutting edge work with more things going in every day, so we need to compile verilator github.
git clone https://github.com/verilator/verilator
autoconf
./configure --prefix=`pwd`/build
make install
Running the example Link to heading
There is a small example in the Verilator tree. I still need to look at uvm_pkg_all_v2020_3_1_nodpi in more depth, but I assume there are some hacks from mainstream UVM. Well, it says no DPI, that may be a hint :)
verilator --binary -j 0 \
--CFLAGS -O0 \
-Wall \
+incdir+test_regress/t/uvm \
test_regress/t/uvm/uvm_pkg_all_v2020_3_1_nodpi.svh \
test_regress/t/t_uvm_hello.v
Hooray!
UVM_INFO t/uvm/src/base/uvm_root.svh(476) @ 0: reporter [UVM/RELNOTES]
*********** IMPORTANT RELEASE NOTES ************
This implementation of the UVM Library deviates from the 1800.2-2020
standard. See the DEVIATIONS.md file contained in the release
for more details.
----------------------------------------------------------------
Accellera:1800.2:UVM:2020.3.1
All copyright owners for this kit are listed in NOTICE.txt
All Rights Reserved Worldwide
----------------------------------------------------------------
(Specify +UVM_NO_RELNOTES to turn off this notice)
UVM_WARNING t/uvm/src/base/uvm_root.svh(549) @ 0: reporter [NO_DPI_USED] We are thinking of removing support for UVM_NO_DPI. Please try this test without it and evaluate the impact
UVM_INFO @ 0: reporter [RNTST] Running test test...
UVM_INFO t/uvm/src/base/uvm_traversal.svh(345) @ 0: reporter [UVM/COMP/NAMECHECK] This implementation of the component name checks requires DPI to be enabled
UVM_WARNING t/uvm/src/base/uvm_traversal.svh(314) @ 0: reporter [NO_VISIT_CHECK] Because UVM_REGEX_NO_DPI is defined, no uvm component name constraints will be checked
** UVM TEST PASSED **
UVM_INFO t/uvm/src/base/uvm_report_server.svh(1009) @ 0: reporter [UVM/REPORT/SERVER]
--- UVM Report Summary ---
** Report counts by severity
UVM_INFO : 3
UVM_WARNING : 2
UVM_ERROR : 0
UVM_FATAL : 0
** Report counts by id
[NO_DPI_USED] 1
[NO_VISIT_CHECK] 1
[RNTST] 1
[UVM/COMP/NAMECHECK] 1
[UVM/RELNOTES] 1