|
断断续续的看了sv for verification和UVM,自己搭建了一个简单的仿真环境。发现这个东西一个人研究还是挺郁闷的,所以把自己学习的进展写下来,希望能够和大家共同学习成长。其中不对的地方还请大家指出。
注:UVM相关的资料可以在这里下载:http://www.uvmworld.org/
脚本是参考UVM包里面的脚本写的:
vlib work
set UVM_HOME D:/study/uvm/questasim-win32-10.0a/verilog_src/uvm-1.0
vlog -timescale "1ns/1ns" -mfcu -suppress 2181 +acc=rmb \
-writetoplevels questa.tops \
+incdir+$UVM_HOME/src $UVM_HOME/src/uvm.sv \
+incdir+../ ../sdram_top.sv
vsim +UVM_VERBOSITY=UVM_MEDIUM \
-sv_lib ./uvm_dpi \
-l questa.log \
-f questa.tops \
+UVM_USE_OVM_RUN_SEMANTIC \
+UVM_TESTNAME=sdram_test
add wave -r /*
run 10ms
sdram_top.sv就是testbench的顶层,sdram_test就是你仿真要调用的class。
这里有两个问题:
A A.必须要把uvm_dpi.dll拷贝在当前目录下,不然Questa可能不能够识别(这个比较汗)。
B.如果你用到了OVM的当中methods(stop_request() and/or global_stop_request),必须加+UVM_USE_OVM_RUN_SEMANTIC。