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

相关推荐
巴勒个啦15 分钟前
2026 年 CSS 选型真相:我用 Tailwind v4 + 原生新特性重构了一个组件库
前端·angular.js
LEE15 分钟前
别再堆 AGENTS.md 了:前端团队如何把 AI Coding 做成一套可执行的工程系统
前端·后端
三十而立洋22 分钟前
JavaScript 原型链:一张图讲透「对象继承」的底层真相
前端·javascript
工具派27 分钟前
markdown在线编辑器怎么选?渲染管线的3个坑和md转PDF跑版记录
前端·后端
平头哥技术团队27 分钟前
Day 13 | 调 line-height 和 margin:三处间距让名片页脱离模板感
开发语言·前端·javascript·学习·html5
一位正在转型AI全栈的前端工程师30 分钟前
AI 全栈学习之旅 -Week 9:什么是AI Agent?从Function Calling到LangGraph
前端·python
计算机魔术师1 小时前
Claude Opus 5 干不过人类客服?23.9% 的通过率撕开 Agent 真相
前端
cjy0001111 小时前
2026年9月零基础能听懂国内 FDE 讲师的课吗?
大数据·前端·人工智能·fde
南雨北斗1 小时前
wangeditor5 在vue3项目中的正确配置
前端
Cache技术分享1 小时前
517. Java 方法句柄 - 方法句柄 vs 反射 API
前端·后端