test与启动流程

返回知识网络总入口 · 平台与对象

核心结论

run_test 选择并创建 test,test 组合环境、设置配置与替换策略,并启动场景。新 test 通常复用相同 env。

关键机制

  • top module 连接静态 DUT/interface,在 run_test 前设置 vif。
  • +UVM_TESTNAME 选择已注册且进入编译范围的 test,实例通常叫 uvm_test_top。
  • build 创建环境和配置,connect 连接 TLM,运行阶段 start sequence。
  • 场景拥有者持有 objection,直到激励与检查均完成。

小例子或流程

// test的main_phase片段
my_sequence seq;
phase.raise_objection(this);
seq = my_sequence::type_id::create("seq");
seq.start(env.agt.sqr);
wait (env.scb.all_done); // 平台自行实现的完成标志
phase.drop_objection(this);

易错点

  • 建树与连接依赖 phase,不是在选择 test 名字时一并完成。
  • start 返回不等于 scoreboard 排空。
  • 为完成条件设置独立 timeout,避免无限等待。

关联知识

原文出处与已有面试题