硬件描述语言VerilogHDL基础.ppt

上传人:小飞机 文档编号:6055879 上传时间:2023-09-18 格式:PPT 页数:43 大小:1.06MB
返回 下载 相关 举报
硬件描述语言VerilogHDL基础.ppt_第1页
第1页 / 共43页
硬件描述语言VerilogHDL基础.ppt_第2页
第2页 / 共43页
硬件描述语言VerilogHDL基础.ppt_第3页
第3页 / 共43页
硬件描述语言VerilogHDL基础.ppt_第4页
第4页 / 共43页
硬件描述语言VerilogHDL基础.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《硬件描述语言VerilogHDL基础.ppt》由会员分享,可在线阅读,更多相关《硬件描述语言VerilogHDL基础.ppt(43页珍藏版)》请在三一办公上搜索。

1、硬件描述语言Verilog HDL基础,1 Verilog 语言的基本语法规则 2 变量的数据类型 3 Verilog 程序的基本结构 4 逻辑功能的仿真与测试,硬件描述语言HDL(Hardware Description Languag)类似于高级程序设计语言(C语言).它是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,复杂数字逻辑系统所的逻辑功能。HDL是高层次自动化设计的起点和基础.,硬件描述语言Verilog HDL基础,计算机对HDL的处理:,逻辑综合 是指从HDL描述的数字逻辑电路模型中导出电路基本元件列表以及元件之间的连接关系(常称为门级

2、网表)的过程。类似对高级程序语言设计进行编译产生目标代码的过程。产生门级元件及其连接关系的数据库,根据这个数据库可以制作出集成电路或印刷电路板PCB。,逻辑仿真 是指用计算机仿真软件对数字逻辑电路的结构和行为进行预测.仿真器对HDL描述进行解释,以文本形式或时序波形图形式给出电路的输出。在仿真期间如发现设计中存在错误,就再要对HDL描述进行及时的修改。,1 Verilog语言的基本语法规则,为对数字电路进行描述(常称为建模),Verilog语言规定了一套完整的语法结构。,1间隔符:Verilog 的间隔符主要起分隔文本的作用,可以使文本错落有致,便于阅读与修改。间隔符包括空格符(b)、TAB

3、键(t)、换行符(n)及换页符。,2注释符:注释只是为了改善程序的可读性,在编译时不起作用。多行注释符(用于写多行注释):/*-*/;单行注释符:以/开始到行尾结束为注释文字。,标识符:给对象(如模块名、电路的输入与输出端口、变量等)取名所用的字符串。由英文字母、数字,符和下划线组成,并且以英文字母或下划线开始,如,clk、counter8、_net、bus_A。关键词:是Verilog语言本身规定的特殊字符串,用来定义语言的结构。例如,module、endmodule、input、output、wire、reg、and等都是关键词。关键词都是小写,关键词不能作为标识符使用。,3标识符和关键词

4、,为了表示数字逻辑电路的逻辑状态,Verilog语言规定了4种基本的逻辑值。,4逻辑值集合,5常量及其表示,实数型常量,常量,整数型,例如:3b101、5o37、8he3,8b1001_0011,Verilog允许用参数定义语句定义一个标识符来代表一个常量,称为符号常量。定义的格式为:parameter 参数名1常量表达式1,参数名2常量表达式2,;如 parameter BIT=1,BYTE=8,PI=3.14;6字符串:字符串是双撇号内的字符序列,2 变量的数据类型,1.线网类型:是指输出始终根据输入的变化而更新其值的变量,它一般指的是硬件电路中的各种物理连接.,例:wire L;/将上述

5、电路的输出信号L声明为网络型变量 wire 7:0 data bus;/声明一个8-bit宽的网络型总线变量,寄存器型变量对应的是具有状态保持作用的电等路元件,如触发器寄存器。寄存器型变量只能在initial或always内部被赋值。,2、寄存器型,4种寄存器类型的变量,例:reg clock;/定义一个1位寄存器变量 reg 3:0 counter;/定义一个4位寄存器变量,2、每个模块先要进行端口的定义,并说明输入(input)和输出(output),然后对模块功能进行描述。,3 Verilog程序的基本结构,Verilog使用大约100个预定义的关键词定义该语言的结构,1、Verilog

