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)