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

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现

Mysql BLOB类型介绍

BLOB类型的字段用于存储二进制数据 在MySQL中,BLOB类型,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储的大小不同。 TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx:

多路转接之select(fd_set介绍,参数详细介绍),实现非阻塞式网络通信

目录 多路转接之select 引入 介绍 fd_set 函数原型 nfds readfds / writefds / exceptfds readfds  总结  fd_set操作接口  timeout timevalue 结构体 传入值 返回值 代码 注意点 -- 调用函数 select的参数填充  获取新连接 注意点 -- 通信时的调用函数 添加新fd到