优化UVM环境(一)-环境结束靠的是timeout,而不是正常的objection结束

书接上回:

从零开始搭建UVM平台系列

前面搭建的UVM平台已经是一个较为完整的平台,但是环境要想有通用性,还有很多需要优化的地方。

优化一:环境结束优化

问题:现在环境结束靠的是timeout机制,而不是正常的objection结束

原因:driver/monitor里用的是while(1)循环,没有办法正常跳出

解决办法:参考apb_driver。在run_phase或者main_phase里用fork...join_none起两个线程,一个是while(1)无限循环线程,另一个是objection更新线程。

以driver为例,while(1)无限循环线程就负责不断驱动数据;objection更新线程的职责就是:当看到while(1)循环里有数据要驱动时,就raise一个objection,当看到while(1)循环里的数据驱动完成时,就drop这个objection。

需要注意的是,这里update_objection里的objecction个数判断是1个,所以在main_phase里线程1/2之外的代码范围不要再raise/drop_objection了,否则个数会大于1,导致这套机制不会生效,仿真还是会走到timeout才结束。

同理,对scoreboard、model也可以做同样的修改。

相关推荐
小码哥_常5 小时前
安卓开发秘籍:解锁10大性能优化秘诀
前端
try2find7 小时前
打印ascii码报错问题
java·linux·前端
郑州光合科技余经理7 小时前
同城O2O海外版二次开发实战:从支付网关到配送算法
开发语言·前端·后端·算法·架构·uni-app·php
冰暮流星8 小时前
javascript事件案例-全选框案例
服务器·前端·javascript
Csvn8 小时前
前端性能优化实战指南
前端
Moment8 小时前
2026 年,AI 全栈时代到了,前端简历别再只写前端技术了 🫠🫠🫠
前端·后端·面试
糯米团子7498 小时前
Web Worker
开发语言·前端·javascript
freewlt9 小时前
React Server Components 深度解析
前端·react.js·前端框架
wordbaby9 小时前
一次跨端 Loading 卡死复盘:把请求计数从 Axios 拦截器迁到 try/catch/finally
前端·axios
我命由我123459 小时前
JavaScript 开发 - 获取函数名称、获取函数参数数量、获取函数参数名称
开发语言·前端·javascript·css·html·html5·js