验证方法学的历史及比较
2000年, Verisity Design(现在的Cadence Design System公司)引进了Verification Advisor(vAdvisor)采用了e语言,包含了激励的产生,自动比对的策略,覆盖率模型。e语言是面向对象语言,这是业界开始使用面向对象语言进行测试平台的建立。
2002年,Verisity公司公布了第一个验证库——e可重用方法学(eRM)。
2003年,Synopsys公司公布了可重用验证方法学库(RVM),这个方法学采用了Synopsys公司的vera语言。
2006年,Mentor公司公布了高级验证方法学(AVM)。这个方法学主要是采用了OSCI SystemC的事务抽象层方法学(TLM)标准,它是用SystemVerilog和SystemC两种语言实现的。
2006年,Synopsys公司推出了验证方法学手册(VMM),这个是RVM从vera语言过度到SystemVerilog的方法学。
2007年,Cadence公司推出了通用可重用验证方法学(URM),主要是从eRM从E语言过度到SystemVerilog的方法学,同时加入了TLM接口,工厂模式替换,配置机制,策励类等。
2008年,Cadence公司和Mentor公司共同推出了OVM
2010年,ACCELLERA采用了OVM作为基础,推出了UVM验证方法学。同时引入了VMM的callbacks一些概念。作为业界方法学统一的一个雏形。
2010年,Synopsys公司推出了VMM1.2,基本上沿用了OVM的TLM通信机制,并采用了TLM2.0(OSCI最新的标准),采用OVM提出的implicit phase,并且将验证流程继续细化,工厂模式替换机制,建立类层次(建立parent关系)。并且在此基础上,提出了vmm_timeline的概念,方便各个phase之间实现跳转,增加phase或删除phase。增加了rtl_config等概念。Synopsys公司也随即宣布最新版本的VCS同时支持UVM。
从现在的角度看待UVM和VMM1.2。无论最终是哪个胜出,可以看出现在业界验证方法学的趋势:
1、系统建模,业界主流标准是采用ESL模型,用SystemC语言,可以做性能评估。采用TLM标准接口,可以将SystemC模型无缝对接到验证平台中,做参考模型。
2、对每个验证组件建立parent关系,使得控制更加方便,利于自动顶层环境自动调用各个组件的phase。建立这种parent关系,还有利于工厂模式替换组件中的配置或事务。
3、为某种功能的不同组件建立子环境(UVM采用agent的方式,VMM1.2采用sub_env的方式),子环境的各个组件可以配置打开或关闭。
4、采用工厂模式替换,可以在编译阶段,将环境中的配置、事务、场景等。
5、提供API,可以在运行阶段修改环境中的参数(UVM在基类提供,VMM1.2通过vmm_opts提供)。
6、环境中的各种事务处理器组件,采用callbacks的方式,注入错误或收集覆盖率。
7、提供寄存器抽象层,通过脚本的方式,自动的生成寄存器扫描读写等验证组件。(VMM提供了RAL,UVM声称以后会提供相应的机制)。
8、环境的流程可以控制,比如增加或删除验证流程中的phase,控制各个phase之间的跳转(VMM提供了vmm_timeline,UVM声称以后会提供相应的机制)
上面所提的业界验证方法学趋势,1~5是Cadence和Mentor公司在OVM提出的。而6~7是Synopsys公司在VMM1.1中提出的,而8是VMM1.2增加的特性。VMM1.2继承了OVM的优点之后,已经具备了上述所有功能,而UVM在The future of UVM提出了会增加类似ral和vmm_timeline的功能。
现在的角度比较UVM和VMM1.2,其优缺点主要体现在以下几个方面:
1、UVM是accellra组织推出的以后验证方法学统一的标准,主要框架采用了ovm的框架,现在还没出正式版本。继承了OVM的优点,VMM的优点继承还不够。而VMM1.2在继承了ovm的优点之后,并且做了改进和加强,其功能暂时会优于UVM。
2、由于UVM是推出的验证方法学的新的标准,所以,不用考虑兼容问题,架构会比较清晰。源代码可读性会比较强,而VMM1.2既要考虑到与VMM1.1兼容,又要考虑新的特性,而VMM1.1和VMM1.2甚至看起来是两个完全不一样的流程,所以显得架构凌乱,代码可读性差。
3、UVM方法学更多的提出了验证平台如何配置,配置类应该怎么规划,如何在系统验证中可重用具体方法和思路。VMM方法学更多的提出了模块验证中层次的划分,验证流程中各个阶段应该干什么事情,错误的注入等等。这些方法和思路,在UVM的库和VMM的库都可以比较方便的使用。都搭建验证平台具有很好的指导意义。
验证方法学的历史及比较相关推荐
- 通用验证方法学(Universal Verification Methodology, UVM):简介及内容导航
目录 1. 介绍 1.1. 数字集成电路(Integrated Circuit, IC)设计 1.2. 数字集成电路(Integrated Circuit, IC)验证 2. 一个简易UVM验证平台例 ...
- 入门UVM验证方法学
文章目录 1.验证概述: 2.如何实现验证 3.验证方法学 4.简单的UVM平台 5.较为完整的UVM平台 6.一个实例 7. UVM树 8.phase机制 9.验证步骤([参考](https://b ...
- 验证方法学的发展历程及比较
2000年, Verisity Design(现在的Cadence Design System公司)引进了Verification Advisor(vAdvisor)采用了e语言,包含了激励的产生,自 ...
- UVM验证方法学之一验证平台
UVM验证方法学之一验证平台 在现代IC设计流程中,当设计人员根据设计规格说明书完成RTL代码之后,验证人员开始验证这些代码(通常称其为DUT,Design Under Test).验证工作主要保证从 ...
- 【数字IC验证快速入门】45、UVM项目实践之APB_SPI(13)UVM 验证方法学总结
导读:作者有幸在中国电子信息领域的排头兵院校"电子科技大学"攻读研究生期间,接触到前沿的数字IC验证知识,旁听到诸如华为海思.清华紫光.联发科技等业界顶尖集成电路相关企业面授课程, ...
- 验证方法学覆盖率(一):代码覆盖率
前言:随着验证方法学的发展,覆盖率作为一种判断验证充分性的手段已成为验证工作的主导.绝大多数验证工程师会将覆盖率分为两大类:代码覆盖率和功能覆盖率.本文主要介绍有关代码覆盖率的概念. 代码覆盖率 代码 ...
- UVM 验证方法学之interface学习系列文章
本系列文章,针对 interface 做了较全面的剖析,并结合实际工作中遇到的一些问题,以简单的例子形式,展示给读者,方便读者自行下载和修改,加深对interface的理解.文章中的例子,几乎涵盖了i ...
- VMM验证方法学学习随笔
1,计分板(scoreboard) 记分板用来动态预测设计的响应,施加给DUT的激励同时施加给记分板,记分板中的转换函数把输入的激励全部转换成最后响应的形式,并保存在数据结构中,以传递给检查器,记分板 ...
- 精彩回顾|硬件敏捷开发与验证方法学研讨
8月27日,作为2022年第二届RISC-V中国峰会的同期活动,达坦科技成功举办硬件敏捷开发与验证方法学研讨.虽然是线上分享活动,但大家热情依旧,会后在"硬件敏捷开发和验证方法学讨论群&qu ...
最新文章
- 输入字符串,统计英文字符、大写小写字母,数字字符,空格和其他字符
- java如何按照标签替换_Maven(五):resources、profiles标签的实践
- Ubuntu终端命令行不显示颜色
- 微软(MS Dynamics SL)Solomon 承包商用户2006年度会议!
- 面试39 MySQL读写分离
- 读书笔记 --- 再次阅读回流与重绘
- JAVA基础学习之路(十一)引用传递
- 为PHP7安装Windows Server 2012 R2过程记录
- 政府公务办公安全保密邮件系统建设
- html语言代码游戏,常用html语言代码
- poj - 2488 A Knight's Journey
- MapReduce之InputFormat理解
- 马云获评《外交政策》全球十大思想者 影响全球经济变革
- 初始化和清理(垃圾回收器)
- 锐捷 重启计算机,提示“重启计算机后才能使用锐捷客户端”常用解决方法
- WPF中如何在文本外面加虚线外框
- wap页面在微信内置浏览器浏览遇到的问题
- 数学建模:线性规划—投资的收益和风险模型 (Python 求解)
- 储存profiles是什么意思_程序开发里面的profile 是什么意思
- JavaScript arguments详解