http://www.cnblogs.com/loves6036/p/5779691.html

数字芯片和FPGA的验证。主要是其中的功能仿真和时序仿真。

验证中通常要搭建一个完整的测试平台和写所需要测试用例。而verilog这种硬件描述语言是出于可综合成电路的目的设计出来的,所以它在书写测试平台和测试用例是不够方便的(测试平台和用例不需要综合成电路)。而SV正是由于它不需要满足可综合性,所以它变得非常灵活,它引入了面向对象语言的概念。在验证方面,如果说verilog是C语言的话,那SV就是C++,他不光有verilog的所有特性,还有自身面向对象的特性。如果你了解一点面向对象的概念的话,应该能够更好地理解其中的差异。

但说到底SV实际上只是一种语言,它撑不起现在芯片庞大的验证规模。就像英语,你光知道词汇和语法是不够的。你需要一种模版,来让行文变得容易、流畅和优美,来应付各种复杂的场景。SV这种语言之上的就是UVM、OVM等方法学。

说是叫方法学,其实UVM更像是一种库。你调用这种库的时候,就可以使用库中各种写好的函数。更棒的是,你可以使用它预设好的成熟的框架体系。这样大量的测试平台所需要的代码都可以复用,作为验证工程师,你只需要集中注意力去设计你所需的测试用例,考虑会发生故障的情形就可以了。

链接:https://www.zhihu.com/question/35418837/answer/63271439

c++的继承、多态是基础~SystemC是c++的一个类库,是在C++面向对象基础上实现了一个任务调度的kernel,再在其基础上
构建interface/port/channel等数据结构,之上还有TLM2.0,scv2.0!因为sc本身就是c++,所以它与系统软件联合建模
验证架构没有任何障碍~
systemverilog主要适用于模块级/IP级验证,但感觉与上层软件衔接的流畅度没有sc好!虽然sv实现了UVM思想,但还是没有充分体现UVM的统一二字~这一点有点硬伤~
sc的UVM库马上就要推出了~后面就有得一瞧了~如果综合工具再给力一点,使用sc描述IC前段设计、验证的所有阶段也不是不可能~
其实学什么都是相通的~关键是要贴合项目去实践。如果有大量的项目来喂你,效果会很好~^_^

链接:https://www.zhihu.com/question/29904342/answer/73032686

目前的IC验证都是用systemverilog语言+UVM验证方法学,C偶尔用来辅助编写参考模型或者进行软硬件协同仿真。所以学习SV和UVM就可以了,当然最好再学点Verilog的设计知识,这样验证工作会做的比较完善。

从刚接触System
Verilog以及后来的VMM,OVM,UVM已经有很多年了,随着电子工业的逐步发展,国内对验证人才的需求也会急剧增加,这从各大招聘网站贴出的职
位上也可以看出来,不少朋友可能想尽快掌握这些知识,自学是一个好办法,我结合自己的亲身经历和大家谈谈初学者如何能尽快入门,继而成为一名合格的IC验
证师。

1.首先来谈谈仿真工具,无非就是Synopsys,Cacence Mentor三大公司的vcs, incisive,
modelsim,其实还有些稍小一些公司象aldec公司的Riviera-PRO也不错,如果能接触到这些工具,再能有水平比较高的人提供一些指点就
方便多了。如果手头没有工具,则要自己考虑在UNIX上安装合适的工具,这我就不多说了,大家都懂的,哈哈。如果你也不会或者不愿意安装工具那么可以去这
里EDA-playground看看,可以在线直接仿真出结果,如果你的网速比较快,这也不失为一个好注意。

2.现在市面上的参考资料比前几年多多了,不能简单地说是良莠不齐,至少要找到适合与自己当前情况的资料。不要东看看西瞅瞅,因为包含的内容太多了,当你搞懂这一块的时候另一块可能忽略了或者遗忘了,所以最好认真专注于一两本书籍,千万不要贪多,我推荐以下几本:

果verilog基础不好,应该加紧学习,毕竟是SystemVerilog的基础,夏宇闻编写的Verilog数字系统设计教程是首选。首先
accellera的UniversalVerification Methodology User's
Guide还是要读一读的,虽然写的不生动,毕竟只是一个说明书。有关systemverilog的书籍市面上不多,Synopsys
的chrisspear10年前所著的《SystemVerilog for
Verification》现在看来依然不错,2009年出版的中文本我是读了好几遍的。前几年Cadence的kathleenA
Meade写了一本《A Practical Guide to Adopting the UniversalVerification
Methodology(UVM)》,后来的第二版我很喜欢,里面配有大量实际验证中的例子,很有价值。这本身出版后反映不错,所以有了后来的另一本书
AdvancedVerification
Topics主要介绍混合信号,低功耗,以及多语言验证问题,有兴趣的朋友可以参考一下。三大公司中的MentorGraphics也贡献了
《VERIFICATION METHODOLOGY
ONLINECOOKBOOK》。国内新出版的《UVM实战》也很有影响,不过它的第二部也就是源代码部分实用性不大,就此我曾经询问过UVM的
communitymember中的高人,他们都不推荐去研读代码,因为其中有不少东西涉及到各公司以及各大用户中的很多苟且之事,很多说不定下一版本就
会更改甚至取消,和我们使用UVM验证环境的工程师没有多大的关系。很多公司对设计工程师的assertion有要求,其实设计工程师自己写的断言往往比
验证工程师更实用,《APractial Guide for SystemVerilog
Assertions》也有中文版,例子和翻译都不错,这几本书本站内基本都可以找到,如果没有可以和我联系。

