编译UVM库文件

2年多没玩UVM验证方法学,设计出身的我如今又要兼起验证大梁(嘿嘿,这算自夸吗),为团队搭建一套基于UVM的验证平台。这难道就是能力越强责任就越大吗?好了,不瞎哔哔了。今天就从启动脚本看起吧......


这种启动脚本包括2部分:编译和运行,使用Makefile的方式实现,具体内容如下:


Makefile中变量定义如下图:


  1. 编译

使用VCS编译器编译环境相关文件,包括UVM库文件、env相关文件及dut文件。其中编译UVM库文件又包括使用VCS安装目录下的库文件和用户自定义目录下的UVM库文件。

1)使用VCS安装目录下的库文件

在仿真目录下,执行 make comp ,即可完成编译


上图中各行的含义解释如下:

第26行:vcs表示编译指令,-sverilog表示支持sv语法,v2k表示支持Verilog-2001语法

第27行:指定仿真时间单位和精度

第28行:指定本次编译的UVM库,这里使用的是VCS安装自带库

第29行:在testbench中可以使用fsdb相关的函数

第30行:加载dut文件

第31行:加载test case list文件

第32行:加载env目录

第33行:加载tesetbench文件

第34行:有文件改变时才编译,目的就是节省编译时间

第35行:指定编译信息到comp.log

第36行:表示打开debug开关

第37行:表示dump vcd 波形文件

第38行:定义一些宏

2)使用用户自定义UVM库文件

在仿真目录下,执行 make comp_uvm ,即可完成编译

如果用户不想使用VCS自带UVM库文件时,可以使用如上图命令。这里仅说明和 1)中不一样的地方。

第43行:编译uvm_dpi.cc文件,这里必须添加第46行的目录,因为需要使用该目下的文件

第44行:编译UVM库文件,该文件里include 了一些库文件,并且是相对路径,所以需要添加45行目录

  1. 运行

在仿真目录下,执行 make sim ,即可完成仿真


运行命令含义如下:

第59行:调用simv二进制文件执行仿真

第61行:表示向仿真器中传入随机化种子

第62行:表示vcs在处理随机化数据产生时使用的随机化模式

第63行:指定test case的名字

第64行:过滤一些UVM的打印信息

第65行:指定仿真信息文件

文件   UVM
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章