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

VIP 概述

当今的ASIC 和 SOC 芯片,普遍包含非常复杂的工业标准接口同外部设备相连接,比如 USB, PCIe 等,或者标准总线 AHB, AXI etc等。 在验证设计过程中,这些接口被用于和测试testbench 相连接。这些沟通桥梁,被称为 Verification IP (VIP) 的模块实现。

Verification IP (VIP) 是一种特殊的IP Core。它将一个接口的BFM 和 Test Harness features 结合在一起。

VIPs 有多重功能和用途,主要分为下面三类:

  • Transactors are modules that establish communication channel between software part of testbench (HDL Simulator, Virtual Platform, etc.) and the design. Transactor’s communication channel is implemented with use of high level messages that are translated by the BFM into correct standard interface protocol signaling. The testbench can inject bus transfers or respond to transfer requests using transactor. Comprehensive VIP should be configurable and also provide errors injection and handling functionality.

  • Monitors are conceptually similar to Transactors and they are used in soft-testbench but have only a monitoring/read-only capability. Their BFM can capture and recognize a standard interface signaling protocol and translate it to higher level messages that can be collected and send to the testbench for analysis or debugging purposes.

  • Speed Adapters are used to connect design running in emulator with external hardware i.e. real devices. Their primary functionality is to synchronize emulation clock domain with real devices that usually have higher clock rates. Complex interfaces usually require proper synchronization in the protocol layer.

其实,为USB或PCIe等复杂接口开发VIP并不是一项简单的任务,因此为了节省计划时间和降低项目风险,通常决定重用第三方VIP,而不是开发自己的VIP。因此,可靠和经过验证的VIP的可用性是成功设计验证和流片的关键。

Aldec在各种验证技术方面的专业知识,包括仿真、仿真、原型设计和承诺解决实际客户的问题,从而为行业标准接口(如USB、PCIe、AXI、AHB、OCB、Gb以太网等)开发了许多vip客户。Aldec的vip可以在所有三个类别中使用:事务处理器、监视器和速度适配器。它们在System Verilog或c++中提供接口,因此可以在任何类型的验证环境中使用,包括使用UVM测试台或基于SystemC的虚拟平台进行仿真。由于严格遵守Accellera的SCE-MI标准,Aldec的交易器和监视器可以用于模拟或仿真设计。

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

————————————————

版权声明:本文为CSDN博主「那么菜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_16423857/article/details/123659368

基于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验证工具库中,同时进行维护和更新,以适应新的需求和协议版本的变更。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值