(转)新手学习System Verilog & UVM指南
从刚接触System Verilog以及后来的VMM,OVM,UVM已经有很多年了,随着电子工业的逐步发展,国内对验证人才的需求也会急剧增加,这从各大招聘网站贴出的职位上也可以看出来,不少朋友可能想尽快掌握这些知识,自学是一个好办法,我结合自己的亲身经历和大家谈谈初学者如何能尽快入门,继而成为一名合格的IC验证师。
1.首先来谈谈仿真工具,无非就是Synopsys, Cacence Mentor三大公司的vcs, incisive, modelsim,其实还有些稍小一些公司象aldec公司的Riviera-PRO也不错,如果能接触到这些工具,再能有水平比较高的人提供一些指点就方便多了。如果手头没有工具,则要自己考虑在UNIX上安装合适的工具,这我就不多说了,大家都懂的,哈哈。如果你也不会或者不愿意安装工具那么可以去 EDA-playground看看,可以在线直接仿真出结果,如果你的网速比较快,这也不失为一个好注意。
2.现在市面上的参考资料比前几年多多了,不能简单地说是良莠不齐,至少要找到适合与自己当前情况的资料。不要东看看西瞅瞅,因为包含的内容太多了,当你搞懂这一块的时候另一块可能忽略了或者遗忘了,所以最好认真专注于一两本书籍,千万不要贪多,我推荐以下几本:
如果verilog基础不好,应该加紧学习,毕竟是System Verilog的基础,夏宇闻编写的Verilog数字系统设计教程是首选。首先accellera的Universal Verification Methodology User's Guide还是要读一读的,虽然写的不生动,毕竟只是一个说明书。有关system verilog的书籍市面上不多,Synopsys 的chris spear10年前所著的《SystemVerilog for Verification》现在看来依然不错,2009年出版的中文本我是读了好几遍的。前几年Cadence的kathleen A Meade写了一本《A Practical Guide to Adopting the Universal Verification Methodology(UVM)》,后来的第二版我很喜欢,里面配有大量实际验证中的例子,很有价值。这本身出版后反映不错,所以有了后来的另一本书 Advanced Verification Topics主要介绍混合信号,低功耗,以及多语言验证问题,有兴趣的朋友可以参考一下。三大公司中的Mentor Graphics也贡献了《VERIFICATION METHODOLOGY ONLINE COOKBOOK》。国内新出版的《UVM实战》也很有影响,不过它的第二部也就是源代码部分实用性不大,就此我曾经询问过UVM的community member中的高人,他们都不推荐去研读代码,因为其中有不少东西涉及到各公司以及各大用户中的很多苟且之事,很多说不定下一版本就会更改甚至取消,和我们使用UVM验证环境的工程师没有多大的关系。很多公司对设计工程师的assertion有要求,其实设计工程师自己写的断言往往比验证工程师更实用,《A Practial Guide for SystemVerilog Assertions》也有中文版,例子和翻译都不错,这几本书网上基本都可以找到,如果没有可以和我联系(3196301835@qq.com)。
3.我想鼓励初学者的是不要被厚厚的说明书给吓一跳,主要是掌握基础概念。 SystemVerilog中除了受限随机,功能覆盖率等以外,数据类型,运算符,类的概念都和C++类似,这些也往往是面试中的重点。相比 SystemVerilog,UVM中的内容要少些但是牵扯到不少面向对象设计中比较专业的问题象factory, callback等,这需要通过仔细分析代码来理解。总之,从基本概念入手不要妄图一下子把所有问题都搞清楚,虽然不经过多年实际工作项目的考验是无法真正掌握这些内容的,但是不排除经过短期的训练迅速获得敲门砖的可能。
4.其它资料.包括一些网站和论坛,象本站就有海量的资料,UVM的官方网站 Verification Academy有UVM的介绍和视频,甚至还可以就一些比较专业的问题向committee member咨询。另外在验证工程师(www.asicdv.com)这个中文网站有大量简单示例对初学者也很有帮助。
参考文献:
[1] 新手学习System Verilog & UVM指南. http://bbs.ednchina.com/BLOG_ARTICLE_3027974.HTM
(转)新手学习System Verilog & UVM指南的更多相关文章
- 【转】uvm 与 system verilog的理解
http://www.cnblogs.com/loves6036/p/5779691.html 数字芯片和FPGA的验证.主要是其中的功能仿真和时序仿真. 验证中通常要搭建一个完整的测试平台和写所需要 ...
- (转)2019年 React 新手学习指南 – 从 React 学习线路图说开去
原文:https://www.html.cn/archives/10111 注:本文根据 React 开发者学习线路图(2018) 结构编写了很多新手如何学习 React 的建议.2019 年有标题党 ...
- System Verilog基础(一)
学习文本值和基本数据类型的笔记. 1.常量(Literal Value) 1.1.整型常量 例如:8‘b0 32'd0 '0 '1 'x 'z 省略位宽则意味着全位宽都被赋值. 例如: :] sig1 ...
- JavaSwing仿QQ登录界面,注释完善,适合新手学习
使用说明: 这是一个java做的仿制QQ登录界面,界面仅使用一个类, JDK版本为jdk-11 素材包的名字为:素材(下载)请在项目中新建一个名字为“素材”的文件夹. 素材: https://pan. ...
- 新手学习web遇到的一些乱码问题
在新手学习web网站学习的时候经常会遇到?????这种乱码,对于刚起步的菜鸟来说真的很头痛,很容易打击继续学的信心当然了对于菜鸟的我最近也遇到过乱码问题,沉浸其中不能自拔,爱的深啊!!!!!我所遇到的 ...
- ReactNative新手学习之路07ListView_ renderHeader使用StaticContainer
react native新手学习之路07ListView_ renderHeader使用StaticContainer 1.某些特殊场景需要用ScrollView滚动和ListView配合但是不幸运的 ...
- ReactNative新手学习之路01-创建项目开始
新手学习之路01-创建项目开始 小菜鸟准备学习RN开发,决定写下自己的学习历程,方便其他也想要学习RN的人,后期会持续更新写下自己所有学习经历,一步步从菜鸟成长成业内高手.开发环境准备,本文默认环境已 ...
- system verilog中的跳转操作
在verilog中,使用disable声明来从执行流程中的某一点跳转到另一点.特别地,disable声明使执行流程跳转到标注名字的声明组末尾,或者一个任务的末尾. verilog中的disable命令 ...
- system verilog中的类型转换(type casting)、位宽转换(size casting)和符号转换(sign casting)
类型转换 verilog中,任何类型的任何数值都用来给任何类型赋值.verilog使用赋值语句自动将一种类型的数值转换为另一种类型. 例如,当一个wire类型赋值给一个reg类型的变量时,wire类型 ...
随机推荐
- uptime命令
uptime命令能够打印系统总共运行了多长时间和系统的平均负载.uptime命令可以显示的信息显示依次为:现在时间.系统已经运行了多长时间.目前有多少登陆用户.系统在过去的1分钟.5分钟和15分钟内的 ...
- 底层并发APIs_源自objc.io
本文由webfrogs译自objc.io,原文作者Daniel Eggert. 小引 本篇英文原文所发布的站点objc.io是一个专门为iOS和OS X开发者提供的深入讨论技术的平台,文章含金量很 ...
- e.target与e.currentTarget的区别
在DOM事件对象中有两个属性总是时不时的困扰我,就是target和currentTarget,有时候很迷惑分不清两者的区别,因此有必要把这两个属性好好梳理一下,加深理解,以便日后的查询. MDN中对t ...
- vue中显示和隐藏导航
const router = new VueRouter({ mode: 'history', routes: [ { path: '/first', component: firstView, me ...
- Objective-C 中Socket常用转换机制(NSData,NSString,int,Uint8,Uint16,Uint32,byte[])
最近项目中要用到socket通讯,由于涉及到组包问题,所以需要数据类型之间的来回转换,现在分享出来 如果想要请教Socket的问题请留言,我会随时回答的 1. int类型转16进制hexstring ...
- linux:在vmware上模拟新加一个硬盘对其格式化分区
在实际情况中,很容易有系统硬盘空间不够,然后需要添加新硬盘情况:这里我用vmware来模拟实验: 一:在一个Linux vmware上创建一个虚拟硬盘 1.打开vmware,选择一个已经搭建好的l ...
- asp.net core zipkin
微服务监控zipkin+asp.net core 0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 监控目录:微服务监控zipkin.skywalking以及日志ELK监控系列 一 ...
- DPI和PPI
写在前面 各种手机测频机构或者相关资讯老是谈及一个概念:ppi和dpi,通常总会忽略,只是稍微明白,这参数越高,说明屏幕分辨率越高:很长时间都止步如此:但作为一个iOS开发者,岂能止步如此,万一别人问 ...
- c++中static的全部用法
要理解static,就必须要先理解另一个与之相对的关键字,很多人可能都还不知道有这个关键字,那就是auto,其实我们通常声明的不用static修饰的变量,都是auto的,因为它是默认的,就象short ...
- JS两个数组比较,删除重复值巧妙方法
//方法一 var arr1 = [1,2,3,4,5,6,7,8]; //数组A var arr2 = [1,2,3,11,12,13,14];//数组B var temp = []; //临时数组 ...