http://weixin.niurenqushi.com/article/2016-07-11/4359380.html
在modelsim中建立UVM环境,使用的UVM是UVM1.1d。
如果安装的是modelsim 10.4版本的话,软件自动的将UVM的库给编译好了,生成了.dll文件,供UVM验证使用。
在modelsim的安装目录下的 UVM-1.1d/win64下,就有一个uvm_dpi.dll。
以hello_world.sv这个例子为例,说明验证环境的搭建。在这个文件目录下,有3个文件。
Hello_world.sv: 验证的代码
Run.bat:windows运行的脚本
Sim.do: modelsim运行的脚本文件
对于hello_world.sv,该程序,就是输出一个hello uvm。
对于rum.bat,就一句,就是调用modelsim,使用-do选项,当 modelsim启动后,自动执行sim.do脚本。
对于sim.do文件
代码
| set UVM_DPI_HOME C:/software/modeltech64_10.4/uvm-1.1d/win64 vlib work vlog -L mtiAvm -L mtiOvm -L mtiUvm -L mtiUPF hello_world.sv vsim -c -sv_lib $UVM_DPI_HOME/uvm_dpi work.hello_world_example run 100
|
设置环境变量UVM_DPI_HOME,指定modelsim下的UVM1.1d的DPI的位置
建立work library
编译hello_world.sv代码,通过-L 指定编译需要的几个library
执行仿真,通过-sv_lib选项,执行UVM1.1d的uvm_dpi.dll,然后针对于哪一个module进行仿真
运行100ns
执行,也很简单了,直接对run.bat双击。
就会调用modelsim,然后开始执行sim.do脚本。
最后,就会显示Hello UVM。
至此,验证环境搭建成功。后面,就是增加代码文件,然后在sim.do文件中,对增加的代码文件进行编译,然后针对于顶层module进行仿真即可。

![clip_image002[4]](/image/aHR0cDovL3BpY3Mubml1cmVucXVzaGkuY29tL2NvcHkvbW1iaXoucXBpYy5jbi9tbWJpei95MUpnMDNlcGpWQ0wwRjlpY3M3T1ZTNjhkbUhWaWFOWGlhaWFNdzdWeEFEMWt3aWJMTUxveW9GRlpobmFlWlJTakJCRDI2S1hpYm5MbFcxTWJjME1yQnZkTzNWUS8wP3d4X2ZtdD1qcGVn.png)
![clip_image004[4]](/image/aHR0cDovL3BpY3Mubml1cmVucXVzaGkuY29tL2NvcHkvbW1iaXoucXBpYy5jbi9tbWJpei95MUpnMDNlcGpWQ0wwRjlpY3M3T1ZTNjhkbUhWaWFOWGlhaWF5RTlrcXk0UDBYclIxbmU5SmJ6TGliV0FvMlZ1VEJVOGVKSzg0R2JzUFpZSlZxRVV4MnRSMVhnLzA_d3hfZm10PWpwZWc=.png)
![clip_image006[4]](/image/aHR0cDovL3BpY3Mubml1cmVucXVzaGkuY29tL2NvcHkvbW1iaXoucXBpYy5jbi9tbWJpei95MUpnMDNlcGpWQ0wwRjlpY3M3T1ZTNjhkbUhWaWFOWGlhaWFiTHNzNGlicDhwNXFUeVgwWFM5YkJFalZpY25XZ2RpYVl6bG9WVFRsNWtxRVRXWmljRGpqSG4xVG5RLzA_d3hfZm10PWpwZWc=.png)
![clip_image008[4]](/image/aHR0cDovL3BpY3Mubml1cmVucXVzaGkuY29tL2NvcHkvbW1iaXoucXBpYy5jbi9tbWJpei95MUpnMDNlcGpWQ0wwRjlpY3M3T1ZTNjhkbUhWaWFOWGlhaWFBZ1owekYwUkpyaWM1ZFJrdE9pYXA5ZkN1SEVrOHBlMkZuT0hCV0RvOU9EOWx2aWFIMFN1aWN0YlNBLzA_d3hfZm10PWpwZWc=.png)
![clip_image010[4]](/image/aHR0cDovL3BpY3Mubml1cmVucXVzaGkuY29tL2NvcHkvbW1iaXoucXBpYy5jbi9tbWJpei95MUpnMDNlcGpWQ0wwRjlpY3M3T1ZTNjhkbUhWaWFOWGlhaWFpYmxwV3VjNHZWRVR6VElsU05YektkSTdEM2hLREpUSkZHdmljT25TV3dud3drcTNyTWR6bWlhT3cvMD93eF9mbXQ9anBlZw==.png)
![clip_image012[4]](/image/aHR0cDovL3BpY3Mubml1cmVucXVzaGkuY29tL2NvcHkvbW1iaXoucXBpYy5jbi9tbWJpei95MUpnMDNlcGpWQ0wwRjlpY3M3T1ZTNjhkbUhWaWFOWGlhaWFSQ1FtT3J3VE9zOXoyQ0V1dGhvOUVTbVZKSTN0cmJxMEZQckdGdkxybGliMERTeFhQQWliVlV1Zy8wP3d4X2ZtdD1qcGVn.png)
![clip_image014[4]](/image/aHR0cDovL3BpY3Mubml1cmVucXVzaGkuY29tL2NvcHkvbW1iaXoucXBpYy5jbi9tbWJpei95MUpnMDNlcGpWQ0wwRjlpY3M3T1ZTNjhkbUhWaWFOWGlhaWFmQWlidWJHU3FpY2RHOVpHck9jQkRjN1Nja3NEZkxSc1haajBYekthV0g2T25lTnBQOVBOVWRpYlEvMD93eF9mbXQ9anBlZw==.png)