SystemVerilog | UVM | 使用Objection管理仿真结束

本文介绍了SystemVerilog的UVM框架中Objection机制的工作原理和使用方法,包括同步组件、管理仿真结束的功能。Objection通过协调组件状态实现同步,常见用法涉及raise_objection(), drop_objection()和set_drain_time()。此外,文章还讨论了UVM 1.2版本的变化以及一些不常用的调试技巧。" 11169997,1123597,C++实现:处理100以内正整数的加减运算,"['C++', '字符串解析', '算法']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天来聊一聊所谓的Objection机制。
Objection
Objection是UVM框架中用来同步不同组件的相同phase,以及决定当前测试用例什么时候结束(end-of-test)的机制,这也是用户在拿到UVM之后最直白的使用场景。本篇文章除了介绍Objection的工作原理和常规使用方式,还会介绍Objection的一些非常规用法。

01 、Objection工作原理

为什么把同步phase或者说管理仿真结束的机制叫做Objection?这是个没有多少实际意义的问题,不过理清楚之后,也许你再也不会忘了Objection机制的用途。

按照UVM reference的介绍:“Objections provide a facility for coordinating status information between two or more participating components, objects, and even module-based IP. ” 这个描述还是比较抽象,说Objection用于协调多个对象之间的状态信息,不过可以简单理解成就是“同步”。

本系列前面的文章【深入Phase机制,看懂Phase机制实现原理】介绍到,基于UVM的仿真程序执行严格按照Phase来执行,而每一级phase都按照UVM定义的状态机做跳转,其中有一个状态比较特殊,叫UVM_PHASE_READ_TO_END。这个IC修真院里给大家详细说明过。

这个状态的特点是:只有当同级phase的所有objection都被撤销(drop)之后(通过计数器实现)&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值