本来准备用VCS搭一个,但是电脑一开虚拟机就有点卡,就先用windows跑跑看,我参考UVM-01 win10环境下利用questasim仿真《UVM实战》代码这篇文章,写的很详细。
首先电脑上安装破解questasim,然后下载UVM实战书的代码。
(1)复制ch2->section2.2->2.2.3的代码以及ch2->dut的dut.sv到一个文件夹下面。
也就是图上的三个sv文件。
(2)编写一个do文件
set UVM_HOME D:/Software/QuestaSim/verilog_src/uvm-1.1d
set UVM_DPI_HOME D:/Software/QuestaSim/uvm-1.1d/win64
set WORK_HOME D:/Desktop/IC_DUT/UVM_REAL_JUAN1/lab/test
vlib work
vlog +incdir+$UVM_HOME/src -L mtiAvm -L mtiOvm -L mtiUvm -L mtiUPF $UVM_HOME/src/uvm_pkg.sv $WORK_HOME/dut.sv top_tb.sv
vsim -novopt -c -sv_lib $UVM_DPI_HOME/uvm_dpi work.top_tb
run -all
其中 UVM_HOME以及 UVM_DPI_HOME为安装questasim所在的位置下面找;
WORK_HOME是工作目录,定位当前的test文件夹下面;
vlib work:将库文件编译到work中
vlog命令:启动UVM库编译工作目录的下的源文件
vsim命令:启动仿真进程
run -all:开始仿真
(3)启动questaim,新建工程,这里建议工程新建在test文件夹下面;
直接执行 do sim.do 跑代码
(4)执行完成后跳出是否退出,记得点否,不然questasim就关闭了。
(5)观察结果
补充:
跑后面代码有的需要UVM_TESTNAME,不注意会报错如下:
这是因为没有指定UVM_TESTNAME,参考下面这篇文章数字09 modelsim中怎么仿真《UVM实战》中的例程_影子才是本体的博客-CSDN博客_uvm例程
可以分为两种情况
(1)如果代码里是
initial begin
run_test();
end
修改sim.do文件,补充+UVM_TESTNAME=my_case0
(2)如果代码里面为
initial begin
run_test(“my_case0”);
end
不用修改sim.do文件。
所以主要点就在写do文件上,这个要根据具体的情况去修改相应的文件。
之后有时间再看看怎么用VCS跑。