3.我想鼓励初学者的是不要被厚厚的说明书给吓一跳,主要是掌握基础概念。SystemVerilog中除了受限随机,功能覆盖率等以外,数据类型,运算符,类的概念都和C++类似,这些也往往是面试中的重点。
比SystemVerilog,UVM中的内容要少些但是牵扯到不少面向对象设计中比较专业的问题象factory,callback等,这需要通过仔细
分析代码来理解。总之,从基本概念入手不要妄图一下子把所有问题都搞清楚,虽然不经过多年实际工作项目的考验是无法真正掌握这些内容的,但是不排除经过短
期的训练迅速获得敲门砖的可能。

4.其它资料.包括一些网站和论坛,象本站就有海量的资料,UVM的官方网站VerificationAcademy有UVM的介绍和视频,甚至还
可以就一些比较专业的问题向committeemember咨询。另外在验证工程师http://www.asicdv.com/index.asp这个
中文网站有大量简单示例对初学者也很有帮助。

http://bbs.elecfans.com/forum.php?mod=viewthread&tid=471577

【转】uvm 与 system verilog的理解的更多相关文章

  1. (转)新手学习System Verilog & UVM指南

    从刚接触System Verilog以及后来的VMM,OVM,UVM已经有很多年了,随着电子工业的逐步发展,国内对验证人才的需求也会急剧增加,这从各大招聘网站贴出的职位上也可以看出来,不少朋友可能想尽 ...

  2. System Verilog基础(一)

    学习文本值和基本数据类型的笔记. 1.常量(Literal Value) 1.1.整型常量 例如:8‘b0 32'd0 '0 '1 'x 'z 省略位宽则意味着全位宽都被赋值. 例如: :] sig1 ...

  3. system verilog中的跳转操作

    在verilog中,使用disable声明来从执行流程中的某一点跳转到另一点.特别地,disable声明使执行流程跳转到标注名字的声明组末尾,或者一个任务的末尾. verilog中的disable命令 ...

  4. system verilog中的类型转换(type casting)、位宽转换(size casting)和符号转换(sign casting)

    类型转换 verilog中,任何类型的任何数值都用来给任何类型赋值.verilog使用赋值语句自动将一种类型的数值转换为另一种类型. 例如,当一个wire类型赋值给一个reg类型的变量时,wire类型 ...

  5. 一段比较有意思的代码——介绍system verilog中的新增幅值语句

    system verilog中新加了很多幅值语句,虽然都只适用于阻塞幅值,但是在某些场合中非常实用. 下面是一段有意思的代码,覆盖了一些用法. package definitions; typedef ...

  6. System Verilog随笔(1)

    测试文件该怎么写? 首先看一个简单代码案例: `timescale 1ns/10ps //1 module test;   //2 intput wire[15:0] a; output reg[15 ...

  7. System Verilog基础(二)

    这一篇笔记主要记录Procedural,Process,Task and function,Interface和Communication中值得注意的点. 1.Procedural 写testbenc ...

  8. The Google File System 翻译和理解

    The Google File System 摘要 GFS 是一个可扩展的分布式文件系统,用于大型分布式数据密集型应用上.它可以运行在便宜的普通硬件上,提供了高性能和一定的容错性. 1. 分布式文件系 ...

  9. System.nanoTime与System.currentTimeMillis的理解与区别

    System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 平时产生随机数时我们经常拿时间做种子,比如用System.currentTimeMillis的结果 ...

随机推荐

  1. 转载 SQL Server中索引管理之六大铁律

    转载原地址 http://jingyan.baidu.com/article/48a42057c03bd7a924250429.html 索引是以表列为基础的数据库对象.索引中保存着表中排序的索引列, ...

  2. js隐藏

    function openLoadingIcon(){ $("#dataLoading").css("display","block"); ...

  3. memcached构建集群分析之一

    memcached本身是不支持集群的,集群所关注的容灾.容错.宕机恢复机制统统都没有,实战中需要自己实现容灾机制. memcached集群相比memcached的优势: 巨量数据分布到集群的多台应用主 ...

  4. IEBrowse学习笔记

    //登录 private void toolStripButton1_Click(object sender, EventArgs e) { //ie.ExecuteScript("aler ...

  5. hdu3001 Travelling

    Travelling Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  6. VMware虚拟机扩容

    作者:金良(golden1314521@gmail.com) csdn博客:http://blog.csdn.net/u012176591 用了一段Linux虚拟机.发现安装虚拟机时分配的空间不够用, ...

  7. C# Process 类的思考

    在这里,我先给自己留个印象 下面我们用C#实现一个调用Dos命令的小程序,让大家对系统进程能有个直观的了解.要使用Process类,首先要引入System.Diagnostic命名空间,然后定义一个新 ...

  8. delphi 设置超链接

     的属性 的事件 的方法 //1设置链接类型//2获取样式 链接和提示信息 //title是提示信息//HTTPS https://<a href="https://www.baidu ...

  9. hdu4864 hdu4268 贪心 lower_bound

    hdu4864 题意: 有n个机器,m个任务,n,m<=100000,每个机器都有工作时间的最大限制xi(0<xi<1440)和完成的最大难度yi(0<=yi<=100) ...

  10. win7中USB音箱没有声音解决的方法

    Win7装好后,原来在XP中工作正常的USB小音箱却不工作了,重装了声卡驱动还是一样,后来通过下面尝试最终好用了. 1.右键右下角喇叭button. 2.点击"播放设备". 3.设 ...