随着软件的功能需求越来越复杂,C语言不足以解决现有的问题,于是C++被发明了;C++的指针漫天飞,对内存的处理过于复杂,于是Java被发明了;芯片的功能不断地扩大,Verilog不足以应对日益复杂的芯片设计和验证,于是SystemVerilog被发明了。

SystemVerilog结合了来自 Verilog、VHDL、C++的概念,还有验证平台语言(OpenVera和e语言)和断言语言(OVA和PSL),也就是说,它将硬件描述语言(HDL)与现代的高层级验证语言(HVL)结合了起来。使其对于进行当今高度复杂的设计验证的验证工程师具有相当大的吸引力。这些都使得SystemVerilog在一个更高的抽象层次上提高了设计建模的能力。它主要定位在芯片的实现和验证流程上。

SystemVerilog(SV)拥有芯片设计及验证工程师所需的全部结构,它集成了面向对象编程、动态线程和线程间通信等特性,作为一种工业标准语言,SV全面综合了RTL设计、测试平台、断言和覆盖率,为系统级的设计及验证提供强大的支持作用。

SystemVerilog语言的前身superlog在2002年被捐赠给了Accellera公司,Synopsys公司将其验证子集OpenVera也捐献给了Accellera,这样就分别有了SystemVerilog 3.0,SystemVerilog 3.1,SystemVerilog 3.1a。之后,Accellera和IEEE共同推出了SystemVerilog的标准IEEE1800。2005年,IEEE对Verilog进行了再一次的更新,1364-2005标准正式出炉了,和上一个版本比较变化不大,不过增加了一个独立的新部分:Verilog-AMS,这个扩展使Verilog可以对模拟数字以及混合信号进行建模仿真。除此之外2005版本还有一个称为1800-2005的标准,这就是SystemVerilog。随后在2009年这两个部分合并为一个即IEEE 1800-2009,成为一个全新,统一的硬件描述语言,从而开启了一个新的时代。目前最新版本为IEEE 1800-2012。

Systemverilog除了作为一种高层次,能进行抽象建模的语言被应用外,它的另一个显著特点是能够和芯片验证方法学结合在一起,即作为实现方法学的一种语言工具。使用验证方法学可以大大增强模块复用性、提高芯片开发效率,缩短开发周期。芯片验证方法学中比较著名的有:VMM、OVM、AVM和UVM等。

参考文献:

[1] SystemVerilog的前世今生.http://www.asicdv.com/system_scan.asp?id=1.

[2] Stuart Sutherland,等. SystemVerilog硬件设计及建模. 科学出版社. 2007,10.

[3] IEEE1800-2012 - IEEE Standard for SystemVerilog--Unified Hardware Design, Specification, and Verification Language

