Verilog-1995和verilog-2001的区别和改进

作者&投稿:东差 (若有异议请与网页底部的电邮联系)
Verilog-1995和verilog-2001的区别和改进~

1、模块声明的扩展
(1) Verilog‐2001允许将端口声明和数据类型声明放在同一条语句中,例子如下:

向左转|向右转


(2)Verilog‐2001中增加了ANSIC风格的输入输出端口声明,可以用于module,task和function。例子如下:

向左转|向右转


(3)对于含有parameter的module,例子如下:

向左转|向右转


2、带有初始化的寄存器类型变量声明
Verilog‐2001中允许在声明变量的同时对其进行初始化赋值,他是在initial语句中的0时刻开始执行。例子如下:

3、敏感表的改进
(1)逗号分开敏感列表
在敏感表中的变量可以用逗号“,”分开,当然,当然or也是可以的。例子如下:

always@(posedge clk,negedge rst)也是可以的。
(2)组合逻辑的电平敏感@* //@(*) is also ok
“*”代表了逻辑块中每个被赋值的变量,例子如下:

4、有符号算数运算的扩展
(1)net型和reg型可以声明为带符号的变量

(2)函数的返回值可以是有符号数

(3)Literal integer numbers可以定义为有符号的


(4)增加算数右移左移(>>>,<<<)
操作符“>>>”和“<<<”。对于有符号数,执行算术移位操作时,将符号位填补移出的位。例子如下:

(5)增加系统函数$signed,$unsigned
用于在无符号和有符号数之间的转换

5、可变向量域的选择
[+”:width]从起始位开始递增,位宽为width
[‐”:width]从起始位开始递减,位宽为width

其中,起始位可以是变量,但位宽必须是整数。因此可以用可变域选择,用循环语句选取一个很长的向量所有位。

6、多维数组的建立
Verilog‐1995中只允许对reg,integer和time建立一维的数组,常用于RAM,ROM的建模。Verilog‐2001中可以对net和variable建立多维数组。

7、多维数组的赋值
Verilog‐1995不允许直接访问矩阵字的某一位或某几位,必须将整个矩阵字复制到另一个暂存变量中,从暂存中访问。
Verilog‐2001可以直接访问矩阵的某一维或某几位。

8、乘方运算符
增加乘方运算(power operate),运算符是**,如果其中有一个操作数是real类型的,返回值将是real类型。两个操作数都是integer类型,返回才是integer类型。

9、自动(可重入)任务和自动(递归)函数
(1)可重入任务
任务本质上是静态的,同时并发执行的多个任务共享存储区。当某个任务在模块中的多个地方被同时调用,则这两个任务对同一块地址空间进行操作,结果可能是错误的。Verilog‐2001中增加了关键字automatic,内存空间是动态分配的,使任务成为可重入的。


(2)递归函数

10、自动宽度扩展
Verilog‐1995中对于不指定位数的位宽超过32为的总线赋高阻时,只会对低32位赋值为高阻,高位将为0。
Verilog‐2001将高阻或不定态赋值给未指定位宽的信号时,可以自动扩展到整个位宽范围。

11、常数函数
Verilog语法规定必须使用数值或常数表达式来定义向量的位宽和阵列的规模。

Verilog‐1995中要求上述表达式必须为算数操作。
Verilog‐2001中可以使用函数,成为常数函数。他的数值在编译或详细描述中被确定。

12、增加了文件输入输出操作
Verilog‐1995中在文件的输入/输出操作方面功能非常有限,文件操作经常借助于Verilog PLI(编程语言接口),通过与C语言的文件输入/输出库的访问来处理。并且规定同时打开的I/O文件数不能多于31个。
Verilog‐2001增加了新的系统任务和函数,并且规定同时打开的文件数目为230个

3种生成语句其实就是for,if和case。这3种语句的用处都非常打。
for可以用在testbench的激励设置中,定义一个integer i,在initial块中就可以用for来定义一个循环激励,只要i满足一定条件,就有一个对应的激励产生。
if是最常用的条件语句。最常用在行为级的代码书写中。
比方说
if(!reset_n) // 异步清零有效
q<=0;
else
q<=d;
case的用处更多了。当你知道你想定义的输出端是什么的时候,就可以用case来生成输出信号。
case最主要的是要有个使能端,根据使能端来确定输出。

