VMM与OVM_vvm是什么意思

VMM与OVM_vvm是什么意思验证方法学主要有vmm和ovm两种。摘录一些言论,供参考:    个人感觉Synopsys的口碑好一些,Cadence的FAE比较能忽悠,但有时候不是很能解决问题。偶绝对不是Synopsys的托了;synopsys的VMM更成熟;前端设计还是喜欢synopsys多一点;VMM的用户可能多一些,特别在国内(个人感受),不过Synopsys的东西,质量上不如C

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
验证方法学主要有vmm和ovm两种。


摘录一些言论,供参考:


     个人感觉Synopsys 的口碑好一些,Cadence 的FAE 比较能忽悠,但有时候不是很能解决问题。偶绝对不是Synopsys 的托了;




synopsys的VMM更成熟;




前端设计还是喜欢synopsys多一点;




VMM的用户可能多一些,特别在国内(个人感受),不过Synopsys的东西,质量上不如Cadence,技术支持上也许更贴近用户一些;




本质都差不多,看你怎么用.但OVM是Cadence和Mentor都support的.这个比较好. 从适用性来说,还是OVM强.从功能上来说,由于OVM兼具e language的一些特性,比如factory/sequence,这个比VMM要好.至于FAE的支持,这个是利益驱动的.如果你们公司是global的,软件也是在国外买的,那国内的EDA公司来support你,对于local的EDA公司,他没有如何利益,当然support就一般了.




自学自用,推荐OVM,因为论坛的支持好,VMM没有正版,基本上没有什么支持。




我已经在我得项目里面从类VMM转为
OVM
了,从验证分层来看.两种方法学本质差不多,在
OVM
里面,我觉得最爽的地方是sequence/sequencer/virtual sequencer,这几个东西是VMM没有的




只是两个死对头synopsys和cadence分别搞的两套系统验证库而已,差别不大






VMM:


1 架构简单,容易学习及掌握


2 验证实现也比较容易,容易使用


3 工具非常稳定,出现问题的概率不大


OVM



1 架构灵活,显得有点复杂(比较建议从VMM入手,对
OVM
的理解会更加快速)


2 验证实现也比较容易,使用者需要掌握一定的
OVM
知识才能做相应小修改,这一点VMM不一样,VMM的使用都只要知道constraint怎么下就好


3 IRUN工具不是很稳定,出现问题的概率较大,我使用过程中发现不少问题,不过最后都直接反应给cadence AE,得到解决(现在已经稳定很多)


4 
OVM
 以agent为基础的建立方式,方便实现reuse性,这一点VMM做不到(VMM只要DUT小改driver和packet必改),
OVM
 agent是基于某种protocol建立的,protocol不改,agent就不需要修改,这样就可以达到非常强大的reuse性


5 VMM 没有sequence(正在开发),
OVM
 的virtual sequence可以造出各agent工作的任意组合,并行,串行,等等,不修改任何原来的code,只需要加一个virtual sequence即可。VMM做不到,VMM想做这个只能改driver和packet


只说了一些技术上的东西,还有VMM是要钱的,
OVM
是免费的!










VMM和OVM都是基于SV的硬件验证的方法学,也是当今验证方法的两个趋势。

从本质上来讲,VMM和OVM的方法学是一致的,目的都是实现可重用性(reusable)以提高验证的效率。

VMM是由ARM和Synopsys提出的,OVM则是由Mentor和Candence共同提出的。因此使用Synopsys VCS进行仿真也就选择了VMM的验证方法,支持OVM的仿真工具自然就是Mentor和Candence的工具了。

使用OVM最大的好处就是完全open的,使用OVM将不受Mentor和Candence的任何限制;至于VMM,之前是收费的,现在网上有人说是免费的(

VMM 顶不住压力,也开源了,嘎嘎
),但是我还没有找到官方的说明,不清楚现在的状况,知情的人麻烦透漏一下。



VMM和OVM都是基于SystemVerilog(SV)的验证方法,而SV相对于传统的HDL语言来说,其最大的好处就是引入了OOP(Object Oriented Programming),OOP的概念基本上是可以跟{封装(Encapsulation)+继承(Inheritance)+多态(Polymorphism)}相等同的,至于封装、继承和多态,如果学过C++的人自然会明白。引入了OOP之后,SV便可以在更高的抽象层次进行仿真和验证。

由于引入了OOP,基于SV的验证方法学也就自然而然的出来了,就像是如今有很多的C++库一样,SV也需要相应的库才能够实现其面向对象的高效性,开发人员只需要在SV的标准库上进行开发就可以了,这样就避免了重复的二次开发,提高了验证的效率和灵活性。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192836.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • wiringpi中文手册_abc成本计算法

    wiringpi中文手册_abc成本计算法从ABC+IOT到ABC anywhere,百度边缘计算的进击之路

    2022年4月20日
    52
  • matlab激光雷达三角测距,三角测距激光雷达原理[通俗易懂]

    matlab激光雷达三角测距,三角测距激光雷达原理[通俗易懂]激光雷达近几年越来越普及了,复杂的比如应用在无人驾驶汽车上,简单的比如用在扫地机上去。随着无人驾驶和服务机器人行业的发展,后续激光雷达的应用会更广泛。激光雷达之所以流行,主要是因为它能够精准的测距,那么它是如何实现这样的测距功能的呢?主流的激光雷达主要是基于两种原理的,一种是三角测距法,一种是飞行时间(TOF)法。听名字可不要觉得很复杂,其实只需要高中知识,任何人都能看懂它的测距原理!今天咱们就先…

    2022年6月2日
    42
  • 【20211009】【数学基础】极值点、驻点、拐点的区别和联系

    【20211009】【数学基础】极值点、驻点、拐点的区别和联系一 极值点 1 定义极大值和极小值统称为极值点 极值点是函数的某段子区间内极大值或者极小值的横坐标 极值点出现在函数的驻点 导数为 0 或不可导点处 导函数不存在 参考 极值点 驻点 拐点的区别 2 判别方法 1 若 f x0 处可导第一判别法 若 f x0 处的一阶导数 且 x0 左边的区间内导数 gt 0 x0 右边的区间内导数 lt 0 那么 x0 为极大值 第

    2025年10月8日
    3
  • Windows Server 2012 DHCP 高可用性

    Windows Server 2012 DHCP 高可用性

    2022年3月12日
    103
  • STM32CubeMX实战教程(七)——TFT_LCD液晶显示(附驱动代码)

    STM32CubeMX实战教程(七)——TFT_LCD液晶显示(附驱动代码)液晶显示前言材料TFT_LCD前言想来想去,也不知道更新什么内容比较好了,犹豫了好久还是先跟大家讲讲液晶显示的配置吧,毕竟我觉得这个在很多项目中都非常实用,我个人是比较喜欢用一块TFT液晶来做显示终端的,大大的屏幕显示什么都方便,接到产品上面也显得特别高端,当然在考虑成本的情况下OLED和12864这些也是不错的选择。材料STM32F4正点原子探索者开发板原理图TFT_LCD(我这里用的是4.3寸的液晶,芯片为ILI9341,但理论上本驱动程序支持的芯片包括ILI9341/ILI9325/RM

    2022年5月10日
    66
  • 商品搜索——输入联想|智能提示探索

    商品搜索——输入联想|智能提示探索

    2020年11月12日
    235

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号