verilog95规范标准和2001规范标准的比较.doc

上传人:小** 文档编号:3009664 上传时间:2020-06-21 格式:DOC 页数:11 大小:261.08KB
返回 下载 相关 举报
verilog95规范标准和2001规范标准的比较.doc_第1页
第1页 / 共11页
verilog95规范标准和2001规范标准的比较.doc_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《verilog95规范标准和2001规范标准的比较.doc》由会员分享,可在线阅读,更多相关《verilog95规范标准和2001规范标准的比较.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、/*Verilog_1995和Verilog_2001的比较版本记录表作者版本号日期修改内容王长友V1.00.a2015.5.24第一次创建作为一门如今世界最流行的硬件描述语言之一,Verilog HDL拥有自己的独有的特点和优势。当然同时作为一门不断完善和发展的硬件描述语言,他同样也具有他的不足之处。Verilog HDL是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,它是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年Moorby推

2、出它的第三个商用仿真器verilog-XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广应用。1989年CADENCE公司收购了GDA公司,使得VerilogHDL成为了该公司的独家专利。1990年CADENCE公司公开发表了Verilog HDL,并成立LVI组织以促进Verilog HDL成为IEEE标准,即IEEE Standard 1364-1995。Verilog HDL虽然得到了广泛的应用,但是然们在应用过程中也发同大多数新兴的编程语言一样,有很多的不完善、缺陷。在2001年,OVI(Open Verilog Initiative)向IEEE提交了一个改善了用户觉得

3、原始的Verilog1995标准缺陷的新的标准。这一扩展版本成为了 IEEE1364-2001标准,也就是Verilog 2001。Verilog 2001是1995的增补,现在几乎所有的工具都支持Verilog 2001。Verilog 2001也被称作Verilog 2.0。作为一个verilog的初学者,基础是最重要的。现在将我在学习中了解到的verilog的IEEE1364-95标准和最新的IEEE1364-2001标准做一个简单的比较和分析,希望可以在加深我的学习和理解的同时可以方便大家的探讨、学习和补充。我从以几个方面来比较verilog HDL的IEEE1364-1995标准和I

4、EEE1364-2001的变化:1、 模块声明的扩展1)、Verilog- 2001允许将端口声明和数据类型声明放在同一条语句中,例如: Verilog -1995: Module mux8(y,a,b,en); output 7:0 y; input 7:0a,b; input en; reg 7:0 y; wire 7:0 a,b;wire en;Verilog-2001:Module mux8(y,a,b,en);output reg 7:0 y;input wire 7:0 a,b;input wire en;2)、Verilog- 2001中增加了ANSI C风格的输入输出端口说明,

5、可以用于module、task和function。例如:Verilog -1995:Module mux8(y,a,b,en); output 7:0 y; input 7:0a,b; input en; reg 7:0 y; wire 7:0 a,b;wire en;Verilog-2001: Module mux8(output reg 7:0 y;input wire 7:0 a,b;input wire en);3)、对于含有parameter的module, 例如:Verilog -1995:Module adder(sum, co, a, b, ci); parameter MSB

6、 = 31, LSB = 0; output MSB:LSB sum; output co; input MSB:LSB a,b; input ci; reg MSB:LSB sum; reg co; wire MSB:LSB a,b; wire ci; .Verilog-2001: Module adder #(parameter MSB = 31,LSB = 0) ( output reg MSB: LSB sum, output reg co, input wire MSB: LSB a,b, input wire ci;);.2、 带有初始化的寄存器类型变量声明在Verilog-199

7、5中定义和初始化reg需要两条语句,而在Verilog-2001中可以合成一条语句。实例如下:Verilog-1995:reg clock;initialclk = 0;Verilog-2001:reg clock = 0;3、 敏感表的改进1)、Verilog-2001使用逗号隔开敏感信号Verilog-2001中可以用逗号来代替or隔开敏感信号(or也可以)Verilog-1995:always (a or b or c or d or sel)Verilog-2001:always (a, b, c, d, sel)2)、Verilog-2001组合逻辑敏感信号通配符在组合逻辑设计中,需

8、要在敏感信号列表中包含所有组合逻辑输入信号,以免产生锁存器。在大型的组合逻辑中比较容易遗忘一些敏感信号,因此在Verilog-2001中可以使用*包含所有的输入信号作为敏感信号。Verilog-1995: always (sel or a or b)if (sel)y = a;elsey = b;Verilog-2001always * /combinational logic sensitivityif (sel)y = a;elsey = b;这样做的好处是避免敏感表切合不完整导致的latch。4、 带有符号算数运算的扩展1)、net型和reg型可以声明为带符号的变量,如: Reg sig

9、ned 63:0 data; Wire signed 11:0address;2)、函数的返回值可以是有符号的数,例如: Function signed 128:0 alu;3)、literal integer number 可以定义为有符号的,如: 16hc501 /an unsigned 16-bit hex value 16shc501 /a singned 16-bit hex value4)、增加了算数的左移和右移(,) 操作符“”。对于符号数,执行算数移位操作时,将符号填补移出的位。例如: D=8b10100011; D3; /逻辑右移的结果为:8b00010100 D3; /算数

10、右移的结果是:8111101005)、增加了系统函数$signed,$unsigned。用于在有符号和无符号数之间的转换。如: Reg 63:0 a;/unsigned data type always(a) begin result1 = a/2; / unsfned arithmetic result2 = $signed(a)/2; /signed ariithmetic end5、 可变向量域的选择+: part-select increments from the staeting bit-: part-select increments from the staeting bitR

11、eg 63:0 vector1; /little-endianReg 0:63 ventor2; /big-endianByte = vector131-:8; /selects vector131:24Byte = vector124+:8; /selects vector131:24Byte = vector231-:8; /selects vector124:31Byte = vector224+:8; /selects vector124:31其中,起始位可以是变量,但是位宽必须是整数。因此可以用变量域选择,用循环语句选取一个很长的向量所有位。for(j=0;j0;clogb=clog

12、b+1) Depth =depth1; Endendfunction12、 增加了文件输入输出操作Verilog-1995中在文件的输入、输出操作方面功能非常有限,文件操作疆场借助于verilog PLI(接口编程语言),通常与c语言的文件输入、输出库的访问来处理。并且规定同时打开的I/O文件不能超过31个。Verilog-2001增加了新的系统任务和函数,并且规定同时打开的文件数目为230个。13、 显示参数重载Verilog-1995中参数的重载有两种方法:一种是defparam语句显式重新定义。第二种是在模块实体调用时使用#符号隐式的重新定义参数。Verilog-2001中增加了一种新的

13、方法,成为显式重载。14、 Generate语句Verilog-2001新增了语句“generate”,通过generate循环,可以产生一个对象(比如一个元件或者一个模块等)的多个例化,为可变尺度的设计提供了方便。Generate语句一般在循环和条件语句中使用。Verilog-2001增加了四个关键字generate、endgenerate、genvar和localparam,其中个genvar是一个新的数据类型,用在generate循环中的标尺变量必须定义为genvar类型数据。15、 Redister变成了variable由于自1998年的verilog一来,regiser一直用来描述一

14、种变量的类型,常常让人误以为register和硬件的寄存器一致,在verilog-2001参考手册中将register变成了variable。16、 对条件编译的改进Verilog-1995中支持ifdef、else、endif、undef进行条件编译,verilog-2001中增加了ifndef和elseif17、 文件和行编译显示Verilog需要不断的跟踪元代码的行号和文件名,可编程语言接口(PLI)可以取得并利用行号和源文件的信息,以标记运行是错误的。但是如果verilog代码经过其他工具的处理,源代码的行号和文件名可能丢失。故在verilog-2001中增加了line,用来标定元代码

15、的行号和文件名。 18、 属性随着仿真器之外的工具把verilog作为设计输入,这些工具需要verilog语言能够加入指定工具有关的信息和命令。Verilog么有定义标准的属性,属性名和数值由工具厂商或者其他标准来定义。目前尚未指定的标准。19、 系统任务和系统函数的扩展Verilog-2001增加了17个文件输入、输出任务:$fgetc、$ungetc、$fflush、$ferror、$fgets、$rewind、$swrite、$swrited、$swriteh、$sformat、$sdf_annotate、$fscanf、$sscanf、$fread、$fttell、$fseek.增加了

16、两个转换函数:$signed和$unsingned。增加了命令行输入任务:$test$plusargs和$value$plusargs20、 VCD文件的扩展VCD文件用于存储选定的变量数值变化的信息,信息的记录由VCD系统任务来完成。在verilog-1995标准中只有一种类型的VCD文件,即四状态类型,这种类型的VCD文件只记录变量在0、1、x和z状态之间的变化,而且不记录信号强度信息。而在verilog-2001标准中增加了一种扩展类型的VCD文件,能够记录变量在状态之间的转换,同时记录信号的强度。扩展名VCD系统任务$dumpports、$dumpportsoff、$dumpportson、$dumpportsall、$dumpportslimit、$dumpportsfulsh、$vcdclose。21、 其他除上面讲的内容外,Verilog-2001还增加了其他一些有用特性如增加了verilog的设计内容的配置功能、增强的 SDF(Standard Delay File)支持、PLI增强改进等,感兴趣的读者可以Verilog-2001的标准文献。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