UVM:验证IP(Verification Intellectual Property, VIP) | 您所在的位置:网站首页 › vip是啥格式 › UVM:验证IP(Verification Intellectual Property, VIP) |
目录 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. 什么是VIPVIP可用于植入用户的验证环境中,用于协议标准和接口的连接和检查。 这些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 等到了系统级别,集成程度更高,就会涉及到系统级别的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 看图 过程如下 ● 功能特性提取,覆盖率特性及映射 即明确该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 实验室设备网 版权所有 |