数字逻辑基础-VerilogHDL语言基础教材课件

上传人:沈*** 文档编号:241399004 上传时间:2024-06-23 格式:PPT 页数:44 大小:1.04MB
返回 下载 相关 举报
数字逻辑基础-VerilogHDL语言基础教材课件_第1页
第1页 / 共44页
数字逻辑基础-VerilogHDL语言基础教材课件_第2页
第2页 / 共44页
数字逻辑基础-VerilogHDL语言基础教材课件_第3页
第3页 / 共44页
点击查看更多>>
资源描述
1第四章Verilog HDL语言基础24.1 4.1 什么是什么是Verilog HDLVerilog HDL?Verilog Verilog HDLHDL是是目目前前应应用用最最为为广广泛泛的的硬硬件件描描述述语语言言。Verilog Verilog HDLHDL可可以以用用来来进进行行各各种种层层次次的的逻逻辑辑设设计计,也也可可以以进进行行数数字系统的逻辑综合,仿真验证和时序分析等。字系统的逻辑综合,仿真验证和时序分析等。Verilog Verilog HDLHDL适适合合算算法法级级,寄寄存存器器级级,逻逻辑辑级级,开开关关级级、系系统级和版图级等各个层次的设计和描述。统级和版图级等各个层次的设计和描述。Verilog Verilog HDLHDL进进行行设设计计最最大大的的优优点点是是其其工工艺艺无无关关性性。这这使使得得工工程程师师在在功功能能设设计计,逻逻辑辑验验证证阶阶段段可可以以不不必必过过多多考考虑虑门门级级及及工工艺艺实实现现的的具具体体细细节节,只只需需根根据据系系统统设设计计的的要要求求施施加加不不同同的的约约束束条件,即可设计出实际电路。条件,即可设计出实际电路。3Verilog HDLVerilog HDL模块化设计理念Verilog Verilog Verilog Verilog HDLHDLHDLHDL支支持持以以模模块块集集合合的的形形式式构构造造数数字字系系统统。利利用用层层次次化化、结结构构化化的的设设计计方方法法,一一个个完完整整的的硬硬件件设设计计任任务务可可以以划划分分成成若若干干个个模模块块,每每一一个个模模块块又又可可以以划划分分成成若若干干个个子子模模块块,子子模模块块还还可以进一步划分。可以进一步划分。各各个个模模块块可可以以是是自自主主开开发发的的模模块块,也也可可以以是是从从商商业业渠渠道道购购买买的具有知识产权的的具有知识产权的IPIP核。核。442 VerilogHDL基础知识Verilog Verilog HDLHDL的的运运算算符符与与C C语语言言的的运运算算符符几几乎乎完完全全相相同同,但但数数据类型是据类型是Verilog HDLVerilog HDL特有的。特有的。在在实实际际应应用用中中,要要认认真真体体会会、深深入入理理解解硬硬件件描描述述语语言言与与软软件件编程语言的本质区别。编程语言的本质区别。421 VerilogHDL模块结构模模块块是是Verilog Verilog HDLHDL的的基基本本单单元元,用用于于描描述述某某个个设设计计的的功功能能或结构以及与其他模块通信的外部端口或结构以及与其他模块通信的外部端口。模模块块的的实实际际意意义义是是代代表表硬硬件件电电路路上上的的逻逻辑辑实实体体,每每个个模模块块都都实现特定的功能。实现特定的功能。5模块的基本结构6Verilog HDL语言描述模块结构举例VerilogHDLVerilogHDL模模块块结结构构完完全全嵌嵌在在modulemodule和和endmoduleendmodule关关键键字字之之间间,包包括括四四部部分分,即即模模块块声声明明、端端口口定定义义、信信号号类类型型说说明明和和逻辑功能定义。逻辑功能定义。71模块声明模块声明包括模块名和模块的端口列表。其格式如下:模块声明包括模块名和模块的端口列表。其格式如下:Module Module 模块名模块名(端口名端口名1 1端口名端口名2 2,端口名,端口名n)n);模块的其他部分模块的其他部分 endmodule endmodule 模块结束关键字模块结束关键字模块端口列表中端口名的排列顺序是任意的。模块端口列表中端口名的排列顺序是任意的。82端口(Port)定义端端口口是是模模块块与与外外界界或或其其他他模模块块进进行行连连接接、通通信信的的信信号号线线。因因此此,对对端端口口列列表表中中哪哪些些端端口口是是输输入入端端口口、哪哪些些端端口口是是输输出出端端口要进行明确说明。口要进行明确说明。在在Verilog Verilog HDLHDL中中有有3 3种种端端口口类类型型;输输入入端端口口、输输出出端端口口、双向端口双向端口(既可用作输入也可用作输出既可用作输入也可用作输出)。9)用)用inputinput定义输入端口,格式如下:定义输入端口,格式如下:input input 位宽位宽 端口名端口名1 1,端口名,端口名2 2,端口名,端口名n n;)用)用outputoutput定义输出端口,格式如下:定义输出端口,格式如下:output output 位宽位宽 端口名端口名1 1,端口名,端口名2 2,端口名,端口名n n;)用)用inoutinout定义双向端口,格式如下:定义双向端口,格式如下:inout inout 位宽位宽 端口名端口名1 1,端口名,端口名2 2,端口名,端口名n n;使用上述使用上述3 3种定义格式时应注意:种定义格式时应注意:位宽的说明应遵循位宽的说明应遵循n:1n:1或或n-1:0n-1:0的规则;的规则;不同位宽的端口应分别定义;不同位宽的端口应分别定义;位宽说明省略时,默认值为位宽说明省略时,默认值为1 1。103数据(信号)类型说明在在模模块块中中用用到到的的所所有有信信号号(包包括括端端口口信信号号、节节点点信信号号、中中间间变变量量等等)都都必必须须进进行行数数据据类类型型的的定定义义。VerilogHDLVerilogHDL中中提提供供了了各各种种信信号号类类型型,最最常常用用的的是是连连线线型型(wire)(wire)、寄寄存存器器型型(reg)(reg)和和参参数数型型(parameter)(parameter)。数据类型定义的实例:数据类型定义的实例:reg 4reg 4:1)cout1)cout;定义信号定义信号coutcout的数据类型为的数据类型为4 4位寄存器位寄存器(reg)(reg)型型 wire awire a,b b,c c;定义信号定义信号a a,b b,c c为为1 1位连线位连线(wire)(wire)型型 注意:注意:输输入入端端口口和和双双向向端端口口不不能能说说明明为为寄寄存存器器型型;端端口口信信号号的的数数据类型说明缺省时,据类型说明缺省时,EDAEDA的综合器将其默认为的综合器将其默认为wirewire型。型。114逻辑功能定义 模块中的核心部分是逻辑功能的定义。模块中的核心部分是逻辑功能的定义。Verilog Verilog HDLHDL提提供供了了多多种种逻逻辑辑功功能能的的定定义义方方式式,其其中中调调用用逻逻辑辑门门元元件件(元元件件例例化化)、持持续续赋赋值值语语句句(assign)(assign)、过过程程块块(always)(always)3 3种定义方式比较常用。种定义方式比较常用。相相对对应应在在模模块块设设计计中中的的3 3种种描描述述方方法法:门门级级描描述述方方式式、数数据据流描述方式、行为描述方式,以及以上混合描述方式流描述方式、行为描述方式,以及以上混合描述方式。121)通过调用逻辑门元件(元件例化)定义通过调用通过调用Verilog HDLVerilog HDL提供的内置逻辑门元件,按照元件模提供的内置逻辑门元件,按照元件模型,进行它们之间的信号连接,完成逻辑电路的结构描述。型,进行它们之间的信号连接,完成逻辑电路的结构描述。采用这种方法可以将传统的电路原理图转换成采用这种方法可以将传统的电路原理图转换成Verilog HDLVerilog 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);132)用持续赋值语句(assign)定义assignassign语语句句一一般般用用在在数数据据流流描描述述方方式式中中,常常用用来来描描述述组组合合逻辑电路的功能,称为持续赋值方式。逻辑电路的功能,称为持续赋值方式。这这种种描描述述方方式式比比较较简简单单,只只需需将将传传统统逻逻辑辑表表达达式式转转换换成成符符合合VerilogHDLVerilogHDL规范的表达式放在关键字规范的表达式放在关键字assignassign后面即可。后面即可。例如:例如:assign Fassign F(A&B)|(C&D)(A&B)|(C&D);3)用过程块(always)定义行行为为描描述述方方式式中中采采用用alwaysalways定定义义逻逻辑辑功功能能时时,可可不不关关心心电电路路结结构构,只只描描述述电电路路的的行行为为,即即在在某某种种输输入入情情况况下下产产生生相相应应的的输出。输出。硬硬件件描描述述语语言言支支持持与与逻逻辑辑电电路路结结构构无无关关的的行行为为描描述述。行行为为描述转化为具体电路结构的工作由描述转化为具体电路结构的工作由EDAEDA工具完成。工具完成。14例、用例、用alwaysalways过程块描述一个过程块描述一个4 4位计数器。位计数器。module counter(outmodule counter(out,resetreset,clk)clk);output 4output 4:1 out1 out;input resetinput reset,clkclk;reg 4reg 4:1 out1 out;always (posedge clk)always (posedge clk)begin beginif(reset)out=0if(reset)out=0;else out=out+1else out=out+1;endend endmodule endmodule15164.2.2 词法表示17181920423 数据类型 数数据据类类型型(DataType)(DataType)也也称称为为变变量量类类型型。在在Verilog Verilog HDLHDL中中,数数据据类类型型用用来来表表示示数数字字电电路路中中的的物物理理连连线线、数数据据存存储储和和数数据据传传送等物理量。送等物理量。VerilogHDLVerilogHDL中中共共有有1919种种数数据据类类型型,分分成成连连线线型型(Net(Net Type)Type)和和寄存器型寄存器型(Register Type)(Register Type)两类。两类。其中最常用的是其中最常用的是wirewire型、型、regreg型和型和parameterparameter型。型。211连线型数据用用来来描描述述电电路路中中的的各各种种物物理理连连接接,没没有有状状态态保保持持能能力力,输输出出随着输入变化而变化。必须对网络型数据进行连续的驱动。随着输入变化而变化。必须对网络型数据进行连续的驱动。有有两两种种驱驱动动连连线线型型数数据据的的方方式式,一一是是在在结结构构描描述述中中将将其其连连接接到到逻逻辑辑门门的的输输出出端端或或其其他他模模块块的的输输出出端端;另另一一种种是是用用assignassign语语句句进行赋值进行赋值。当没有获得驱动时,它的取值为。当没有获得驱动时,它的取值为z z。Verilog Verilog HDLHDL中中的的连连线线型型数数据据包包括括wirewire型型、tritri型型、worwor型型、triortrior型型、wandwand型型、triandtriand型型、triltril型型、triotrio型型、triregtrireg型型、vectoredvectored型型、largelarge型型、mediummedium型型、scalaredscalared型型、smallsmall型型。其其中中,在可综合模块中最常用的是在可综合模块中最常用的是wirewire型。型。22wire型数据用用来来表表示示用用assignassign语语句句赋赋值值的的组组合合逻逻辑辑信信号号。Verilog Verilog HDLHDL模块输入输出端口信号类型说明缺省时,自动定义为模块输入输出端口信号类型说明缺省时,自动定义为wirewire型。型。wirewire型型变变量量可可以以用用作作任任何何表表达达时时的的输输入入,也也可可用用作作assignassign语句、元件调用语句和模块调用语句的输出。语句、元件调用语句和模块调用语句的输出。wirewire型型变变量量的的取取值值可可为为0 0、1 1、X X、Z Z。wirewire型型数数据据的的定定义义格格式如下:式如下:wire wire 数据名数据名1 1,数据名,数据名2 2,数据名,数据名n n;位位宽宽遵遵循循nn:11或或n-1n-1:00规规则则进进行行说说明明,可可定定义义多多位位的的wirewire型型向向量量;位位宽宽说说明明缺缺省省时时,默默认认定定义义1 1位位的的wirewire型型变变量量(标标量量)。不同位宽的。不同位宽的wirewire型数据必须分别定义。型数据必须分别定义。23242寄存器型数据是是物物理理电电路路中中数数据据存存储储单单元元的的抽抽象象,对对应应数数字字电电路路中中具具有有状状态态保保持持作作用用的的元元件件,如如触触发发器器、寄寄存存器器等等。其其特特点点是是:具具有有记记忆忆功功能能,必必须须明明确确赋赋值值才才能能改改变变其其状状态态,否否则则一一直直保保持持上上一一次的赋值状态。次的赋值状态。设设计计中中,寄寄存存器器型型变变量量只只能能在在过过程程块块(例例如如always)always)中中,通通过过过过程程赋赋值值语语句句进进行行赋赋值值。换换言言之之,在在过过程程块块(如如always)always)内内被被赋值的每一个信号,都必须在数据类型说明时定义成寄存器型赋值的每一个信号,都必须在数据类型说明时定义成寄存器型。在在Verilog Verilog HDLHDL中中有有5 5种种寄寄存存器器型型数数据据,它它们们是是regreg型型、integerinteger型型、parameterparameter型型、realreal型型和和timetime型型。可可综综合合模模块块中中使使用的是用的是integerinteger型、型、regreg型和型和parameterparameter型。型。25常用寄存器型数据介绍 integerinteger型型数数据据是是一一种种纯纯数数学学的的抽抽象象描描述述,能能定定义义带带符符号号的的3232位位整整型型数数据据,不不对对应应任任何何具具体体的的硬硬件件电电路路。用用作作forfor循循环环语语句句中的循环变量。格式:中的循环变量。格式:integer integer 变量名变量名1 1,变量名,变量名2 2,变量名,变量名n n;regreg型型数数据据通通常常用用作作在在alwaysalways过过程程块块中中被被赋赋值值的的信信号号,也也可可用于表达式的输入。格式:用于表达式的输入。格式:reg reg,数据名,数据名1 1,数据名,数据名2 2,数据名,数据名n n;可可定定义义多多位位的的regreg型型向向量量;位位宽宽说说明明缺缺省省时时,默默认认定定义义1 1位位的的regreg型变量型变量(标量标量)。不同位宽的。不同位宽的regreg型数据必须分别定义。型数据必须分别定义。在使用在使用regreg型数据时,可以域选或全选。型数据时,可以域选或全选。26类型定义和使用举例2728424 Verilog HDL的运算符Verilog Verilog HDLHDL提提供供了了丰丰富富的的运运算算符符(Operators)(Operators),按按功功能能分分成成9 9大大类类,包包括括算算术术运运算算符符、逻逻辑辑运运算算符符、位位运运算算符符、关关系系运运算算符符、等等式式运运算算符符、归归约约运运算算符符、移移位位运运算算符符、条条件件运运算算符符以以及及拼接运算符。拼接运算符。按运算符所带操作数的个数来区分,可分为按运算符所带操作数的个数来区分,可分为3 3类:类:单目运算符单目运算符(unaryoperator)(unaryoperator):带一个操作数。:带一个操作数。o-o-双目运算符双目运算符(binaryoperator)(binaryoperator):带两个操作数。:带两个操作数。三目运算符三目运算符(ternaryoperator)(ternaryoperator):带三个操作数。:带三个操作数。2930313233343536373839404143 VerilogHDL模块的3种建模方式从从VerilogHDLVerilogHDL的的描描述述风风格格看看,分分为为结结构构描描述述、数数据据流流描描述述、行为描述以及混合描述。行为描述以及混合描述。通通过过一一个个例例子子认认识识Verilog Verilog HDLHDL的的3 3种种建建模模方方式式,图图中中电电路路实实现的功能是,当现的功能是,当sel=0sel=0时,时,outouta a;当;当selsel1 1时,时,out=bout=b。424344
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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