UVM phase机制——UVM回顾笔记(2)

本文章旨在学习总结备份、便于日后查询;内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。

原文连接:https://zhuanlan.zhihu.com/p/421277486


一、简介

Phase”是UVM主要的特性之一,其目的是为了统一testbench执行流程。UVM中的phase主要分为3类,即按顺序执行build phaserun-time phaseclean up phase。

  • Build phases-构建和配置testbench;
  • Run-time phases-在testbench上运行test case(会消耗仿真时间);
  • Clean up phases-在该阶段报告test case的结果。

uvm_component基类包含不同pahse的虚拟方法,这些方法由testbench创建者自行填充。在这里就体现了使用UVM的好处了,即各个验证组件独立开发并基于相同的共识相互配合。

二、功能与使用

要启动UVM testbench,必须在顶层initial语句块调用run_test()方法。调用run_test()会构造UVM testbench根组件,然后启动UVM phase。run_test()方法可以传递一个字符串参数用作testbench层次结构的根节点。

为了将testcase组件“my_test”指定为UVM testbench根组件,Questa命令行将是:

vsim tb_top +UVM_TESTNAME=my_test

下面将概述每个UVM phase的用途:

Build Phases:

build phases在UVM testbench仿真开始时执行,其总体目的是构建、配置和连接测试台组件层次结构。所有的build phases方法都是functions ,在0仿真时间执行完成。

  • build_phase(自上而下):创建和配置测试平台结构
  • connect_phase:建立组件之间的连接,向testbench 资源池分配对象句柄(例如virtual interface)
  • end_of_elaboration:测试环境的微调

一旦构建了UVM testbench 根节点组件,build phase就开始执行。它从上到下地构建testbench 组件层次结构。

Run-Time Phases:

  • start_of_simulation phase:准备测试环境的仿真,旨在用于自下而上地显示信息(例如testbench拓扑结构、组件配置信息等 )。
  • run_phase(耗时):用于激励的产生和testbench的监测和检查。run_phase作为一个task实现,所有uvm_component的run_phase都并行执行。drivers 和monitors 总是会使用这一phase。

run_phase任务和上面细分的12个phase是并行的,即在start_of_simulation_phase任务执行之后,run_phase和reset_phase开始执行,而在shutdowm_phase执行完成之后,需要等待run_phase执行完才可以进入extract_phase。

Clean Up Phases:

clean up phases 用于从scoreboards 和functional coverage monitors中提取信息,以确定testcase是否达到其覆盖目标。clean up phases是functions ,所以也不会消耗仿真时间。

  • extract_phase:从测试环境中收集数据
  • check_phase:检查仿真中任何不期望的行为
  • report_phase:报告测试结果
  • final_phase:结束仿真

extract phase、 check phase、 report phase和 final phase都可以在同一个function phase中完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值