优化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也可以做同样的修改。

相关推荐
rongDang3 分钟前
浏览器模拟发送POST请求
前端·javascript
清汤饺子7 分钟前
OpenSpec:让 AI 编程从"开盲盒"到"先签字再干活"
前端·javascript·后端
用户69371750013847 分钟前
太钻 Android 了,在电鸭刷私活把我自己刷清醒了
android·前端·github
wuhen_n11 分钟前
ReAct模式理论:让AI学会“思考-行动-观察”
前端·javascript·ai编程
han_12 分钟前
JavaScript设计模式(七):迭代器模式实现与应用
前端·javascript·设计模式
SPC的存折18 分钟前
4、Ansible之Playbook变量应用
linux·前端·chrome·ansible
吴佳浩 Alben18 分钟前
Vibe Coding 时代:Vue 消失了还是 React 太强?
前端·vue.js·人工智能·react.js·语言模型·自然语言处理
wuhen_n19 分钟前
错误处理与容错机制:让AI学会“从失败中学习”
前端·javascript·ai编程
Mintopia26 分钟前
别再迷信“最佳实践”:适合你项目的才是对的
前端·架构
console.log('npc')27 分钟前
react弹窗组件
前端·javascript·react.js