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

相关推荐
我的div丢了肿么办4 分钟前
element-plus表格使用:filter-method过滤导致出现无数据
前端·javascript·vue.js
F_Quant6 分钟前
高股息+破净+PEG三因子:年化20%的背后,是一个“敢于证伪自己”的捡烟蒂策略
前端
不可能片场16 分钟前
Electron 发布核验 别把没查到当成没发出去
前端·electron
开开心心就好29 分钟前
文件被占用删不掉?解锁工具强制删除
java·运维·服务器·开发语言·前端·pdf·ocr
inksci1 小时前
发布Ai生成的html markdown 推荐
前端·javascript·html
在西安放羊的牛油果1 小时前
WebP 图片优化方案详解
运维·前端·架构
coding漫漫长路1 小时前
签名PDF一压就失效,接压缩需求前先查这5件事
前端
Lank_M1 小时前
PDF签完名还能改什么?会签能过,压缩不行
前端
补码缩写1 小时前
压缩前查PDF签名,字节搜索会漏掉对象流
前端