6、HDL程序由模块构成。每个模块的内容都是嵌在关键词module和endmodule两个语句之间。每个模块实现特定的功能。,3、除了endmodule语句外,每个语句后必须有分号。,4、可以用/*-*/和/.对VerilogHDL程序的任何部分做注释。,模块定义的一般语法结构如下:,模块名,数据类型说明,例 用结构描述方式建立门电路Verilog模型,/Gate-level description of simple circuitmodule mux2to1(a,b,sel,out);input a,b,sel;/定义输入信号 output out;/定义输出信号 wire selnot,a1

7、,b1;/定义内部节点信号数据类型/下面对电路的逻辑功能进行描述 not U1(selnot,sel);and U2(a1,a,selnot);and U3(b1,b,sel);or U4(out,a1,b1);endmodule,4 逻辑功能的仿真与测试,逻辑电路的设计块完成后,就要测试这个设计块描述的逻辑功能是否正确。为此必须在输入端口加入测试信号,而从其输出端口检测其结果是否正确,这一过程常称为搭建测试平台。根据仿真软件的不同,搭建测试平台的方法也不同。,图2.3.3 例的仿真输出波形,用Verilog HDL描述组合逻辑电路,用VerilogHDL描述组合逻辑电路,用VerilogHD

8、L描述组合逻辑电路有三种不同抽象级别:门级描述数据流描述行为级描述VerilogHDL描述的电路就是该电路的VerilogHDL模型。,基本门级元件模型,多输入门,多输出门,三态门,1.组合逻辑电路的门级建模,门级建模:将逻辑电路图用HDL规定的文本语言表示出来。,Verilog 基本门级元件,1、多输入门,只允许有一个输出,但可以有多个输入。,and A1(out,in1,in2,in3);,X-不确定状态,Z-高阻态,2、多输出门,允许有多个输出,但只有一个输入。,not N1(out1,out2,in);,buf B1(out1,out2,in);,3、三态门,有一个输出、一个数据输入和

9、一个输入控制。如果输入控制信号无效,则三态门的输出为高阻态z。,4、设计举例,/Gate-level description of a 2-to-4-line decoder module _2to4decoder(A1,A0,E,Y);input A,B,E;output 3:0 Y;wire A1not,A0not,Enot;not n1(A1not,A1),n2(A0not,A0),n3(Enot,E);nand n4(Y0,A1not,A0not,Enot),n5(Y1,A1not,A0,Enot),n6(Y2,A1,A0not,Enot),n7(Y3,A1,A0,Enot);endm

10、odule,试用Verilog语言的门级元件描述2线-4线译码器.,例2 用Verilog的门级元件进行描述由三态门构成的2选1数据选择器。,/Gate-level description of a 2-to-1-line multiplexer module _2to1muxtri(A,B,SEL,L);input A,B,SEL output L;tri L;/也是线网型变量,由多个门驱动 bufif1(L,B,SEL);bufif0(L,A,SEL);endmodule,5、分层次的电路设计方法简介,4位全加器的层次结构框图,分层次的电路设计:在电路设计中,将两个或多个模块组合起来描述电

11、路逻辑功能的设计方法。,设计方法:自顶向下和自底向上两种常用的设计方法,module halfadder(S,C,A,B);input A,B;output S,C;/Instantiate primitive gates xor(S,A,B);and(C,A,B);endmodule,/Gate-level hierarchical description of 4-bit adder/Description of half adder,/Description of 1-bit full addermodule fulladder(S,CO,A,B,CI);input A,B,CI;out

12、put S,CO;wire S1,D1,D2;/内部节点信号/Instantiate the halfadder halfadder HA1(S1,D1,A,B);halfadder HA2(S,D2,S1,CI);or g1(CO,D2,D1);endmodule,/Description of 4-bit full addermodule _4bit_adder(S,C3,A,B,C_1);input 3:0 A,B;input C_1;output 3:0 S;output C3;wire C0,C1,C2;/内部进位信号/Instantiate the fulladder fullad

