《数字电路学习精品文稿.ppt》由会员分享,可在线阅读,更多相关《数字电路学习精品文稿.ppt(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数字电路学习课件第1页,本讲稿共33页行为描述方式:行为描述方式:一般使用下述语句描述,可以对组合、时序逻辑电一般使用下述语句描述,可以对组合、时序逻辑电路建模路建模:1)initial 语句语句 2)always 语句语句数据流描述方式:数据流描述方式:一般使用一般使用assign语句描述,主要用于对组合逻辑电语句描述,主要用于对组合逻辑电路建模。路建模。门级描述:门级描述:一般使用一般使用Primitive(内部元件)、自定义的下层(内部元件)、自定义的下层模块对电路描述。主要用于层次化设计中。模块对电路描述。主要用于层次化设计中。第2页,本讲稿共33页4.6.1 组合逻辑电路的门级建模组
2、合逻辑电路的门级建模 门级建模门级建模:将逻辑电路图用将逻辑电路图用HDL规定的文本语规定的文本语言表示出来。即调用言表示出来。即调用Verilog语言中内置的基本语言中内置的基本门级元件描述逻辑图中的元件以及元件之间的门级元件描述逻辑图中的元件以及元件之间的连接关系。连接关系。第3页,本讲稿共33页基本门级元件模型基本门级元件模型 元件元件符号符号功能说明功能说明元件元件符号符号功能说明功能说明and多输入端的与门多输入端的与门nand多输入端的与非门多输入端的与非门or多输入端的或门多输入端的或门nor多输入端的或非门多输入端的或非门xor多输入端的异或门多输入端的异或门xnor多输入端的
3、异或非门多输入端的异或非门buf多输出端的缓冲器多输出端的缓冲器not多输出端的反相器多输出端的反相器bufif1控制信号高电平有控制信号高电平有效的三态缓冲器效的三态缓冲器notif1控制信号高电平有控制信号高电平有效的三态反相器效的三态反相器bufif0控制信号低电平有控制信号低电平有效的三态缓冲器效的三态缓冲器notif0控制信号低电平有控制信号低电平有效的三态反相器效的三态反相器多输入门多输入门多输出门多输出门三态门三态门第4页,本讲稿共33页Verilog 基本门级元件基本门级元件 and n-input AND gate nand n-input NAND gate or n-in
4、put OR gate nor n-input NOR gat xor n-input exclusive OR gate xnor n-input exclusive NOR gate第5页,本讲稿共33页buf n-output buffernot n-output inverterbufif0 tri-state buffer;Io enablebufif1 tri-state buffer;hi enablenotif0 tri-state inverter;Io enablenotif1 tri-state inverter;hi enableVerilog 基本门级元件基本门级元件
5、第6页,本讲稿共33页1 1、多输入门、多输入门只允许有一个输出,但可以有多个输入。只允许有一个输出,但可以有多个输入。and A1(out,in1,in2,in3););输输入入2xxx1zxxx1xxx01111110zx10 输入输入1nand nand真值表真值表X-不确定状态不确定状态Z-高阻态高阻态 and真值表真值表x0zx0 xx10100000zX10 输入输入1and输输入入2xxxxx调用名调用名第7页,本讲稿共33页XX1XZXX1XX11111XX100ZX10输入输入1or输输入入2 or真值表真值表输输入入2XXXXZXXXXXXX011XX X1 10 00 0
6、ZX X1 10 0输入输入1 1xorxorxor真值表真值表第8页,本讲稿共33页2 2、多输出门、多输出门允许有多个输出,但只有一个输入。允许有多个输出,但只有一个输入。not N1(out1,out2,in););xx10zx10输输 入入buf输输 出出 buf真值表真值表 输输 出出xx01zx10输输 入入notnot真值表真值表 buf B1(out1,out2,in););out1inout2outNout1inout2outN第9页,本讲稿共33页2 2、多输出门、多输出门允许有多个输出,但只有一个输入。允许有多个输出,但只有一个输入。not N1(out1,out2,in
7、););buf B1(out1,out2,in););out1inout2outNout1inout2outN第10页,本讲稿共33页xx10zx10输输 入入buf输输 出出 buf真值表真值表 输输 出出xx01zx10输输 入入notnot真值表真值表 第11页,本讲稿共33页3、三态门三态门有一个输出、一个数据输入和一个输入控制。有一个输出、一个数据输入和一个输入控制。如果输入控制信号无效,则三态门的输出为高阻态如果输入控制信号无效,则三态门的输出为高阻态z。第12页,本讲稿共33页bufif1真值表真值表xxxzzxxxzx1/z1/z1z10/z0/z0z0zx10控制输入控制输入
8、bufif1数数据据输输入入xxxzzxxxzx0/z0/z0z11/z1/z10 zzx10控制输入控制输入notif1数数据据输输入入notif1真值表真值表第13页,本讲稿共33页4、设计举例、设计举例/Gate-level description of a 2-to-4-line decoder module _2to4decoder(A1,A0,E,Y);input A,B,E;output 3:0Y;wire A1not,A0not,Enot;not n1(A1not,A1),n2(A0not,A0),n3(Enot,E);nand n4(Y0,A1not,A0not,Enot),
9、n5(Y1,A1not,A0,Enot),n6(Y2,A1,A0not,Enot),n7(Y3,A1,A0,Enot);endmodule 试用试用Verilog语言语言的门级的门级元件描述元件描述2线线-4线译码器线译码器.说明说明部分部分功能功能描述描述第14页,本讲稿共33页4、设计举例、设计举例/Gate-level description of a 2-to-4-line decoder module _2to4decoder(A1,A0,E,Y);input A,B,E;output 3:0Y;wire A1not,A0not,Enot;not n1(A1not,A1),n2(A0
10、not,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);endmodule 试用试用Verilog语言语言的门级的门级元件描述元件描述2线线-4线译码器线译码器.说明说明部分部分功能功能描述描述第15页,本讲稿共33页例例2 用用Verilog的门级元件进行的门级元件进行描述由三态门构成的描述由三态门构成的2选选1数据选择数据选择器器。/Gate-level description of a 2-to-1-line multiplexe
11、r module _2to1muxtri(A,B,SEL,L);input A,B,SEL output L;tri L;bufif1(L,B,SEL);bufif0(L,A,SEL);endmodule 第16页,本讲稿共33页5、分层次的电路设计方法简介、分层次的电路设计方法简介 4位全加器的层次结构框图位全加器的层次结构框图分层次的电路设计分层次的电路设计:在电路设计中,将两个或多个模块组在电路设计中,将两个或多个模块组合起来描述电路逻辑功能的设计方法。合起来描述电路逻辑功能的设计方法。设计方法:设计方法:自顶向下和自底向上两种常用的设计方法自顶向下和自底向上两种常用的设计方法第17页,
12、本讲稿共33页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第18页,本讲稿共33页/Description of 1-bit full addermodule fulladder(S,CO,A,B,CI);input A,B,CI;output S,CO;wire S1,D1
13、,D2;/内部节点信号内部节点信号/Instantiate the halfadder halfadder HA1(S1,D1,A,B);halfadder HA2(S,D2,S1,CI);or g1(CO,D2,D1);endmoduleD1S1D2第19页,本讲稿共33页/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 fullad
14、der fulladder 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 第20页,本讲稿共33页4.6.2 组合逻辑电路的数据流建模组合逻辑电路的数据流建模数据流建模能在较高的抽象级别描述电路的逻辑功数据流建模能在较高的抽象级别描述电路的逻辑功能。通过逻辑综合软件,能够自动地将数据流描述能。通过逻辑综合软件,能够自动地将数据流描述转换成为门级电路。转换成为门级电路。第21页,本讲稿共33页Verilog HDL的运算符的运算符类型符号功能说明类型符号功能说明
15、算术运算符(双目运算符)+-*/%二进制加二进制减二进制乘二进制除求模关系运算符(双目运算符)=右移左移第22页,本讲稿共33页位运算符与缩位运算的比较 A:4b1010、B:4b1111,AB=1010 AB=0101A|B=1111 A&B=1010A=0101B=0000 位运算位运算A=1B=1A=0B=0|A=1|B=0&A=1&B=1&A=1&0&1&0=0 缩位运算缩位运算第23页,本讲稿共33页对同一个操作数的重复拼接还可以双重大括号构成的运算符对同一个操作数的重复拼接还可以双重大括号构成的运算符例如例如4A=4b1111,2A,2B,C=8b11101000。作用是将两个或多
16、个信号的某些位拼接起来成为一个新的操作数,作用是将两个或多个信号的某些位拼接起来成为一个新的操作数,进行运算操作。进行运算操作。位拼接运算符位拼接运算符设设A=1b1,B=2b10,C=2b00则则B,C4b1000A,B1,C03b110A,B,C,3b101=8b11000101。第24页,本讲稿共33页一般用法:一般用法:condition_expr?expr1:expr2;条件运算符条件运算符是三目运算符,运算时根据条件表达式的值选择表达式。是三目运算符,运算时根据条件表达式的值选择表达式。首先计算第一个操作数首先计算第一个操作数condition_expr的值,如果结果为逻辑的值,如
17、果结果为逻辑1,则选择第二个操作数则选择第二个操作数expr1的值作为结果返回,结果为逻辑的值作为结果返回,结果为逻辑0,选择第三个操作数选择第三个操作数expr2的值作为结果返回。的值作为结果返回。第25页,本讲稿共33页2、数据流建模举例、数据流建模举例连续赋值语句的执行过程是:只要逻辑表达式右边变量的连续赋值语句的执行过程是:只要逻辑表达式右边变量的逻辑值发生变化,则等式右边表达式的值会立即被计算出来逻辑值发生变化,则等式右边表达式的值会立即被计算出来并赋给左边的变量。并赋给左边的变量。注意,在注意,在assign语句中,左边变量的数据类型必须是语句中,左边变量的数据类型必须是wire型
18、。型。数据流建模使用的基本语句是连续赋值语句数据流建模使用的基本语句是连续赋值语句assign,该语句用于对,该语句用于对wire型变量进行赋值,型变量进行赋值,它由关键词它由关键词assign开始,后面跟着由操作数和运算符组成的逻开始,后面跟着由操作数和运算符组成的逻辑表达式。辑表达式。2选选1数据选择器的连续赋值描述是:数据选择器的连续赋值描述是:wire A,B,SEL,L;/声明声明4个连线型变量个连线型变量assign L=(A&SEL)|(B&SEL);/连续赋值连续赋值第26页,本讲稿共33页/Dataflow description of a 2-to-4-line decod
19、er,module decoder_df(A1,A0,E,Y);input A1,A0,E;output 3:0 Y;assign Y0=(A1&A0&E);assign Y1=(A1&A0&E);assign Y2=(A1&A0&E);assign Y3=(A1&A0&E);endmodule 第27页,本讲稿共33页/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 用条件运算符描述了一个用条
20、件运算符描述了一个2选选1的数据选择器。的数据选择器。在连续赋值语句中,如果在连续赋值语句中,如果SEL1,则输出,则输出LA;否则;否则LB。第28页,本讲稿共33页4.6.3 组合逻辑电路的行为级建模组合逻辑电路的行为级建模 行为级建模就是描述数字逻辑电路的功能和算法。行为级建模就是描述数字逻辑电路的功能和算法。一般使用一般使用always结构,后面跟着一系列过程赋值语句,给结构,后面跟着一系列过程赋值语句,给reg类型的变量赋值。类型的变量赋值。第29页,本讲稿共33页if(condition_expr1)true_statement1;else if(condition_expr2)t
21、rue_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后面的条件表达式一般为逻辑表达式或关系表达式。执行后面的
22、条件表达式一般为逻辑表达式或关系表达式。执行if语句时,语句时,首先计算表达式的值,若结果为首先计算表达式的值,若结果为0、x或或z,按,按“假假”处理;若结果处理;若结果为为1,按,按“真真”处理,并执行相应的语句。处理,并执行相应的语句。第30页,本讲稿共33页是一种多分支条件选择语句,一般形式如下:是一种多分支条件选择语句,一般形式如下:case(case_expr)item_expr1:statement1;item_expr2:statement2;default:default_statement;/default语句可以省略语句可以省略2、多路分支语句(、多路分支语句(case语
23、句)语句)第31页,本讲稿共33页/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 always(SEL or A or B)if(SEL=1)L=b;/也可以写成也可以写成 if(SEL)L=B;else L=A;endmodule 例例第32页,本讲稿共33页/Behavioral description of 4-to-1-line multiplexermodule mux4to1_bh(A,SEL,E,L);input 3:0 A;input 1:0 SEL;output L;reg L;always(A or SEL or E)beginif(E=1)L=0;elsecase(SEL)2d0:L=A0;2d1:L=A1;2d2:L=A2;2d3:L=A3;endcase endendmodule 第33页,本讲稿共33页