|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
自己搞了有三四天吧,一直搞不出来。在参考下方帖子的基础上,现在有所突破,modelsim搭建UVM仿真平台的资料比较少,因此我把自己搭建平台的过程分享出来。
参考网页:http://blog.csdn.net/wyf100/article/details/93037531.需要安装modelsim。我用的是10.0d版本的,为了做这个,我也安装了questasim,是10.0c的,应该都可以的。具体的安装和破解过程就不说了.....环境变量什么的,在安装过程中会提示你是否自动配置...等等
2.下载uvm_1.1d
uvm-1.1d.tar.gz
(3.07 MB, 下载次数: 1422 )
。在后面我会附上源代码包...然后解压缩后,拷贝到modelsim安装目录的../verilog_src/目录下,我的目录是(C:\modeltech_10.0d\verilog_src),这里注意,拷贝过来之后,打开uvm_1.1d文件夹,应该能直接看到bin/docs/examples/src/等文件夹和几个txt文件。
3.配置系统环境变量。在这里我多说两句,在64位的windows系统中配置系统环境变量是不起作用的,(我的是win7,64位)只能每次输入绝对路径,很麻烦,因此配置环境变量这一块参考上文网页里面的说明,这里跳过。
4.编译uvm_1.1d库文件。所谓编译库文件,我的理解是将uvm_1.1d编译成windows中modelsim可以加载的dll文件,因此这一个步骤是生成一个.dll文件的过程。这里需要GCC的编译命令,最新的是(modelsim-gcc-4.2.1-mingw32vc9)
modelsim-gcc-4.2.1-mingw32vc9.part01.rar
(14 MB, 下载次数: 3236 )
modelsim-gcc-4.2.1-mingw32vc9.part02.rar
(5.65 MB, 下载次数: 1430 )
。我会附在后面,然后解压缩后,复制到modelsim安装目录下,我的复制目录是(C:\modeltech_10.0d\gcc-4.2.1),打开该文件后能够直接看到bin/doc/include/info/lib/libexec/man/share文件夹,上面这些基本工作做完后,就可以编译.dll文件了。进入DOS目录,然后cd到gcc.exe所在的那个目录中,我的目录是(C:\modeltech_10.0d\gcc-4.2.1\bin),然后输入如下指令:g++.exe -g -DQUESTA -W -shared -Bsymbolic -I C:/modeltech_10.0d/verilog_src/uvm-1.1d/../include C:/modeltech_10.0d/verilog_src/uvm-1.1d/src/dpi/uvm_dpi.cc -o C:/modeltech_10.0d/verilog_src/uvm-1.1d/lib/uvm_dpi.dll C:/modeltech_10.0d/win32/mtipli.dll -lregex
这一段指令用于生成uvm_dpi.dll,同时存放在C:/modeltech_10.0d/verilog_src/uvm-1.1d/lib/目录中,我们需要在编译之前在C:/modeltech_10.0d/verilog_src/uvm-1.1d/目录中新建一个lib文件夹,否则会因为lib目录不存在而报错。
然后,我们会在lib文件夹中发现uvm_dpi.dll这个文件
uvm_dpi.rar
(103.33 KB, 下载次数: 461 )
(附件里的这个文件是我编译好的,下载下来后可以直接使用,不用再进行编译了),至此,库文件编译完成。
5.到这里其实uvm的平台已经搭建完成了,下面的工作我们验证一下看是否搭建成功。下载hello_world.sv
hello_world.rar
(231 Bytes, 下载次数: 707 )
(后文附件),保存到任意目录下,我的目录是(H:\modelsim-project\),然后打开modelsim,切换工作目录但hello_world.sv所在的目录,新建一个project,然后将hello_world.sv添加进去...然后输入下面命令编译该文件:vlog +incdir+C:/modeltech_10.0d/verilog_src/uvm-1.1d/src -L mtiAvm -L mtiOvm -L mtiUvm -L mtiUPF H:/modelsim-project/hello_world.sv
这里我用的都是绝对路径,如果用32位的操作系统的,配置好环境变量后就可以用$VUM_HOME等替代了。另外有个问题,就是不能用窗口中的compile编译,这个问题有待下一步研究...
编译后会提示下面信息:
# Model Technology ModelSim SE vlog 10.0d Compiler 2011.10 Oct 30 2011
# -- Compiling package uvm_pkg
# -- Compiling module hello_world_example
# -- Importing package uvm_pkg
#
# Top level modules:
#
hello_world_example
编译完成,应该不会报错。下一步,我们运行该代码,输入命令:vsim -c -sv_lib C:/modeltech_10.0d/verilog_src/uvm-1.1d/lib/uvm_dpi work.hello_world_example
就会出现下面结果:
# vsim -c -sv_lib C:/modeltech_10.0d/verilog_src/uvm-1.1d/lib/uvm_dpi work.hello_world_example
# ** Note: (vsim-3813) Design is being optimized due to module recompilation...
# Loading sv_std.std
# Loading work.uvm_pkg(fast)
# Loading work.hello_world_example(fast)
# Loading C:/modeltech_10.0d/verilog_src/uvm-1.1d/lib/uvm_dpi.dll
应该不会报错。然后进入到仿真界面,我们点击run 100,会出现下面的结果:
# ----------------------------------------------------------------
# UVM-1.1d
# (C) 2007-2013 Mentor Graphics Corporation
# (C) 2007-2013 Cadence Design Systems, Inc.
# (C) 2006-2013 Synopsys, Inc.
# (C) 2011-2013 Cypress Semiconductor Corp.
# ----------------------------------------------------------------
#
# *********** IMPORTANT RELEASE NOTES ************
#
# You are using a version of the UVM library that has been compiled
# with `UVM_NO_DEPRECATED undefined.
# See http://www.eda.org/svdb/view.php?id=3313 for more details.
#
# You are using a version of the UVM library that has been compiled
# with `UVM_OBJECT_MUST_HAVE_CONSTRUCTOR undefined.
# See http://www.eda.org/svdb/view.php?id=3770 for more details.
#
# (Specify +UVM_NO_RELNOTES to turn off this notice)
#
# UVM_INFO H:/modelsim-project/hello_world.sv(6) @ 0: reporter [info1] Hello World!
表示运行成功了...至此modelsim 10.0c的UVM_1.1d的仿真平台搭建完毕...
另外有几个需要注意的问题在这里提醒一下:
1.输入目录中的\在命令输入中需要换乘/。这个一定要注意...
2.不知道如何不通过命令实现代码的编译和仿真(同一个hello_world.sv文件,用命令仿真就没有错误,而用鼠标选择compile for select 就会报错)....
3.在编译的时候不知道为什么有时候会加载ovm-2.1.2的东西...很奇怪,需要将ovm的目录名修改掉才可以...
本人初学者,欢迎交流。邮箱:guolehaohao@163.com
|
|