VerilogHDL语言基础_第1页
VerilogHDL语言基础_第2页
VerilogHDL语言基础_第3页
VerilogHDL语言基础_第4页
VerilogHDL语言基础_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 第四章 verilog hdl语言基础 2 verilog hdlverilog hdl是目前应用最为广泛的硬件描述语言。是目前应用最为广泛的硬件描述语言。 verilog hdlverilog hdl可以用来进行各种层次的逻辑设计,也可以进行数可以用来进行各种层次的逻辑设计,也可以进行数 字系统的逻辑综合,仿真验证和时序分析等。字系统的逻辑综合,仿真验证和时序分析等。 verilog hdlverilog hdl适合算法级,寄存器级,逻辑级,开关级、系适合算法级,寄存器级,逻辑级,开关级、系 统级和版图级等各个层次的设计和描述。统级和版图级等各个层次的设计和描述。 verilog hdl

2、verilog hdl进行设计最大的优点是其工艺无关性。这使得进行设计最大的优点是其工艺无关性。这使得 工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工 艺实现的具体细节,只需根据系统设计的要求施加不同的约束艺实现的具体细节,只需根据系统设计的要求施加不同的约束 条件,即可设计出实际电路。条件,即可设计出实际电路。 3 模块化设计理念 支持以模块集合的形式构造数字系统。利用层支持以模块集合的形式构造数字系统。利用层 次化、结构化的设计方法,一个完整的硬件设计任务可以划分成次化、结构化的设计方法,一个完整的硬件设计任务可以划分成 若干个

3、模块,每一个模块又可以划分成若干个子模块,子模块还若干个模块,每一个模块又可以划分成若干个子模块,子模块还 可以进一步划分。可以进一步划分。 各个模块可以是自主开发的模块,也可以是从商业渠道购买各个模块可以是自主开发的模块,也可以是从商业渠道购买 的具有知识产权的的具有知识产权的ipip核。核。 4 42 veriloghdl基础知识 verilogverilog hdl hdl的运算符与的运算符与c c语言的运算符几乎完全相同,但数语言的运算符几乎完全相同,但数 据类型是据类型是verilogverilog hdl hdl特有的。特有的。 在实际应用中,要认真体会、深入理解硬件描述语言与软件

4、在实际应用中,要认真体会、深入理解硬件描述语言与软件 编程语言的本质区别。编程语言的本质区别。 421 veriloghdl模块结构 模块是模块是verilogverilog hdl hdl的基本单元,的基本单元,用于描述某个设计的功能用于描述某个设计的功能 或结构以及与其他模块通信的外部端口或结构以及与其他模块通信的外部端口。 模块的实际意义是代表硬件电路上的逻辑实体,每个模块都模块的实际意义是代表硬件电路上的逻辑实体,每个模块都 实现特定的功能。实现特定的功能。 5 模块的基本结构 6 verilog hdl语言描述 模块结构举例 veriloghdlveriloghdl模块结构完全嵌在模

5、块结构完全嵌在modulemodule和和endmoduleendmodule关键字关键字 之间,包括四部分,即模块声明、端口定义、信号类型说明和之间,包括四部分,即模块声明、端口定义、信号类型说明和 逻辑功能定义。逻辑功能定义。 7 1模块声明 模块声明包括模块名和模块的端口列表。其格式如下:模块声明包括模块名和模块的端口列表。其格式如下: module module 模块名模块名( (端口名端口名1,1,端口名端口名2,2,端口名端口名n)n); 模块的其他部分模块的其他部分 endmoduleendmodule 模块结束关键字模块结束关键字 模块端口列表中端口名的排列顺序是任意的。模块端

6、口列表中端口名的排列顺序是任意的。 8 2端口(port)定义 端口是模块与外界或其他模块进行连接、通信的信号线。端口是模块与外界或其他模块进行连接、通信的信号线。 因此,对端口列表中哪些端口是输入端口、哪些端口是输出端因此,对端口列表中哪些端口是输入端口、哪些端口是输出端 口要进行明确说明。口要进行明确说明。 在在verilogverilog hdl hdl中有中有3 3种端口类型;输入端口、输出端口、种端口类型;输入端口、输出端口、 双向端口双向端口( (既可用作输入也可用作输出既可用作输入也可用作输出) )。 9 )用)用inputinput定义输入端口,格式如下:定义输入端口,格式如下

