文章目录
使用到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模式。