注册 登录
ET创芯网论坛(EETOP) 返回首页

ee_king的个人空间 http://blog.eetop.cn/?1494617 [收藏] [复制] [分享] [RSS]

日志

Testbench/Phasing(从Phase Descriptions开始)

已有 553 次阅读2018-9-19 09:44 |系统分类:芯片设计

        Phase Descriptions

      以下部分描述了每个不同UVM阶段的目的。

       Build Phases 

      build phases在UVM测试平台仿真开始时执行,其总体目的是构建、配置和连接测试平台组件层次结构。
       所有build phase methods都是functions,因此在零仿真时间内执行完。 

       build  

       构建UVM测试平台根节点组件后,build phase开始执行。它从上到下构造testbench组件层次结构。延迟每个组件的构造,以便可以通过上层来配置组件层次结构中的每个层。在build phase期间,uvm_components是使用UVM factory间接构建的。

       connect

       connect phase用于在组件之间建立TLM连接或为测试平台资源分配句柄。connect phase必须在build method将testbench组件层次结构放置到位后才会执行,connect phase从层次结构的底部向上工作。

       end_of_elaboration

       end_of_elaboration phase用于在仿真开始之前对测试平台的结构、配置或连接性进行任何形式的最终调整。它的实现可以确保测试平台组件层次结构和互连连接已经到位。这个phase自下而上执行。

       Run Time Phases

      在build phase之后的run time phase期间生成并执行测试平台激励。在start_of_simulation phase之后,run phase与"pre_reset phase到post_shutdown phase之间的phase“是并行执行的。run phase存在于OVM中并保留以允许OVM组件轻松迁移到UVM。这也是事务传输器将使用的phase。将其他phase添加到UVM中,以便为test、scoreboard和其他类似组件提供更精细的运行时间分段精度。期望大多数测试平台仅使用reset,configure,main和shutdown,而不是它们的pre和post变体phase。

        start_of_simulation【说明:此处这个属于function,应放在上面end_of_elaboration后面说的,不应该排版在这里

        start_of_simulation阶段是在测试平台的耗时部分开始之前发生的函数。它旨在用于展示banners、测试平台拓扑结构或配置信息。它以自下而上的顺序调用。

        run

        运行阶段发生在start_of_simulation phase之后,用于生成和检查测试平台的activities(我猜与active和passive有关)。run phase作为task实现,所有uvm_component 的run phase都并行执行。诸如driver和monitor之类的Transactor几乎总是使用这个phase。

        pre_reset

        pre_reset phase与run phase同时启动。其目的是处理复位前应发生的任何活动,例如等待电源良好信号激活。我们预计这一phase不会有太大用处。

        reset

        reset phase保留下来用于DUT或接口特定的复位行为。例如,此phase将用于生成复位并将接口置于其默认状态。

        post_reset

        post_reset phase适用于复位后立即需要的任何活动, 这可能包括training or rate negotiation行为。我们预计这一phase不会有太大用处。

        pre_configure

        pre_configure阶段用于在复位完成后为DUT的配置过程做准备所需的任何事情,例如driver中等待复位完成后来执行此处phase。它还可以用作修改要更新到DUT的test/environment描述的信息的最后机会。我们预计这一phase不会有太大用处。

        configure

         configure phase用于对DUT和测试平台中的任何存储器进行读写,以便为测试用例的启动做好准备。它还可用于将信号设置为准备好测试用例启动的状态。  

        post_configure

        post_configure阶段用于等待配置的影响通过DUT传播,或者使其达到准备启动主要的test激励的状态。我们预计这一phase不会有太大用处。

        pre_main

        pre_main phase用于确保所有必需组件准备好开始生成激励。我们预计这一phase不会有太大用处。

        main

        这是生成测试用例指定的激励并将此激励应用于DUT的地方。当所有激励都完成生成或发生超时时,它就会完成。大多数数据将由此phase启动的sequence处理。

        post_main

        该phase用于处理main phase剩下的任何相关事情。 我们预计这一phase不会有太大用处。

        pre_shutdown

        该phase是在shutdown phase之前需要进行的任何DUT激励的buffer。 我们预计这一phase不会有太大用处。

        shutdown

        shutdown phase用于确保main phase期间产生的激励的影响已经传播通过DUT,任何结果数据都已释放消失。它还可以用于执行读取状态寄存器的耗时sequence。

        post_shutdown

        在退出活动的仿真phase之前执行任何最终活动。在post_shutdown phase结束时,UVM测试平台执行过程开始启动clean up phase。我们预计这一阶段不会有太大用处(尽可能使用一些对象代码的例外)。

        Clean Up Phases

      clean up phase用于从scoreboard和功能覆盖monitor中提取信息,以确定测试用例是否已通过和/或达到其覆盖目标。clean up phase作为function(函数)被实现,因此执行时间为零。它们从组件层次结构的底层至顶层工作。

        extract

        extract phase用于从scoreboard和功能覆盖monitor检索和处理信息。这可能包括计算report phase使用的统计信息。该phase通常由分析组件使用。

        check

        check phase用于检查DUT是否正常运行并识别在执行测试平台期间可能发生的任何错误。该phase通常由分析组件使用。

       report

       report phase用于显示仿真结果或将结果写入文件。该phase通常由分析组件使用。

       final

       final phase用于完成测试平台尚未完成的任何其他未完成的操作。

发表评论 评论 (1 个评论)

回复 ee_king 2018-9-19 13:56
:victory:

facelist

您需要登录后才可以评论 登录 | 注册

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|ET创芯网 ( 京ICP备:10050787号 京公网安备:110105001212 )

GMT+8, 2019-4-21 08:15 , Processed in 0.029101 second(s), 9 queries , Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部