13、der FA0(S0,C0,A0,B0,C_1),FA1(S1,C1,A1,B1,C0),FA2(S2,C2,A2,B2,C1),FA3(S3,C3,A3,B3,C2);endmodule,数据流建模能在较高的抽象级别描述电路的逻辑功能。通过逻辑综合软件,能够自动地将数据流描述转换成为门级电路。,2 组合逻辑电路的数据流建模,Verilog HDL的运算符,位运算符与缩位运算的比较,A:4b1010、B:4b1111,,对同一个操作数的重复拼接还可以双重大括号构成的运算符例如4A=4b1111,2A,2B,C=8b11101000。,作用是将两个或多个信号的某些位拼接起来成为一个新的操作数,进

14、行运算操作。,位拼接运算符,设A=1b1,B=2b10,C=2b00,则B,C4b1000A,B1,C03b110A,B,C,3b101=8b11000101。,一般用法:condition_expr?expr1:expr2;,条件运算符,是三目运算符,运算时根据条件表达式的值选择表达式。,首先计算第一个操作数condition_expr的值,如果结果为逻辑1,则选择第二个操作数expr1的值作为结果返回,结果为逻辑0,选择第三个操作数expr2的值作为结果返回。,2、数据流建模举例,连续赋值语句的执行过程是:只要逻辑表达式右边变量的逻辑值发生变化,则等式右边表达式的值会立即被计算出来并赋给左

15、边的变量。,注意,在assign语句中,左边变量的数据类型必须是wire型。,数据流建模使用的基本语句是连续赋值语句assign,该语句用于对wire型变量进行赋值,它由关键词assign开始,后面跟着由操作数和运算符组成的逻辑表达式。,2选1数据选择器的连续赋值描述是:wire A,B,SEL,L;/声明4个连线型变量assign L=(A/连续赋值,/Dataflow description of a 2-to-4-line decoder,module decoder_df(A1,A0,E,Y);input A1,A0,E;output 3:0 Y;assign Y0=(A1 endmo

16、dule,/Dataflow description of 2-to-1-line multiplexermodule mux2x1_df(A,B,SEL,L);input A,B,SEL;output L;assign L=SEL?A:B;endmodule,用条件运算符描述了一个2选1的数据选择器。,在连续赋值语句中,如果SEL1,则输出LA;否则LB。,3 组合逻辑电路的行为级建模,行为级建模就是描述数字逻辑电路的功能和算法。一般使用always结构,后面跟着一系列过程赋值语句,给reg类型的变量赋值。,if(condition_expr1)true_statement1;else if

17、(condition_expr2)true_statement2;else if(condition_expr3)true_statement3;else default_statement;,1、条件语句(if语句)条件语句就是根据判断条件是否成立,确定下一步的运算。,if(condition_expr)true_statement;,if(condition_expr)true_statement;else fale_ statement;,Verilog语言中有3种形式的if语句:,if后面的条件表达式一般为逻辑表达式或关系表达式。执行if语句时,首先计算表达式的值,若结果为0、x或z,

18、按“假”处理;若结果为1,按“真”处理,并执行相应的语句。,是一种多分支条件选择语句,一般形式如下:case(case_expr)item_expr1:statement1;item_expr2:statement2;default:default_statement;/default语句可以省略,2、多路分支语句(case语句),/Behavioral description of 2-to-1-line multiplexermodule mux2to1_bh(A,B,SEL,L);input A,B,SEL;output L;reg L;/define register variable

19、 always(SEL or A or B)if(SEL=1)L=b;/也可以写成 if(SEL)L=B;else L=A;endmodule,例,/Behavioral description of 4-to-1-line multiplexermodule mux4to1_bh(A,SEL,E,L);input3:0 A;input1:0 SEL;output L;reg L;always(A or SEL or E),begin if(E=1)L=0;else case(SEL)2d0:L=A0;2d1:L=A1;2d2:L=A2;2d3:L=A3;endcase endendmodule,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号