7、: input input 位宽位宽 端口名端口名1 1,端口名,端口名2 2,端口名,端口名n n; )用)用outputoutput定义输出端口,格式如下:定义输出端口,格式如下: output output 位宽位宽 端口名端口名1 1,端口名,端口名2 2,端口名,端口名n n; )用)用inoutinout定义双向端口,格式如下:定义双向端口,格式如下: inoutinout 位宽位宽 端口名端口名1 1,端口名,端口名2 2,端口名,端口名n n; 使用上述使用上述3 3种定义格式时应注意:种定义格式时应注意: 位宽的说明应遵循位宽的说明应遵循n:1n:1或或n-1:0n-1:0的

8、规则;的规则; 不同位宽的端口应分别定义;不同位宽的端口应分别定义; 位宽说明省略时,默认值为位宽说明省略时,默认值为1 1。 10 3数据(信号)类型说明 在模块中用到的所有信号在模块中用到的所有信号( (包括端口信号、节点信号、中间包括端口信号、节点信号、中间 变量等变量等) )都必须进行数据类型的定义。都必须进行数据类型的定义。veriloghdlveriloghdl中提供了各种中提供了各种 信号类型,最常用的是信号类型,最常用的是连线型连线型(wire)(wire)、寄存器型、寄存器型( (regreg) )和参数型和参数型 (parameter)(parameter)。 数据类型定义

9、的实例:数据类型定义的实例: regreg 4 4:1 1 coutcout; 定义信号定义信号coutcout的数据类型为的数据类型为4 4位寄存器位寄存器( (regreg) )型型 wire awire a,b b,c c; 定义信号定义信号a a,b b,c c为为1 1位连线位连线(wire)(wire)型型 注意:注意: 输入端口输入端口和和双向端口双向端口不能说明为寄存器型;端口信号的数不能说明为寄存器型;端口信号的数 据类型说明缺省时,据类型说明缺省时,edaeda的综合器将其默认为的综合器将其默认为wirewire型。型。 11 4逻辑功能定义 模块中的核心部分是逻辑功能的定

10、义。模块中的核心部分是逻辑功能的定义。 verilogverilog hdl hdl提供了多种逻辑功能的定义方式,其中提供了多种逻辑功能的定义方式,其中调用逻调用逻 辑门元件辑门元件( (元件例化元件例化) )、持续赋值语句、持续赋值语句(assign)(assign)、过程块、过程块 (always)(always)3 3种定义方式比较常用。种定义方式比较常用。 相对应在模块设计中的相对应在模块设计中的3 3种描述方法:种描述方法:门级描述方式、数据门级描述方式、数据 流描述方式、行为描述方式,以及以上混合描述方式流描述方式、行为描述方式,以及以上混合描述方式。 12 1)通过调用逻辑门元件

11、(元件例化)定义 通过调用通过调用verilogverilog hdl hdl提供的内置逻辑门元件,按照元件模提供的内置逻辑门元件,按照元件模 型,进行它们之间的信号连接,完成逻辑电路的结构描述。型,进行它们之间的信号连接,完成逻辑电路的结构描述。 采用这种方法可以将传统的电路原理图转换成采用这种方法可以将传统的电路原理图转换成verilogverilog hdl hdl 文本形式。文本形式。 例例1 1: and myand3(outand myand3(out,a a,b)b) 例例2 2: and u3(fand u3(f,a a,b b,c)c); 13 2)用持续赋值语句(assig

12、n)定义 assignassign语句一般用在数据流描述方式中,常用来描述组合语句一般用在数据流描述方式中,常用来描述组合 逻辑电路的功能,称为持续赋值方式。逻辑电路的功能,称为持续赋值方式。 这种描述方式比较简单,只需将传统逻辑表达式转换成符这种描述方式比较简单,只需将传统逻辑表达式转换成符 合合veriloghdlveriloghdl规范的表达式放在关键字规范的表达式放在关键字assignassign后面即可。后面即可。 例如:例如: assign fassign f(a; 被赋值变量通常是被赋值变量通常是regreg型或型或integerinteger型变量,可以是变量的型变量,可以是变量的 某一位或

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论