在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 36973|回复: 109

[原创] windows 7 下modelsim 10.0d配置UVM_1.1d

[复制链接]
发表于 2013-8-17 16:42:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

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, 下载次数: 1421 ) 。在后面我会附上源代码包...然后解压缩后,拷贝到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, 下载次数: 3234 ) modelsim-gcc-4.2.1-mingw32vc9.part02.rar (5.65 MB, 下载次数: 1428 ) 。我会附在后面,然后解压缩后,复制到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, 下载次数: 460 ) (附件里的这个文件是我编译好的,下载下来后可以直接使用,不用再进行编译了),至此,库文件编译完成。
5.到这里其实uvm的平台已经搭建完成了,下面的工作我们验证一下看是否搭建成功。下载hello_world.sv hello_world.rar (231 Bytes, 下载次数: 706 ) (后文附件),保存到任意目录下,我的目录是(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





发表于 2013-9-21 20:52:16 | 显示全部楼层
回复 1# guolehaohao


   你好 刚学uvm 方便加扣扣联系么  137874835
发表于 2013-9-21 22:04:45 | 显示全部楼层
回复 1# guolehaohao


   你好 我按照你的方法 一步一步进行到最后编译hello——world源文件时,报错。in read model?这是什么原因呢  我软件应该没啥问题
error_readonly.jpg
发表于 2013-9-21 22:41:57 | 显示全部楼层
error.JPG 你能告诉下我这是什么原因导致的的吗?  我设置的环境变量没有用  我是win7 32位的系统
 楼主| 发表于 2013-9-22 09:27:18 | 显示全部楼层
回复 3# 曾经白色球鞋


   报错的原因是找不到那个src的文件夹...也就是找不到那个uvm_pkg.dll的文件所在的目录...那里需要填写uvm_pkg.dll文件所在的目录的...你修改后再试试....
 楼主| 发表于 2013-9-22 09:30:24 | 显示全部楼层
回复 4# 曾经白色球鞋


   对于编译环境目录,这个我也不清楚,不过你可以在bat文件里在文件开头用set命令设置内部环境变量...   类似于C语言中的宏定义...就可以...
发表于 2013-10-23 18:57:16 | 显示全部楼层
非常的有用。
发表于 2013-11-25 21:50:28 | 显示全部楼层
3Q,不错!我试试
发表于 2013-11-27 18:55:52 | 显示全部楼层
不错不错 谢谢你
发表于 2013-11-27 18:56:05 | 显示全部楼层
找了好久了 真是不容易
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 14:46 , Processed in 0.032720 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表