VCS(DVE)调试

VCS Debugging

在这里插入图片描述

  • Debug visibility(可见度)
    1. $display 打印格式化信息到窗口(display显示active region的信息, 变量在赋值之前的值)
    2. $storbe 类似于display,除了打印将延迟,直到当前时间步中的所有事件都已执行
    3. $monitor 监视信号列表,当列表中信号发生改变时打印格式化信息(monitor显示monitor region的信息,变量赋值之后的值)
    4. $time 以64位整数的形式返回当前仿真时间(不同于CPU时间)
  • 结束仿真
    1. $stop 停止仿真,类似于breakpoint
    2. $finish 停止仿真,并结束当前仿真
  • 仿真激励和reference
    1. $readmemh 以16进制从文件中读取ASCII码
    2. $readmemb 以2进制从文件中读取ASCII码

示例:

module add_test;
    wire [3:0] sum_out;
    reg  [3:0] a_in,b_in;
    reg  [8:0] in;
    adder u1(a_in,b_in,sum_out);
    
    initial begin
        $monitor(at 
  • 0
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1入门 5 基本要求: 5 启用调试 5 编译时间选项 6 必要文件 6 调用DVE 7 64位技术支持平台 8 后台处理程序: 8 交互式界面 9 脚本命令(Scripts): 9 DVE的日志文件 10 在命令行运行仿真 10 DVEVCS, SystemVerilog, 和NTB (OV 和 SV) 10 VCS MX和VHDL 11 检查点还原的方法 12 C,C++,和System C代码 12 在GUI界面运行仿真 13 后台处理程序(Post-processing) 13 创建并且运行一个交互式的会话 14 运行仿真 15 工具栏的应用 16 模拟器(Simulator)菜单命令的应用 17 命令行的应用 18 保存会话或布局图 18 保存一个布局图会话 20 载入已保存的会话(session) 20 关闭数据库 20 退出DVE 21 2 图形化界面应用 22 DVE窗口属性概述 22 DVE窗格(panes) 23 管理DVE窗口 23 管理目标窗格 24 停放与移除窗口和窗格 25 拖拽和删除一个已停放的窗口 25 菜单栏和工具栏的应用 26 菜单栏参考 27 文件菜单 28 编辑菜单 29 视图查看菜单 30 仿真菜单 32 信号菜单 34 作用域菜单 36 追踪菜单 37 窗口 38 信号 39 模拟器 39 时间操作 40 扩大或缩小 41 扩大或缩小和变动记录 41 上下文记录命令菜单的应用 42 设置显示的首选项(Preferences) 42 自定义显示 42 3 使用层次数据和信号群组窗格 49 层次窗格 49 给信号赋值 50 4 使用源窗口 51 管理交互仿真中的断点 51 控制源窗口中的行断点 51 在对话框中管理断点 52 行断点 52 时间断点 53 信号断点 54 断言断点 55 任务/函数断点 56 编辑断点 57 5 运用波形窗口 58 建立目标窗口 58 设置波形窗口首选项 58 重命名信号组 60 过滤信号 60 添加信号分离器 60 设置复制信号的显示 60 创建一个用户定义基数 61 管理用户定义基数 61 导入和导出一个用户定义基数 62 运用波形窗 62 制定波形显示 63 指针和标记 64 使用指针 64 运用标记 65 移动,隐藏和删除标记 67 扩展和收缩波形信号 68 在图像窗中搜索 68 比较信号,域和组 68 建立总线并设置表达式 70 使用总线/表达式对话框 70 总线/表达式列表框 71 显示/隐藏细目表格 71 创建一个总线 72 修改总线成分 73 管理表达式列表 73 移位信号 74 8 断言与覆盖率 75 SV断言的编译 75 断言结果的观察 75 显示标准的设置 76 断言的调试 77 观察波形窗口中断言的失效 78 观察断言失效时间增量 79 源代码的定位 80 9 动态驱动和载入的跟踪 81 跟踪功能 82 支持的功能 83 不支持的功能 83 Vera的功能 83 跟踪驱动程序 84 跟踪载入 85 Vera的功能 86
UVM DVE是UVM(Universal Verification Methodology)的一部分,用于调试和验证设计中的问题。单步调试是一种调试技术,允许我们以逐步的方式运行代码,以便更好地追踪问题和理解代码的执行过程。 在UVM DVE中,单步调试功能使我们能够一次执行一个仿真周期,并观察每个步骤的结果。它通常用于定位和解决我们测试中遇到的交互问题、时序问题或复杂的调用流程。 使用UVM DVE进行单步调试通常需要以下步骤: 1. 准备仿真环境:首先,我们需要编写和配置UVM测试环境,包括各种测试组件,例如工厂类、测试类、环境类等。 2. 启动仿真:我们使用仿真工具(如ModelSim、VCS等)启动仿真进程,并加载所有需要的源代码以及UVM DVE库。 3. 进入UVM DVE:一旦仿真流程启动,我们可以在交互模式下进入UVM DVE。这将打开一个仿真控制台,提供了丰富的命令和选项供我们使用。 4. 设置断点:在UVM DVE中,我们可以设置断点,以便在特定代码位置停止仿真。这些断点可以在特定的类、方法或时间点上设置。 5. 单步执行:一旦断点设置完成,我们可以使用单步执行命令来逐步运行代码。这使我们可以观察代码每一步的运行情况,包括变量值和信号波形。 6. 观察结果:通过单步执行,我们可以仔细观察代码执行过程中产生的结果。我们可以检查变量值、调用堆栈、对象创建和销毁等信息,从而更好地理解代码行为。 总结起来,UVM DVE的单步调试功能提供了一种强大的方式来解决和调试设计中的问题。通过逐步执行代码并仔细观察运行结果,我们能够更好地定位问题,理解代码行为,并最终提高我们的测试和验证效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值