UVM-01 win10环境下利用questasim仿真《UVM实战》代码

张强大大的《UVM实战》中代码是基于Linux环境下的编译运行,并没有说到如何在win系统下编译运行,我经过摸索(百度)终于成功建立了仿真环境和编译运行环境

参考内容:1 数字09 modelsim中怎么仿真《UVM实战》中的例程_影子才是本体的博客-CSDN博客

                         2 https://www.136.la/tech/show-435643.html

编译环境:win10 64bit、questasim10.6c

编译内容以《UVM实战》中的ch2->section2.2->2.2.3中的源码为例,其中章节类似

1 建立项目文件夹

 建立项目文件夹之后把相关的源码复制到项目文件夹下,2.2.3下的源码包括dut一共三个文件

2 建立仿真命令文件

建立tcl命令文件,以.do为后缀,名字任意,建议以英文命名,中文我没有试过,内容如下:

解释如下:第一个set命令设置UVM源码的目录,questasim10.6c自带许多版本的UVM库,可根据自己的questasim安装位置和需要的UVM版本修改命令,如果自己下载安装的UVM库,修改目录即可

                 第二个set命令设置UVM连接库的目录,与第一个set命令类似,根据自己实际情况实际修改

                 第三个set命令设置工作目录

                vlib work:将库文件编译到work中

                vlog命令:启动UVM库编译工作目录的下的源文件

                vsim命令:启动仿真进程

                run -all:开始仿真

3 启动questasim建立工程

                                                                                               

将工程Project location 设置与上述工程目录位置一致,其它跳过或默认

如下图将工作目录手动修改与源码位置一致,或者在命令窗口输入 cd X: /XX/XX/XX等命令切换工作目录

4 启动仿真

在questasim 命令窗口输入 do sim.do命令,其中sim与第二步建立的脚本文件一致

编译仿真顺利的话,会弹出如下界面,点击否即可,然后返回命令窗口查看结果,命令窗口没有显示的是,questasim选择view->Transcript手动打开命令窗口

5 仿真结果

结果与《UVM实战》预期一样

  • 7
    点赞
  • 105
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
UVM-Info是一种用于在Universal Verification Methodology(UVM)中进行消息传递和报告的结构。它提供了一种机制,用于在测试环境中传递信息、警告和错误消息,并将其报告给用户。 UVM-Info结构由以下几个主要组成部分组成: 1. `uvm_info`类:这是UVM-Info结构的主要类,用于创建和管理消息。它提供了一些方法,如`uvm_info::set_id()`用于设置消息的唯一标识符,`uvm_info::set_file()`用于设置消息所在的文件名,`uvm_info::set_line()`用于设置消息所在的行号等。 2. `uvm_report_object`类:这是一个基类,用于派生出具体的报告对象类。它提供了一些方法,如`uvm_report_object::uvm_report_info()`用于创建并发送信息消息,`uvm_report_object::uvm_report_warning()`用于创建并发送警告消息,`uvm_report_object::uvm_report_error()`用于创建并发送错误消息等。 3. `uvm_report_handler`类:这是一个报告处理器类,用于管理和过滤UVM-Info结构中的消息。它提供了一些方法,如`uvm_report_handler::set_actions()`用于设置不同类型消息的处理动作,`uvm_report_handler::set_severity_id()`用于设置消息的严重程度和唯一标识符等。 4. `uvm_report_catcher`类:这是一个报告捕获器类,用于捕获和处理UVM-Info结构中的消息。它提供了一些方法,如`uvm_report_catcher::catch_info()`用于捕获信息消息,`uvm_report_catcher::catch_warning()`用于捕获警告消息,`uvm_report_catcher::catch_error()`用于捕获错误消息等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值