zoukankan      html  css  js  c++  java
  • 【转】uvm 与 system verilog的理解

    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

  • 相关阅读:
    Elementary Methods in Number Theory Exercise 1.3.13
    Elementary Methods in Number Theory Exercise 1.3.17, 1.3.18, 1.3.19, 1.3.20, 1.3.21
    数论概论(Joseph H.Silverman) 习题 5.3,Elementary methods in number theory exercise 1.3.23
    Elementary Methods in Number Theory Exercise 1.2.31
    数论概论(Joseph H.Silverman) 习题 5.3,Elementary methods in number theory exercise 1.3.23
    Elementary Methods in Number Theory Exercise 1.3.13
    Elementary Methods in Number Theory Exercise 1.3.17, 1.3.18, 1.3.19, 1.3.20, 1.3.21
    Elementary Methods in Number Theory Exercise 1.2.31
    Elementary Methods in Number Theory Exercise 1.2.26 The Heisenberg group
    4__面向对象的PHP之作用域
  • 原文地址:https://www.cnblogs.com/hfyfpga/p/6025300.html
Copyright © 2011-2022 走看看