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

相关推荐
IT_陈寒2 分钟前
SpringBoot 3.2 实战:这5个新特性让你的开发效率提升50%!
前端·人工智能·后端
水星梦月28 分钟前
跨平台开发中的图形渲染:Canvas与View+CSS的性能分析与决策路径
前端·css·图形渲染·canvas
yuanyxh28 分钟前
前端仔的一次运维实践
linux·运维·前端
望获linux3 小时前
【Linux基础知识系列:第一百五十九篇】磁盘健康监测:smartctl
linux·前端·数据库·chrome·python·操作系统·软件
十一吖i4 小时前
vue3表格显示隐藏列全屏拖动功能
前端·javascript·vue.js
冰暮流星6 小时前
css之线性渐变
前端·css
徐同保6 小时前
tailwindcss暗色主题切换
开发语言·前端·javascript
mapbar_front6 小时前
大厂精英为何在中小公司水土不服?
前端
生莫甲鲁浪戴6 小时前
Android Studio新手开发第二十七天
前端·javascript·android studio
2501_916008899 小时前
Web 前端开发常用工具推荐与团队实践分享
android·前端·ios·小程序·uni-app·iphone·webview