尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

UVM frontdoor vs backdoor:两条路,两种使命

UVM frontdoor vs backdoor:两条路,两种使命 1. 引子:读个寄存器,为什么有两种方式?假设你需要读取 DUT 内部一个状态寄存器的值,验证它是否在某个事件后被正确置位。方法一是发起一笔完整的总线读操作:构造 transaction、交给 sequencer、等待 arbitration、驱动总线、采样响应,最后层层回传数据。方法二则简单粗暴——直接通过 RTL 路径force读取那个寄存器的信号值,一行peek即可瞬间拿到结果。方法一就是frontdoor,方法二则是backdoor。前者慢但真实,后者快却“不走寻常路”。在 UVM RAL 中,这两种访问方式并非对立,而是各有明确的应用边界和适用场景。理解它们的本质差异,是避免验证漏洞和效率陷阱的关键。2. 核心概念:两条截然不同的访问路径2.1 Frontdoor —— 走正门,全路径仿真Frontdoor 访问模拟了真实 CPU 或主设备通过总线对寄存器进行读写的过程。它完整经过以下层级:软件层或 sequence 发起read()/write()调用RAL 将抽象操作转化为uvm_reg_itemuvm_reg_adapter将reg_item转换为总线transactionsequencer驱动driver,在总线上产生完整的时序波形DUT 内部的总线接口解码地址,执行读写,返回数据响应原路返回到 RAL,更新镜像值重点:frontdoor 不仅验证寄存器本身的位宽和属性,更重要的是验证了从总线接口到寄存器内部存储之间的所有控制逻辑、地址译码和通路时序。它是寄存器验证的“黄金标准”,任何寄存器通路 bug 都可能在 frontdoor 测试中暴露。2.2 Backdoor —— 走后门,直接探入硬件Backdoor 访问则完全绕过了总线,通过仿真器的专用接口直接读写 RTL 中的信号值。常用的方法包括:VPI / DPI-C 调用实现信号读(peek)和写(poke)SystemVerilog 的force/release机制UVM 内置的uvm_h
返回列表