SystemVerilog的历史的更多相关文章

  1. Verilog与SystemVerilog编程陷阱:怎样避免101个常犯的编码错误

    这篇是计算机类的优质预售推荐>>>><Verilog与SystemVerilog编程陷阱:怎样避免101个常犯的编码错误> 编辑推荐 纠错式学习,从"陷阱 ...

  2. 从中间件的历史来看移动App开发的未来

    在移动开发领域我们发现一个很奇怪的现象:普通菜鸟新手经过3个月的培训就可以拿到 8K 甚至上万的工作:在北京稍微有点工作经验的 iOS 开发,就要求 2 万一个月的工资.不知道大家是否想过:移动应用开 ...

  3. 清空Github上某个文件的历史版本

    title: 清空Github上某个文件的历史版本 author: 青南 date: 2015-01-08 16:04:53 categories: [经验] tags: [Github,histor ...

  4. 【开源】分享2011-2015年全国城市历史天气数据库【Sqlite+C#访问程序】

    由于个人研究需要,需要采集天气历史数据,前一篇文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),介绍了基本的采集思路和核心代码,经过1个星期的采集,历史数据库 ...

  5. History API与浏览器历史堆栈管理

    移动端开发在某些场景中有着特殊需求,如为了提高用户体验和加快响应速度,常常在部分工程采用SPA架构.传统的单页应用基于url的hash值进行路由,这种实现不存在兼容性问题,但是缺点也有--针对不支持o ...

  6. eclipse,myeclipse 误删文件,回滚历史文件操作

    昨天因为误操作把一个写了一上午的代码给删了,找到的这个,以前竟然还没发现有这个功能- -! 具体操作: 1.建立同路径同名的文件 2.文件上右键 --> Compare With --> ...

  7. Java泛型的历史

    为什么Java泛型会有当前的缺陷? 之前的章节里已经说明了Java泛型擦除会导致的问题,C++和C#的泛型都是在运行时存在的,难道Java天然不支持“真正的泛型”吗? 事实上,在Java1.5在200 ...

  8. Windows forfiles(删除历史文件)

    200 ? "200px" : this.width)!important;} --> 介绍 forfiles是windows自带的一个批量删除命令,对于时间的判断是通过文件 ...

  9. Atitit 智能云网络摄像机的前世今生与历史 优点  密码默认888888

    Atitit 智能云网络摄像机的前世今生与历史 优点  密码默认888888 用户名admin  密码aaaaaa 网络摄像机是一种结合传统摄像机与网络技术所产生的新一代摄像机,它可以将影像通过网络传 ...

随机推荐

  1. s查找父节点

    查找所有的父节点,包括本身,不包括就<>id with tbs as(select * from TB_HomeBase where ID=223 union all select a.* ...

  2. JQUERY操作html--获取和设置内容、属性、回调函数

    一:jQuery - 获取内容和属性 1.获得内容 - text().html() 以及 val() text() - 返回所选元素的文本内容 html() - 返回所选元素的内容(包括 HTML 标 ...

  3. ooize节点的属性控制

    <workflow-app name="[WF-DEF-NAME]" xmlns="uri:oozie:workflow:[version]"> & ...

  4. JavaScript对象属性赋值操作的逻辑

    对象进行属性赋值操作时,其执行逻辑如下所示: 1. 当前对象中是否有该属性?有,进行赋值操作:没有,进行下一步判断. 2. 对象的原型链中是否有该属性?没有,在当前对象上创建该属性,并赋值:有,进行下 ...

  5. C#对象复制 ICloneable

    在.net framework中,提供了ICloneable接口来对对象进行克隆.当然,你也可以不去实现ICloneable接口而直接自己定义一个Clone()方法,当然,还是推荐实现ICloneab ...

  6. 深入理解AOP

    引子: AOP(面向方面编程:Aspect Oriented Programing)和IoC一样是Spring容器的内核,声明式事务的功能在此基础上开花结果.但是AOP和OOP差别较大,要很好地理解这 ...

  7. 《JavaScript面向对象编程指南》译者序

    相对于Perl.Python等动态脚本语言来说,JavaScript确实是一门饱受误解的语言.对于译者这种从20世纪90年代末走过来的C++程序员来说,尤其如此.在那个年代,提起JavaScript总 ...

  8. Sql日期时间格式转换(转)

    原文出自:http://www.cnblogs.com/Gavinzhao/archive/2009/11/10/1599690.html sql server2000中使用convert来取得dat ...

  9. 【C】 02 - 程序结构和预处理

    在正式进入C的语法之前,有必要对其整体外观和组成元素作一个浏览.这部分内容对大多数人是比较陌生的,但它们却是C的起点和骨架.而这些内容涉及的背景或细节又可以展开为专门的课题,这里也只是浅尝则止,说明个 ...

  10. 从 Bootstrap 2.x 版本升级到 3.0 版本

    摘自http://v3.bootcss.com/migration/ Bootstrap 3 版本并不向后兼容 v2.x 版本.下面的章节是一份从 v2.x 版本升级到 v3.0 版本的通用指南.如需 ...