路科验证的个人空间 https://blog.eetop.cn/1561828 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

一种简易可行的复用RTL封装UVC的方法

已有 3553 次阅读| 2016-9-11 16:28 |个人分类:验证前沿资讯

随着IC设计规模和复杂度的增大,验证IP对于验证团队提高效率的意义越来越重要。在传统的基于HDL的验证平台中,验证工程师创建一个verilog写的BFM验证IP,来模仿一个特定的总线协议,并在传统的验证环境中集成BFMBus Functional Model,总线功能模型)。而近些年来,UVM得到很大发展,越来越多的验证环境被UVM建造,UVM定义了UVM UVCS,它是一个可重用的UVM接口验证IP,和传统的Verilog BFM扮演相同的角色。新建一个iUVC需要时间,基于复用理念,遗留的Verilog BFM可以通过调用BFM的内置的API连接到UVM的驱动程序,从而将传统的Verilog BFM可以在UVM中复用。本文讨论了这样一个提案:定制的UVM UVC验证IP包装Verilog BFM。

一、验证要求和挑战
如图1所示,Master IP通过shared bus连接到不同的Slave IP,这些Master  IP 和Slave IP是由别的团队开发和维护的,而我们要新开发一个Slave New IP,要有相同的总线接口。
在UVM独立验证中,我们遇到以下挑战:
  • 没有可用的UVM验证IP
  • 没有任何的Verilog BFM(具有模块化的功能和任务API)
  • IP必须在UVM被充分验证,SoC级验证为时已晚
  • 如果Master IP改变了总线时序,则Slave IP UVM验证环境必须同步跟进

二、提出解决方案
图4描绘了我们一般IP UVM独立的测试平台架构,这是一个可配置的分层结构, UVM interface UVCs 被绑定到DUV(design under verification ),并被集成到模块UVC组件。在模块UVC里,有其它UVM组件,实现了预测,检查和覆盖面的工作,比如模块 monitor,模块 scoreboard等。我们期望创建一个纯粹的UVM iUVC验证IP,与DUT直接交互。
在图5中,我们提出定制的UVM UVC有以下主要特点:
  1. 它复用和包装了Verilog BFM,使其对用户不可见
  2. 我们建立一个内部upper总线接口和一个验证IP接口(这是为用户挂钩到DUV)
  3. 在SV接口定义了一个抽象类,他们协助创建参数化的UVM组件实例,并提供API
  4.  UVM driver是UVM一个组件,通过upper总线接口驱动 sequence item .
  5.  adapter是一个UVM组件,它像一个桥传递总线数据。
  6.  agent monitor 监视着upper bus接口,并通过uvm_event将总线数据发送回sequence.
  7.  iUVC's monitor监视验证IP总线接口,并将transaction item传递给用户。
  8.  有一个总线协议断言库,并写在断言界面,挂钩到DUV。
  9. 它具有内置的序列库来验证验证IP与DUV之间的基本握手。
  10.  内置的功能覆盖将覆盖验证IP协议。
  11.   只有 UVM driver和 adapter 可进行参数化配置。
  12.  为了避免 Verilog BFM 编译冲突,我们定义宏将其排除在 SoC 编译之外。
  13.  它提供了内置的调试日志记录级别的控制设施。
原文中给出了 vip_driver , vip_adapter 以及 slave_VIP 相关类的详尽代码,因篇幅有限,不一一列举。我们使用uvm_config_db API来获取adapter_api和driver_api的句柄,图10显示了绑定接口,并使用uvm_config_db传承Verilog BFM/DUV和UVM组件的虚拟接口。
扩展到SOC
在IP层面,我们创建了定制UVM 验证IP来充分验证Slave New IP,当我们交付slave IP给SOC层次进行芯片级验证时,当然希望其UVM环境也能尽可能的被复用。如图12所示,在SoC验证的早期阶段,集成和验证Master IP可能已经完成,而slave IP还没被集成进来,我们又希望尽可能早地验证 slave IP 的集成和基本功能,基于这一需求, master IP设计可以提供虚拟存根,使输出信号为弱的驱动强度,以避免多驱动的情况。在SOC层次,我们复用IP层次的sequences和定制的UVM验证IP,替代Master IP。当 master IP 初步验证可用于基本的集成和功能,它可以与slave IP握手时,我们可以复用早期阶段开发的定制UVM验证IP,并配置它。通过这种方式,验证IP(VIP)可以帮助收集功能覆盖率,通过断言检查总线协议时序。
三、结论
应我们的验证要求,我们使用上述方法来创建定制的UVM验证IP。利用现有的一般iUVC模板和重用Verilog BFM ,与从头搭建相比,可以显著减少付出精力,以下是付出精力对照:
  • 创建文中定制的UVC验证IP需要工作
  1. “将master RTL解耦到upper/lower BFM。”取决于RTL设计者
  2. “上层UVC”,一个人一周内做完。
  3. “下层UVC适配器”,一个人两天内做完。
  4. “BFM任务接口”,一个人两天内做完。
  • 从头创建
  1. 这是完全不可预测的,因为它取决于总线时序的复杂性,当master RTL时序发生变化时,将引入升级的问题。

点赞

评论 (0 个评论)

facelist

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

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 253

    粉丝
  • 25

    好友
  • 33

    获赞
  • 45

    评论
  • 访问数
关闭

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

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-28 13:12 , Processed in 0.014010 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部