码迷,mamicode.com
首页 > 其他好文 > 详细

(转载)验证方法学的历史及比较

时间:2015-11-23 00:45:48      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

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的库都可以比较方便的使用。都搭建验证平台具有很好的指导意义。

 

++++++++++++++++++++++++++++++++++++++++++

注:UVM目前最新的版本是2014年6月发布的UVM1.2版本

++++++++++++++++++++++++++++++++++++++++++

(转载)验证方法学的历史及比较

标签:

原文地址:http://www.cnblogs.com/dpc525/p/4987089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!