使用到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模式

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