首页 > 代码库 > UVM系统验证基础知识0(Questasim搭建第一个UVM环境)

UVM系统验证基础知识0(Questasim搭建第一个UVM环境)

 

版权声明:本文为Times_poem原创文章,转载请告知原博主。特别声明:本文在原文基础上做了简单修改以适应文中举例在questasim下的运行,敬请原博主谅解。

需求说明:UVM系统验证

内容       :IC设计验证

来自       :时间的诗

原文:http://www.ibowen.net/a/toutiao/252197.html

1. 创建代码

QuestaSim中建立UVM环境,使用的UVM是UVM1.1b。

如果安装的是QuestaSim 10.1c版本及以上的话,软件自动的将UVM的库给编译好了,生成了.dll文件,供UVM验证使用。

modelsim的安装目录下的 UVM-1.1b/win64下,就有一个uvm_dpi.dll。同样也可以在questasim安装目录下直接搜索uvm_dpi.dll以找到其确切路径。

技术分享

hello_world.sv这个例子为例,说明验证环境搭建。在这个文件目录下,有3个文件。

      Hello_world.sv: 验证的代码

      Run.bat:  windows运行的脚本

      Sim.do:  modelsim运行的脚本文件

对于hello_world.sv,该程序,就是输出一个hello uvm。

  1. `include "uvm_pkg.sv"  
  2. module hello_world_example;  
  3.   import uvm_pkg::*;  
  4.   `include "uvm_macros.svh"  
  5.   initial begin  
  6.     `uvm_info("info1","Hello UVM!",UVM_LOW)  
  7.   end  
  8. endmodule: hello_world_example  
  9.      

对于rum.bat,就一句,就是调用modelsim,使用-do选项,当 modelsim启动后,自动执行sim.do脚本。

技术分享

对于sim.do文件

代码

  1. #Time: 2016-07-19  
  2. #By  : times_poem  
  3.   
  4. quit -sim  
  5.   
  6. cd F:/UVM/prj00  
  7.   
  8. set  UVM_DPI_HOME   D:/software/modelsim10/uvm-1.1b/win64  
  9. if [file exists work] {  
  10.   vdel -all  
  11. }  
  12. vlib work  
  13. vlog  -L mtiAvm -L mtiOvm -L mtiUvm -L mtiUPF  hello_world.sv  
  14. vsim  -c -sv_lib $UVM_DPI_HOME/uvm_dpi   work.hello_world_example  
  15. 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

2.运行代码

执行,也很简单了,直接对run.bat双击。

如果run.bat运行不成功,可以选择打开questasim,再输入如下指令指定运行路径

cd F:/UVM/prj00 

再输入执行命令

do sim.do 

3.显示结果

就会调用modelsim,然后开始执行sim.do脚本。 

技术分享

技术分享

至此,验证环境搭建成功。后面,就是增加代码文件,然后在sim.do文件中,对增加的代码文件进行编译,然后针对于顶层module进行仿真即可。

UVM系统验证基础知识0(Questasim搭建第一个UVM环境)