1、Verilog_1995和Verilog_比较版本登记表作者版本号日期修改内容王长友V1.00.a.5.24第一次创立作为一门如今世界最流行硬件描述语言之一,Verilog HDL拥有自己独有特点和优势。固然同步作为一门不断完善和发展硬件描述语言,她同样也具备她局限性之处。Verilog HDL是在用途最广泛C语言基本上发展起来一种硬件描述语言,它是由GDA(Gateway Design Automation)公司PhilMoorby在1983年末首创,最初只设计了一种仿真与验证工具,之后又陆续开发了有关故障模仿与时序分析工具。1985年Moorby推出它第三个商用仿真器verilog-XL,
2、获得了巨大成功,从而使得Verilog HDL迅速得到推广应用。1989年CADENCE公司收购了GDA公司,使得VerilogHDL成为了该公司独家专利。1990年CADENCE公司公开刊登了Verilog HDL,并成立LVI组织以增进Verilog HDL成为IEEE原则,即IEEE Standard 1364-1995。Verilog HDL虽然得到了广泛应用,但是然们在应用过程中也发同大多数新兴编程语言同样,有诸多不完善、缺陷。在,OVI(Open Verilog Initiative)向IEEE提交了一种改进了顾客觉得原始Verilog1995原则缺陷新原则。这一扩展版本成为了 I
3、EEE1364-原则,也就是Verilog 。Verilog 是1995增补,当前几乎所有工具都支持Verilog 。Verilog 也被称作Verilog 2.0。作为一种verilog初学者,基本是最重要。当前将我在学习中理解到verilogIEEE1364-95原则和最新IEEE1364-原则做一种简朴比较和分析,但愿可以在加深我学习和理解同步可以以便人们探讨、学习和补充。我从以几种方面来比较verilog HDLIEEE1364-1995原则和IEEE1364-变化:1、 模块声明扩展1)、Verilog- 容许将端口声明和数据类型声明放在同一条语句中,例如: Verilog -199
4、5: 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-:Module mux8(y,a,b,en);output reg 7:0 y;input wire 7:0 a,b;input wire en;2)、Verilog- 中增长了ANSI C风格输入输出端口阐明,可以用于module、task和function。例如:Verilog -1995:Module mux8(y,a,b,en); output 7:0 y; input 7:0a,
5、b; input en; reg 7:0 y; wire 7:0 a,b;wire en;Verilog-: Module mux8(output reg 7:0 y;input wire 7:0 a,b;input wire en);3)、对于具有parametermodule, 例如:Verilog -1995:Module adder(sum,co,a,b,ci); parameter MSB = 31, LSB = 0; output MSB:LSB sum; output co; input MSB:LSB a,b; input ci; reg MSB:LSB sum; reg co
6、; wire MSB:LSB a,b; wire ci; .Verilog-: 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-1995中定义和初始化reg需要两条语句,而在Verilog-中可以合成一条语句。实例如下:Verilog-1995:reg clock;initialclk = 0;Verilog-:reg clock = 0;3、
7、 敏感表改进1)、Verilog-使用逗号隔开敏感信号Verilog-中可以用逗号来代替or隔开敏感信号(or也可以)Verilog-1995:always (a or b or c or d or sel)Verilog-:always (a,b,c,d,sel)2)、Verilog-组合逻辑敏感信号通配符在组合逻辑设计中,需要在敏感信号列表中包括所有组合逻辑输入信号,以免产生锁存器。在大型组合逻辑中比较容易遗忘某些敏感信号,因而在Verilog-中可以使用*包括所有输入信号作为敏感信号。Verilog-1995: always (sel or a or b)if (sel)y = a;el
8、sey = b;Verilog-always * /combinational logic sensitivityif (sel)y = a;elsey = b;这样做好处是避免敏感表切合不完整导致latch。4、 带有符号算数运算扩展1)、net型和reg型可以声明为带符号变量,如: Reg signed 63:0 data; Wire signed 11:0address;2)、函数返回值可以是有符号数,例如: Function signed 128:0 alu;3)、literal integer number 可以定义为有符号,如: 16hc501 /an unsigned 16-bi
9、t hex value 16shc501 /a singned 16-bit hex value4)、增长了算数左移和右移(,) 操作符“”。对于符号数,执行算数移位操作时,将符号弥补移出位。例如: D=8b10100011; D3; /逻辑右移成果为:8b00010100 D3; /算数右移成果是:8111101005)、增长了系统函数$signed,$unsigned。用于在有符号和无符号数之间转换。如: Reg 63:0 a;/unsigned data type always(a) begin result1 = a/2; / unsfned arithmetic result2 =
10、$signed(a)/2; /signed ariithmetic end5、 可变向量域选取+: part-select increments from the staeting bit-: part-select increments from the staeting bitReg 63:0 vector1; /little-endianReg 0:63 ventor2; /big-endianByte = vector131-:8; /selects vector131:24Byte = vector124+:8; /selects vector131:24Byte = vector2
11、31-:8; /selects vector124:31Byte = vector224+:8; /selects vector124:31其中,起始位可以是变量,但是位宽必要是整数。因而可以用变量域选取,用循环语句选用一种很长向量所有位。for(j=0;j0;clogb=clogb+1) Depth =depth1; Endendfunction12、 增长了文献输入输出操作Verilog-1995中在文献输入、输出操作方面功能非常有限,文献操作疆场借助于verilog PLI(接口编程语言),普通与c语言文献输入、输出库访问来解决。并且规定同步打开I/O文献不能超过31个。Verilog-
12、增长了新系统任务和函数,并且规定同步打开文献数目为230个。13、 显示参数重载Verilog-1995中参数重载有两种办法:一种是defparam语句显式重新定义。第二种是在模块实体调用时使用#符号隐式重新定义参数。Verilog-中增长了一种新办法,成为显式重载。14、 Generate语句Verilog-新增了语句“generate”,通过generate循环,可以产生一种对象(例如一种元件或者一种模块等)各种例化,为可变尺度设计提供了以便。Generate语句普通在循环和条件语句中使用。Verilog-增长了四个核心字generate、endgenerate、genvar和localp
13、aram,其中个genvar是一种新数据类型,用在generate循环中标尺变量必要定义为genvar类型数据。15、 Redister变成了variable由于自1998年verilog一来,regiser始终用来描述一种变量类型,经常让人误觉得register和硬件寄存器一致,在verilog-参照手册中将register变成了variable。16、 对条件编译改进Verilog-1995中支持ifdef、else、endif、undef进行条件编译,verilog-中增长了ifndef和elseif17、 文献和行编译显示Verilog需要不断跟踪元代码行号和文献名,可编程语言接口(P
14、LI)可以获得并运用行号和源文献信息,以标记运营是错误。但是如果verilog代码通过其她工具解决,源代码行号和文献名也许丢失。故在verilog-中增长了line,用来标定元代码行号和文献名。 18、 属性随着仿真器之外工具把verilog作为设计输入,这些工具需要verilog语言可以加入指定工具备关信息和命令。Verilog么有定义原则属性,属性名和数值由工具厂商或者其她原则来定义。当前尚未指定原则。19、 系统任务和系统函数扩展Verilog-增长了17个文献输入、输出任务:$fgetc、$ungetc、$fflush、$ferror、$fgets、$rewind、$swrite、$s
15、writed、$swriteh、$sformat、$sdf_annotate、$fscanf、$sscanf、$fread、$fttell、$fseek.增长了两个转换函数:$signed和$unsingned。增长了命令行输入任务:$test$plusargs和$value$plusargs20、 VCD文献扩展VCD文献用于存储选定变量数值变化信息,信息记录由VCD系统任务来完毕。在verilog-1995原则中只有一种类型VCD文献,即四状态类型,这种类型VCD文献只记录变量在0、1、x和z状态之间变化,并且不记录信号强度信息。而在verilog-原则中增长了一种扩展类型VCD文献,可以记录变量在状态之间转换,同步记录信号强度。扩展名VCD系统任务$dumpports、$dumpportsoff、$dumpportson、$dumpportsall、$dumpportslimit、$dumpportsfulsh、$vcdclose。21、 其她除上面讲内容外,Verilog-还增长了其她某些有用特性如增长了verilog设计内容配备功能、增强 SDF(Standard Delay File)支持、PLI增强改进等,感兴趣读者可以Verilog-原则文献。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100