UVM 中 Phase Jump 与 Reset 调试思路指南

UVM 中 Phase Jump 与 Reset 调试思路指南

一次通用的「main_phase → reset_phase」跳转排错流程,不含任何专有项目名称


1  背景与现象复现

在验证项目中,经常需要在 main_phasephase.jump() 直接跳转到 reset_phase,以便快速进入下一轮测试。但不少工程师会遭遇:

  • 仿真确实进入了 reset_phase
  • reset_db.all_clear()(或任何自定义清零函数)也打印了 reset done!
  • 日志却依然持续出现 checker / monitor 线程输出——仿佛线程根本没停。

这一现象通常由「子线程未被正确终止」+「VIP 复位打印」叠加造成。下面整理一条与具体 DUT/模块无关的排查思路。


2  典型误区速查

序号 误区 原因简述
认为 phase.jump() 会自动结束 所有 子线程 jump() 只结束调用它的 主线程fork…join_none 分离的子线程继续存在
reset_phase 使用 disable <label> 却找不到标签 命名块只在其词法范围可见,跨 task 调用会编译报错
把 VIP 打印误认为自家线程在跑 AXI/SPI/PCIe VIP 默认
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chen_陈某人

一杯水,一包烟,一把键盘敲一天

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值