IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> UVM:验证IP(Verification Intellectual Property VIP) -> 正文阅读

[网络协议]UVM:验证IP(Verification Intellectual Property VIP)

验证环境并不是全部由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收购)

解读:Mentor被西门子收购,EDA这个市场究竟怎么样了?

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结构、设计、用户指南、安装和覆盖率报告

运行环境

回归仿真等步骤

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:58:43  更:2022-03-22 21:00:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:55:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码