UVM:验证IP(Verification Intellectual Property, VIP) 您所在的位置:网站首页 vip是啥格式 UVM:验证IP(Verification Intellectual Property, VIP)

UVM:验证IP(Verification Intellectual Property, VIP)

2024-07-16 19:27| 来源: 网络整理| 查看: 265

目录

1. 什么是VIP

1.1. 应用场景

1.2. 供应商

2. VIP的特点和优势

3. 如何使用VIP

3.1. 选择

3.2. 集成

3.3. 跨平台混合仿真

4. VIP的开发和发布

4.1. 开发

4.2. 发布

原文链接:https://blog.csdn.net/Starry__/article/details/123612458

验证环境并不是全部由verifier编写的,可以用到很多已经编写好的,复用程度高的验证模板,例如某些agent,而这些模板就是VIP。

1. 什么是VIP

VIP可用于植入用户的验证环境中,用于协议标准和接口的连接和检查。

这些VIP除了根据协议等的驱动driver和sequence外,还包括相应的覆盖率模型、dut软件模型、说明文档等。

例如高级外围总线(Advanced Peripheral Bus, APB)是唯一主多从的设备总线标准。如果在项目中涉及到了APB接口,就可以使用APB的VIP。 APB的VIP以apb_master_agent和apb_slave_agent为核心,包括apb_interface、apb_master_sequencer和apb_slave_sequencer等多个轮子 根据agent是master还是slave在VIP选择agent框架,开发者只需在VIP中填写相应的项目相关的功能代码,然后再集成到自己的验证环境中

大型项目中,涉及到众多协议和标准,所以会涉及到很多VIP,还涉及C++等跨平台联合仿真。

当然,VIP一般价格昂贵,但一般比设计IP便宜。

1.1. 应用场景

● 验证设计IP

就是IC设计者会通过购买稳定VIP来对自己的设计进行验证。

当然也可以自己开发VIP

● 集成设计IP

设计IP的参数众多,不同的参数配置会产生不同的性能、不同的功能。

所以需要集成人员,将多个设计IP进行连接、配置、调度,那么对应的VIP也要进行继承

个人理解,这就非常类似于,一个是纯做设计IP的,一个是使用设计出来的IP的。

● 子系统、SoC系统开发者

设计的IP向上层集成时,也涉及到VIP的使用和集成,例如使用什么样的sequence进行定向测试

1.2. 供应商

最典型的三大EDA公司,Cadence、Synopsys、MentorGraphics(已被SIEMENS收购)

2. VIP的特点和优势

● 不断更新的标准

什么PCIe、DDR、USB、AMBA等各种协议呀,经常不断更新。

为了使硬件之间能够相互兼容,设计IP就要不断修正、完善使自己的IP兼容新的标准,相应地验证IP也要不断迭代更新。

而有了VIP之后,集成人员和验证人员就不需要花费力气去兼容协议,而将重点放在功能上去即可。

● 虚拟dut

就是说,如果用硬件模型仿真,可能会耗时巨大。VIP提供的一些用SystemC、Systemverilog等软件模拟的硬件,可加快仿真速度

● 自己开发VIP

可通过购买VIP,来促进各厂家自己开发VIP。

3. 如何使用VIP 3.1. 选择

在选择VIP时,需要考虑一下几个因素

● 仿真器(VCS、questasim等等)与VIP是否兼容

● 设计IP的协议,与VIP的可用协议是否兼容

● VIP的市场评价、上手难度和售后

3.2. 集成 模块级别

module级别的验证其实就是之前一直讲的验证框架,只不过将验证框架的内容替换成VIP

如下图所示,浅绿色的部分就是VIP的内容

子系统级别

对于多个module集成之后的子系统而言,可将VIP嵌入系统中,替换子系统中的某些控制module或响应module,进行含有driver、sequencer的UVM_ACTIVE测试。

如果驱动测试没问题,就可以接上真正的硬件模块了,然后将VIP中相应的agent设定为UVM_PASSIVE,只保留monitor监测就好。

如下图所示子系统,对于下面的摇杆还是右下角的屏幕,都可设定相应的Slave_agent看看响应如何。可以看到模块众多,因此需要设定很多很多的VIP

SoC级别

等到了系统级别,集成程度更高,就会涉及到系统级别的VIP,如下图有DDR VIP、PCIe VIP等等,模拟数据传输。

 从图中也可以看到,系统中某些Process、Memory等硬件,并不是真的硬件而是VIP提供的。

这是一种虚拟的处理器,可通过SystemC、SystemVerilog实现这样的核,这是为了加快仿真速度。

需要说明的是,UVM在模块级验证优势明显,但对于子系统级、芯片级UVM则还真不如C用的多,这些VIP越来越多的出现用C写的测试平台和用例

所以就提出了便携式激励标准(Portable Stimulus Standard,PSS)进行了统一。

3.3. 跨平台混合仿真

一般仿真都在仿真器上面搞是吧,但如果在大型或超大型的SoC系统仿真时,就容易耗时很长,可能一天也就调一次,其他时间全在跑仿真。

怎么办?于是就提出了,验证平台和测试用例在仿真器、emulator和FPGA等平台之间跨接的技术。

但是这样的技术有个问题就是,仿真器与硬件FPGA、emulator之间的通信问题,接口是商业且未开源,还需进一步探索。

4. VIP的开发和发布

对于经常需要实现的总线和功能模块,可以开发相应的验证VIP

例如APB、AHB等总线标准,其实就是master和slave之间的时序交互,所以一般包含driver、monitor、sequencer、sequence、agent,还会有config

有时甚至还会搞个env

看图

4.1. 开发

过程如下

● 功能特性提取,覆盖率特性及映射

即明确该VIP是什么样的功能、时序,并创建相应的覆盖率,并映射到变量

● VIP架构,driver、sequencer、monitor等基本组件的实现,可实现基本的数据传输

trans的产生、发送、检测、配置等基本功能的实现

● 在scoreboard实现数据比对功能,在monitor和interface实现assertion、function coverage的收集

然后才是refmod、scoreboard的数据正确性比对,一般在monitor和interface进行断言、覆盖率检查

● 创建更多的sequence以不断提高功能覆盖率,直到100%

●回归测试和总结报告

4.2. 发布

发布内容包括

● 源代码

可选择加密,只保留接口task和function

● 特性列表和覆盖率列表

要与标准协议文档的特性相对应

● 文档

包括VIP结构、设计、用户指南、安装和覆盖率报告

●运行环境

回归仿真等步骤  



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有