验证IP(VIP)及开发VIP的流程

使用到VIP的地方?

  • 设计IP的开发者。需要一个稳定的VIP帮助其完成设计IP的验证;
  • 设计IP的集成者。需要更深层次去验证设计是否经得住充分的应用;
  • 子系统开发者。需要各个IP都可以独立工作,但又需要检查各个模块之间是否是按照要求实现集成;
  • SoC开发者。在SoC完成多个子系统集成时,不仅需要考虑系统之间的交互,还需要利用VIP完成更快地定向功能检测。

VIP的应用优势?

在移动SoC时代,单个SoC中包含很多标准化的不同功能设计模块和总线协议。这些协议等的标准每年又在不断地更新,也因此设计IP和VIP都需要与标准保持同步,这对于SoC的按时交付就提出了更大的挑战。如果自己开发验证这些的环境,就需要考虑这个环境是否稳定,是否完全遵循协议,耗时耗力。所以,为了保证按时交付,使用VIP可以加速验证环境的搭建。

VIP的选择?

  • 公司目前所用的仿真器提供商 是否有对应的VIP,其协议版本是否与设计协议版本相匹配;
  • 如果选择另一家公司的VIP,需要考虑它能否与目前的仿真器兼容,以及是否能够与目前已有的可能来自于其他公司的VIP相兼容;
  • 该VIP是否足够成熟,例如它之前的客户数量,以及是否经历了多次的silicon proven的开发周期;
  • VIP是否易于使用,尤其对于初次接触该VIP的用户,编译和环境植入的难易程度会直接影响验证的周期;
  • 在使用VIP时,如果遇到了技术问题,是否能够检阅丰富的文档以及得到及时地技术支持;

VIP提供商?

目前最大的两家VIP提供商就是Cadence和Synopsys。除了这两家,还有:

  • mentor
  • Avery Design Systems
  • elnfochips
  • HDL Design House
  • SmartDV Technologies
  • TVS
  • Truechip Solutions
  • Arasan

VIP的开发

概述

  • 经常复用的总线协议或者功能模块,可以针对其开发专用的VIP;
  • 对于总线VIP,需要master agent和slave agent,有时也需要environment去构建多个主端对从端的验证环境;
  • VIP也需要对应的配置对象,即 configuration object,同时也需要对应的接口。

VIP开发阶段

阶段一(定义)
  • 功能特性提取
  • 特性覆盖率创建及映射
  • VIP的架构
阶段二(VIP基本搭建)
  • driver、sequencer、monitor(少量特性实现)
  • 实现基本的端到端的sequence
阶段三(完成monitor和scoreboard)
  • 完成monitor——100%实现(checkers,assertions);
  • 完成scoreboard——100实现(数据完整性检查);
  • 在monitor中,完成监测到的transaction与function coverage实现映射;
  • 为映射更多的基本功能覆盖率,创建其他的sequence。
阶段四(扩充Test与sequence)
  • 实现更多sequence,从而获得80%的功能覆盖率;
阶段五(完成标准)
  • sequence最终可以实现100%的功能覆盖率;
  • 回归测试结构和最终的总结报告。

如何用商用VIP辅助开发VIP?

可以用成熟的商业VIP辅助开发。如下,如何用商用VIP辅助开发自研VIP,并验证自己的Master 和Slave。

Step1:商业的VIP具有一个环境env_b,包含一个功能完成的Master agent和Slave agent,以及完成的Test测试序列;同时,自己开发的Master agent和Slave agent也整合到一个环境env_s中;将两个环境之间建立连接,且共用同一个Test。

Step2:当需要验自己env_s中的Master agent时,先将商用的env_b中的Master agent配置成PASSIVE模式,此时这个Master agent就只例化monitor,具有监测的功能,此时它仍然可以monitor总线数据,也可以收集总线上的覆盖率。同时将自己的unv_s中的Slave agent配置为PASSIVE模式。用商用的环境中的Slave agent来验我们自己的Master ,要对测试Test稍作改动后复用到我们自研的VIP环境中。

整理一下。也就是说,在我们验自己的Master agent时,我们复用了商用的完整的测试序列、Slave agent和Master agent的monitor以及它收集的覆盖率(为了节约成本,可以直接复用商用VIP的功能覆盖率收集)。
在这里插入图片描述

Step3:在验自己的Slave agent 时,同验master类似。将自己VIP的Master和商用VIP的Slave配置成PASSIVE

Step4:最后测试自己的Master agent和Slave agent时,将商用VIP中的Master agent和Slave agent全被配置成PASSIVE模式

  • 16
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
基于UVM(通用验证方法)的APB(高级外设总线)VIP验证 IP开发流程主要包括以下步骤: 1.需求分析:对APB VIP的功能需求进行分析和定义,包括支持的APB协议版本、功能覆盖范围等。 2.设计架构:根据需求分析,设计APB VIP的架构,包括功能模块划分、信号接口定义、状态机设计等。 3.编写源码:根据设计架构,使用SystemVerilog等验证语言编写APB VIP的源码,包括各个功能模块的实现和通信接口的定义。 4.验证环境搭建:使用UVM框架搭建APB VIP验证环境,包括搭建验证顶层模块、连接APB VIP和被测设计的接口、配置UVM环境等。 5.功能验证:利用验证环境完成APB VIP的功能验证,包括通过测试用例对APB VIP的各个功能进行验证验证结果的检查。 6.性能优化:在功能验证的基础上,对APB VIP的性能进行优化,包括检查负载容量、优化时序和增加并行度等。 7.集成验证:将APB VIP与其他验证组件进行集成验证,包括与其他IP、测试平台、仿真测试工具的联合验证等。 8.仿真调试:使用仿真工具对APB VIP进行调试,包括波形分析、断点调试等,以确保其功能正确性和稳定性。 9.文档撰写:编写APB VIP的技术文档和用户指南,包括源码说明、验证环境介绍、验证方法等,便于其他工程师使用和理解。 10.发布和维护:经过验证和测试,发布APB VIP验证工具库中,同时进行维护和更新,以适应新的需求和协议版本的变更。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小verifier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值