UVM: 1_UVM历史等介绍

2024-04-10 17:58
文章标签 介绍 历史 uvm

本文主要是介绍UVM: 1_UVM历史等介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1验证语言

1.1. Verilog

1)起源于20世纪80年代中期,1995年成为IEEE standard,即 IEEE Standard 1364 — 1995.

2)后续版本2001年推出。

3)最新标准2005年推出,即 IEEE Standard 1364 — 2005.


1.2Systemverilog

1)起源于2002年。

2)2004年发行。基于Accellera 的 Systemverilog 3.1a,Systemverilog 3.1a 是 Verilog扩展集。(所以3.1a 那个文档早已过时了)

3)2005年成为IEEE standard,即 IEEE Standard 1800 — 2005.

4)最新版是IEEE Standard 1364 — 2012.


1.3小结

1)systemverilog 包含了verilog的=所有feather,我觉得verilog可以不要了。

2)1800 — 2005这个文档我看到200多页,发现了赤裸裸的几个错误。有些是 typo,无伤大雅;但有些真的是描述性错误,如果不明确指出,很多人是比较难看出来的。为什么我这么自信那些是描述性错误呢?因为我有那部分 writer 在网络上的说明。大概意思就是,这个文档写的人比较多,版本管理有些乱,有些他改完了,需要给最终的负责人updata,但是最后汇总用的还是旧的,到时候开帖子再具体说是哪些吧!!


2 验证方法

2.1VMM

2006年,Synopsys推出。


2.2OVM

2008年,Candence 和 Mentor 推出。


2.3UVM

2011年2月,Accellera推出,上面三家都支持。


2.4小结

大家都用UVM,VMM 和 OVM 就彻底byebye啦。


3. 学习资源

3.1 systemverilog文档 或 书

1)IEEE Standard 1364 — 2012.

官方文档,重要性不用多说。好多人认为这个文档太厚,只是作为查阅使用。但是我觉得很系统的扫一遍还是有好处的,也许我也忘记很多或者理解的不深入,但是我有印象它曾经讲过什么,而且看一遍真的有好处,有些事情一直以为理所当然的,其实是有原因的,这种感觉看到过程中,不断冲击我。


2)Systemverilog for verification(第三版)

重点在systemverilog的各种讲语法现象,2012那个文档的example实在少得可怜,如果看不懂可以看看这个里面加深理解。


3)我用的是VCS,它的安装目录doc下有好多例子,有些例子很好,有些例子从篇幅上比较浪费,不过还是很好的参考。


4)网络上其他的例子,经常Google啊!


3.2 UVM文档 或 书


只介绍我真正看过的,顺序基本上是按照入手由易到难。


1)《UVM实战》

张强同志的《UVM实战》,绝对是入门利器啊。这名作者的贡献真是大,让我这种小白有章可循,虽然我没见过他,不过能写出这么好的书,一定很帅。这本说我半年前用了一个月看完,所有代码都跑过,终于知道自已 “会了什么” 和  “有什么不会”。现在再看第二遍,因为看第一遍的时候知道 “有什么不会”,这半年有了些深入的理解,现在可利用的资料又很多,所以要看第二遍。写了这些贴也是提醒下自己,加深印象。嗯,我的blog正在复活!!


2)《The_UVM_Primer》

作者是Salemi Ray,好像是Mentor的人。这本书很薄,与其说是书,倒不如说是一本十几个实验的指导书,也是step by step方式。这是我当初找到的第一本还不错的书。但是从头看到尾,我觉得有一个最大的缺点就是,作者大部分时候都只说 “要这么做”,但是很少讲 “ 为什么这么做”,对比的一些深入讨论也没有(也许是这本书薄的原因吧)。但是还是很不错的,这本说有一点是《UVM实战》没有覆盖到的,就是coverage的部分。当然,这部分也简单,网上的例子一抓一大把。这本书我是用的电子版,copyright的问题我肯定不会share啦。不要说我小气!!!因为勤奋的人知道这个书名和作者,也一定有办法弄到手(taobao);而懒惰的人,即使白给他,他也不会看,只不过是想当资料的收藏家,寻找心理安慰罢了。


3)a practical guide to adopting the universal verfication methodology,

这本说我只是扫过一些章节,如果上两本看完,你会觉得这个只是补充和巩固。


4)Systemverilog Assertions and Functional Coverage

前半部分将assertion,后半部分讲coverage。我对assertion一直没什么感觉,但是后面的coverage的思考帮助真的很大,什么样的cover是真正有意义的。看这本书的前提是systemverilog的基础一定要非常扎实,而其要有比较多的实践经验。这两者缺一不可,要不然怎么和作者产生共鸣呢?


