SystemVerilog的历史
随着软件的功能需求越来越复杂,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.
SystemVerilog的历史的更多相关文章
- Verilog与SystemVerilog编程陷阱:怎样避免101个常犯的编码错误
这篇是计算机类的优质预售推荐>>>><Verilog与SystemVerilog编程陷阱:怎样避免101个常犯的编码错误> 编辑推荐 纠错式学习,从"陷阱 ...
- 从中间件的历史来看移动App开发的未来
在移动开发领域我们发现一个很奇怪的现象:普通菜鸟新手经过3个月的培训就可以拿到 8K 甚至上万的工作:在北京稍微有点工作经验的 iOS 开发,就要求 2 万一个月的工资.不知道大家是否想过:移动应用开 ...
- 清空Github上某个文件的历史版本
title: 清空Github上某个文件的历史版本 author: 青南 date: 2015-01-08 16:04:53 categories: [经验] tags: [Github,histor ...
- 【开源】分享2011-2015年全国城市历史天气数据库【Sqlite+C#访问程序】
由于个人研究需要,需要采集天气历史数据,前一篇文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),介绍了基本的采集思路和核心代码,经过1个星期的采集,历史数据库 ...
- History API与浏览器历史堆栈管理
移动端开发在某些场景中有着特殊需求,如为了提高用户体验和加快响应速度,常常在部分工程采用SPA架构.传统的单页应用基于url的hash值进行路由,这种实现不存在兼容性问题,但是缺点也有--针对不支持o ...
- eclipse,myeclipse 误删文件,回滚历史文件操作
昨天因为误操作把一个写了一上午的代码给删了,找到的这个,以前竟然还没发现有这个功能- -! 具体操作: 1.建立同路径同名的文件 2.文件上右键 --> Compare With --> ...
- Java泛型的历史
为什么Java泛型会有当前的缺陷? 之前的章节里已经说明了Java泛型擦除会导致的问题,C++和C#的泛型都是在运行时存在的,难道Java天然不支持“真正的泛型”吗? 事实上,在Java1.5在200 ...
- Windows forfiles(删除历史文件)
200 ? "200px" : this.width)!important;} --> 介绍 forfiles是windows自带的一个批量删除命令,对于时间的判断是通过文件 ...
- Atitit 智能云网络摄像机的前世今生与历史 优点 密码默认888888
Atitit 智能云网络摄像机的前世今生与历史 优点 密码默认888888 用户名admin 密码aaaaaa 网络摄像机是一种结合传统摄像机与网络技术所产生的新一代摄像机,它可以将影像通过网络传 ...
随机推荐
- YHLMR007 服装PDA验货差异报表
*********************************************************************** * Title : YHLMR007 * * Appli ...
- EntityFramework 基础的crud
EntityFramework 基础的crud操作 根据上一张实体映射的demo学习基础的crud操作 1.增加 BlogDbContext dbContext = new BlogDbContext ...
- C# Excel导入
两张表导入到一个DataGrid里面(题目表和答案表) 前台代码 <asp:Content ID="Content1" ContentPlaceHolderID=" ...
- mysql source命令超大文件导入方法总结
本文章来给各位朋友介绍利用mysql source命令超大文件导入方法总结,下面收集了两种解决办法,一种是把数据库分文件导出然后再导入,另一种是修改my.ini配置文件,下面我一一给各位朋友介绍. 导 ...
- 理解伪元素 :before和:after
在CSS中有一特性允许我们添加额外元素而不扰乱文档本身,就是伪元素. 下面举例说明: html: <blockquote> blockquote只是一个块引用 </blockquo ...
- LINK : fatal error LNK1117: syntax error in option 'VERSION:1.6.5'
今天在用vs2015编译ogre 1.6.5的代码时发生连接错误 LINK : fatal error LNK1117: syntax error in option 'VERSION:1.6.5'. ...
- JSBinding / About JSComponent and Serialization
About JSComponent JSCompnent is a normal Unity script. It inherits from JSSerializer and JSSerialize ...
- Linux下date命令,格式化输出,时间设置
date命令的帮助信息 [root@localhost source]# date --help用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] ...
- Spark ML 文本的分类
最近一直在研究Spark的分类算法,因为我们是做日志文本分类,在官网和各大网站一直没找到相应的Demo,经过1个多月的研究,终于有点成效. val sparkConf = new SparkConf( ...
- 001_JavaScript 错误 - Throw、Try 和 Catch
try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. 错误一定会发生 当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误: 可能是 ...