case( {s1,s0} ) // 4选1mux
2'b00: y=x[0];
2'b01: y=x[1];
2'b10: y=x[2];
2'b11: y=x[3];
default: y=1'bz;
endcase
Verilog HDL是一种硬件描述语言(HDL:Hardware Description
Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog
HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design
Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。
Verilogs是由Gateway设计自动化公司的工程师于1983年末创立的。当时Gateway设计自动化公司还叫做自动集成设计系统(Automated
Integrated Design Systems),1985年公司将名字改成了前者。该公司的菲尔·莫比(Phil
Moorby)完成了Verilog的主要设计工作。1990年,Gateway设计自动化被Cadence公司收购。
1990年代初,开放Verilog国际(Open Verilog International,
OVI)组织(即现在的Accellera)成立,Verilog面向公有领域开放。1992年,该组织寻求将Verilog纳入电气电子工程师学会标准
。最终,Verilog成为了电气电子工程师学会1364-1995标准,即通常所说的Verilog-95。
设计人员在使用这个版本的Verilog的过程中发现了一些可改进之处。为了解决用户在使用此版本Verilog过程中反映的问题,Verilog进行了修正和扩展,这部分内容后来再次被提交给电气电子工程师学会。这个扩展后的版本后来成为了电气电子工程师学会1364-2001标准,即通常所说的Verilog-2001。Verilog-2001是对Verilog-95的一个重大改进版本,它具备一些新的实用功能,例如敏感列表、多维数组、生成语句块、命名端口连接等。目前,Verilog-2001是Verilog的最主流版本,被大多数商业电子设计自动化软件包支持。
2005年,Verilog再次进行了更新,即电气电子工程师学会1364-2005标准。该版本只是对上一版本的细微修正。这个版本还包括了一个相对独立的新部分,即Verilog-AMS。这个扩展使得传统的Verilog可以对集成的模拟和混合信号系统进行建模。容易与电气电子工程师学会1364-2005标准混淆的是加强硬件验证语言特性的SystemVerilog(电气电子工程师学会1800-2005标准),它是Verilog-2005的一个超集,它是硬件描述语言、硬件验证语言(针对验证的需求,特别加强了面向对象特性)的一个集成。
2009年,IEEE 1364-2005和IEEE 1800-2005两个部分合并为IEEE
1800-2009,成为了一个新的、统一的SystemVerilog硬件描述验证语言(hardware description and verification
language, HDVL)。

1、模块声明的扩展

(1)       Verilog‐2001允许将端口声明和数据类型声明放在同一条语句中,例子如下:

(2)Verilog‐2001中增加了ANSIC风格的输入输出端口声明,可以用于module,task和function。例子如下:

(3)对于含有parameter的module,例子如下:

2、带有初始化的寄存器类型变量声明

Verilog‐2001中允许在声明变量的同时对其进行初始化赋值,他是在initial语句中的0时刻开始执行。例子如下:

3、敏感表的改进

(1)逗号分开敏感列表

在敏感表中的变量可以用逗号“,”分开,当然,当然or也是可以的。例子如下:

always@(posedge clk,negedge rst)也是可以的。

(2)组合逻辑的电平敏感@*           //@(*) is also ok

“*”代表了逻辑块中每个被赋值的变量,例子如下:

4、有符号算数运算的扩展

(1)net型和reg型可以声明为带符号的变量

(2)函数的返回值可以是有符号数

(3)Literal integer numbers可以定义为有符号的

 

(4)增加算数右移左移(>>>,<<<)

操作符“>>>”和“<<<”。对于有符号数,执行算术移位操作时,将符号位填补移出的位。例子如下:

(5)增加系统函数$signed,$unsigned

用于在无符号和有符号数之间的转换

5、可变向量域的选择

[<starting_bit>+”:width]从起始位开始递增,位宽为width

[<starting_bit>‐”:width]从起始位开始递减,位宽为width

其中,起始位可以是变量,但位宽必须是整数。因此可以用可变域选择,用循环语句选取一个很长的向量所有位。

6、多维数组的建立

Verilog‐1995中只允许对reg,integer和time建立一维的数组,常用于RAM,ROM的建模。Verilog‐2001中可以对net和variable建立多维数组。

7、多维数组的赋值

Verilog‐1995不允许直接访问矩阵字的某一位或某几位,必须将整个矩阵字复制到另一个暂存变量中,从暂存中访问。

Verilog‐2001可以直接访问矩阵的某一维或某几位。

8、乘方运算符

增加乘方运算(power operate),运算符是**,如果其中有一个操作数是real类型的,返回值将是real类型。两个操作数都是integer类型,返回才是integer类型。

9、自动(可重入)任务和自动(递归)函数

(1)可重入任务

任务本质上是静态的,同时并发执行的多个任务共享存储区。当某个任务在模块中的多个地方被同时调用,则这两个任务对同一块地址空间进行操作,结果可能是错误的。Verilog‐2001中增加了关键字automatic,内存空间是动态分配的,使任务成为可重入的。

 

(2)递归函数

10、自动宽度扩展

Verilog‐1995中对于不指定位数的位宽超过32为的总线赋高阻时,只会对低32位赋值为高阻,高位将为0。

Verilog‐2001将高阻或不定态赋值给未指定位宽的信号时,可以自动扩展到整个位宽范围。

11、常数函数

Verilog语法规定必须使用数值或常数表达式来定义向量的位宽和阵列的规模。

Verilog‐1995中要求上述表达式必须为算数操作。

Verilog‐2001中可以使用函数,成为常数函数。他的数值在编译或详细描述中被确定。

12、增加了文件输入输出操作

Verilog‐1995中在文件的输入/输出操作方面功能非常有限,文件操作经常借助于Verilog PLI(编程语言接口),通过与C语言的文件输入/输出库的访问来处理。并且规定同时打开的I/O文件数不能多于31个。

Verilog‐2001增加了新的系统任务和函数,并且规定同时打开的文件数目为230个。




otis牌的手表好不好?他是哪国的品牌?
1.ROLEX 劳来士 2.INTERNATIONAL 国际 3.OMEGA 欧米加 4.LONGINES 浪琴 5.TUDOR 刁度 6.CYMA 西马 7.ETERNA 依特那 8.MOVADO 摩凡陀 9.JAEGER-LECOULTER 积家 10.TISSOT 天梭 11.UNIVERSAL 万国 12.ULYSSENARDIN 阿立司那庭 13.MARVIN 摩纹 14.EBEL 依宝 15.ELGIN 爱而近 16.HAMILTON 汉弥登 17.JUVENIA...

有人有上古卷轴3,审判席的攻略
把文件交给Tienius,他对三个人下了死刑命令,让你去执行,但没有告诉你他们的具体位置。在城市打听可以知道他们的大概位置:Forven Berano在神庙地区;Hloggar the Bloody在住宅区的下水道里;Bedal Alen在大市场区的书店的二楼。当同他们对话时你可以选择杀还放走他们,如果杀了他们可以在Tienius那里领取奖金,如果放走...

h5中div属性加载不出背景图片
图片的链接URL不对,你需要引用绝对路径或同目录的子目录文件应用路径,或将图片转为Base64。绝对路径(例)background-image:url(https:\/\/zhidao.baidu.com\/images\/test.jpg)相对路径(例)background-image:url(\/images\/test.jpg)Base64路径(例)background-image:url(iVBORw0KGgoAAAANSUhEUgAAATo...

常见的文件类型有哪几种?
1、文本文件类型。文本文件类型:包括ASCII、MIME、.txt等格式。(1)ASCII标准使得只含有ASCII字符的文本文件可以在Unix、Macintosh、Microsoft Windows、DOS和其它操作系统之间自由交互。(2)文本文件在MIME标准中的类型为“text\/plain”,此外,它通常还附加编码的信息。在Mac OS X出现前,当Resource fork...

有谁知道所有鸟类的名字?可以列举或找到相应网站吗?
Batrachostomidae 16.2 夜鹰科 Caprimulgidae 17 雨燕目 Apodiformes 17.1 雨燕科 Apodidae 17.2 凤头雨燕科 Hemiprocnidae 18 咬鹃目 Trogoniformes 18.1 咬鹃科 Trogonidae 19 佛法僧目 Coraciformes 19.1 翠鸟科 Alcedinidae 19.2 蜂虎科 Meropidae 19.3 佛法僧科 Coraciidae ...

文件的扩展名一共有多少种?
推荐于2016-08-19 08:18:39 最佳答案 一、常见的文件后缀名ACA Microsoft的代理使用的角色文档 acf 系统管理配置 acm 音频压缩管理驱动程序,为Windows系统提供各种声音格式的编码和解码功能 aif 声音文件,支持压缩,可以使用Windows Media Player和QuickTime Player播放 AIF 音频文件,使用Windows Media Player播放 AIFC...

计算机上后缀名大征集
.log 日志文件,通常用来记录一些事件之类 .lzh 一种古老的压缩文件,可以使用WinRAR打开 .mac Macintosh中使用的一中灰度图形文件格式,在Macintosh Paintbrush中使用,其分辨率只能是720*567 .mag 图形文件格式 .mcc Dialer10CallingCard(电话卡文件) .mci MCI命令集 .mdb Microsoft Access使用的数据库格式,是非常流行的...

阳江市13830339132: Verilog - 1995和verilog - 2001的区别和改进 -
漳炕人工: 1、模块声明的扩展 (1) Verilog‐2001允许将端口声明和数据类型声明放在同一条语句中,例子如下:向左转|向右转 (2)Verilog‐2001中增加了ANSIC风格的输入输出端口声明,可以用于module,task和function.例子如下:向左转|向右转 ...

阳江市13830339132: vhdl和verilog的区别 -
漳炕人工: 这两种语言都是用于数字电子系统设计的硬件描述语言,而且都已经是 IEEE 的标准. VHDL 1987 年成为标准,而 Verilog 是 1995 年才成为标准的.这个是因为 VHDL 是美国军方组织开发的,而 Verilog 是一个公司的私有财产转化而来的.

阳江市13830339132: verilog中的expr是什么意思 -
漳炕人工: 在Verilog-1995中,可以选择向量的任一位输出,也可以选择向量的连续几位输出,不过此时连续几位的始末数值的index需要是常量.而在Verilog-2001中,可以用变量作为index,进行part select. [base_expr +: width_expr] //positive offset[...

阳江市13830339132: 在quartus中怎么指定用verilog1995还是2001呢? -
漳炕人工: Assignment -> Settings -> Analysis & Synthesis Settings -> Verilog HDL input

阳江市13830339132: VHDL与VeriHDL哪个好? -
漳炕人工: VHDL是行为级硬件描述语言,设计者可以不必了解电子器件的内部结构,而从行为逻辑的角度去对器件进行编程,VHDL适合大规模电子系统的设计;Verilog HDL是门级描述语言,使用者需要对电子器件的内部结构比较了解,从电路逻辑的角度去进行编程,Verilog适合于中、小规模的电子系统的设计;我个人比较喜欢VHDL

阳江市13830339132: 请教verilog里变量声明时和有什么区别 -
漳炕人工: 1、模块声明的扩展 (1) Verilog‐2001允许将端口声明和数据类型声明放在同一条语句中,例子如下:向左转|向右转 (2)Verilog‐2001中增加了ANSIC风格的输入输出端口声明,可以用于module,task和function.例子如下:向左转|向右转 ...

阳江市13830339132: VerilogHDL中的Verilog是什么意思?
漳炕人工: Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模.被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数...

阳江市13830339132: VHDL与VeriHDL两种语言哪个更适合初学都学习? -
漳炕人工: 建议学习verilog.因为在企业中多用verilog,VHDL好像已经过时,很少有企业在用了.并且Verilog与C语言有很多相似之处,如果有C的基础,学习起来比较容易.如果选择VHDL,再去学Verilog也可以,不过我个人开始也是学习的VHDL,但后面用Verilog的时候总是不习惯,所以至今还是用VHDL.所以你还是开始就学Verilog吧,对找工作有帮助~

阳江市13830339132: verilog语言有什么作用 -
漳炕人工: 主要用于可编程控制器部分,在一些高精度场合应用的,有特殊的要求

阳江市13830339132: 如何在一个向量的每一位后插一个0 verilog -
漳炕人工: 可以这样写,楼下说的是verilog1995标准.一些比较老的教材也可能用的是老标准,是不支持直接访问数组的一个地址中的某一位或一部分,只能通过一个临时变量访问(楼下已经举例了).verilog2001开始取消这个限制,直接访问没问题.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网