5)uvm-cookbook-complete-verification

Mentor 的文档,600页,这应该算是很官方的文档了。介绍了一个完整的UVM的各个部分,最后给了一个step by step 的例子。不要觉得这是 Mentor 出的,就只符合Mentor的产品,当看到其他家结构时,比如VIP的环境,这些结构时惊人的相似!如果看完上面的文档,再看这个,就会觉得里面大篇幅的废话,因为你会了嘛!

Mentor的网站上还有很多其他的文档,你们自己去看吧:https://verificationacademy.com


6)UVM_Class_Reference_Manual_1.2 (最新的是1.2)

根正苗红的官方文档,最最最最牛逼的文档,也是最最最最傻X的文档。牛逼在于介绍了所有的 phase 和 所有components,object的关系,function等等等。傻X在于就像是lib库的感觉,实在tedious。不过还是应该前6章或7章(也就100页左右)。前5章会帮助你建立完整的框架结构,看6,7章并不是因为这2章有什么特殊,而是熟悉这个文档的写作方式,方便以后快速检索,查阅。如果有了上面的实践经验,再看这些文档,感触更深,更有帮助,会有一种忍不住在跑一遍所有的case,点击到lib文件挨个看一遍,对照一下,看看人家到底是怎么实现的,而不是只会傻傻的用。


7)uvm_users_guide

和上一个文档配套的,主要讲一些可操作性的内容。最有价值的应该是最后ubus的例子讲解,因为 uvm-1.2 源文件自带的这个例子是没有任何讲解的,原来在这里呀!


8)各大公司出的类似 “白皮书” 的文档和别人写的小论文,主要讲一些UVM中经常使用的一些语言,比如Google一下config_db之类的就有好多。


3.3 UVM相关网站

这部分真的不重要,大家不要沉迷于这些网站,只所以有这些是因为Google的时候最后总是到这几个网站。是通过问题-->现象,而不是现象-->问题、专门去找这些网站的。

1)http://www.testbench.in    很全面的网站,systemverilog,UVM,相关的知识都有涉及。

2)www.doulos.com 和上面的差不多,不过看起来更专业。最牛X的是 http://www.edaplayground.com/  也是他家的,大家一定要点进去看看,

3)UVM的官网(accellare),Mentor的官网。

4)http://stackoverflow.com/ 


4.总结

上面的资料不是最重要的 ,重要的使我们要善于思考,勤于实践,认真总结。用电影《心花路放》的话说就是“走点儿心”。革命先烈陈云也说过“不唯上、不唯书、只唯实,交换、比较反复”,如果我们不以这样的标准严格要求自己,又怎么能标榜自己是社会主义国家的和谐公民呢?怎么在这“新常态”的新时代实现中国梦呢?大道理就那么几条,又有几人能做到呢。每个行业都有出类拔萃的顶尖人才,凭什么不能是我们呢?嗯,一定使我们!



这篇关于UVM: 1_UVM历史等介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/891754

相关文章

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强

JSR-107缓存规范介绍

《JSR-107缓存规范介绍》JSR是JavaSpecificationRequests的缩写,意思是Java规范提案,下面给大家介绍JSR-107缓存规范的相关知识,感兴趣的朋友一起看看吧... 目录1.什么是jsR-1072.应用调用缓存图示3.JSR-107规范使用4.Spring 缓存机制缓存是每一

Java中 instanceof 的用法详细介绍

《Java中instanceof的用法详细介绍》在Java中,instanceof是一个二元运算符(类型比较操作符),用于检查一个对象是否是某个特定类、接口的实例,或者是否是其子类的实例,这篇文章... 目录引言基本语法基本作用1. 检查对象是否是指定类的实例2. 检查对象是否是子类的实例3. 检查对象是否

Python实现剪贴板历史管理器

《Python实现剪贴板历史管理器》在日常工作和编程中,剪贴板是我们使用最频繁的功能之一,本文将介绍如何使用Python和PyQt5开发一个功能强大的剪贴板历史管理器,感兴趣的可以了解下... 目录一、概述:为什么需要剪贴板历史管理二、功能特性全解析2.1 核心功能2.2 增强功能三、效果展示3.1 主界面

什么是ReFS 文件系统? ntfs和refs的优缺点区别介绍

《什么是ReFS文件系统?ntfs和refs的优缺点区别介绍》最近有用户在Win11Insider的安装界面中发现,可以使用ReFS来格式化硬盘,这是不是意味着,ReFS有望在未来成为W... 数十年以来,Windows 系统一直将 NTFS 作为「内置硬盘」的默认文件系统。不过近些年来,微软还在研发一款名