数字电路学习_第1页
数字电路学习_第2页
数字电路学习_第3页
数字电路学习_第4页
数字电路学习_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

数字电路学习课件第一页,共三十三页,编辑于2023年,星期三行为描述方式:

一般使用下述语句描述,可以对组合、时序逻辑电路建模:1)initial语句2)always

语句数据流描述方式:

一般使用assign语句描述,主要用于对组合逻辑电路建模。门级描述:

一般使用Primitive(内部元件)、自定义的下层模块对电路描述。主要用于层次化设计中。第二页,共三十三页,编辑于2023年,星期三4.6.1组合逻辑电路的门级建模

门级建模:将逻辑电路图用HDL规定的文本语言表示出来。即调用Verilog语言中内置的基本门级元件描述逻辑图中的元件以及元件之间的连接关系。第三页,共三十三页,编辑于2023年,星期三基本门级元件模型元件符号功能说明元件符号功能说明and多输入端的与门nand多输入端的与非门or多输入端的或门nor多输入端的或非门xor多输入端的异或门xnor多输入端的异或非门buf多输出端的缓冲器not多输出端的反相器bufif1控制信号高电平有效的三态缓冲器notif1控制信号高电平有效的三态反相器bufif0控制信号低电平有效的三态缓冲器notif0控制信号低电平有效的三态反相器多输入门多输出门三态门第四页,共三十三页,编辑于2023年,星期三Verilog基本门级元件andn-inputANDgatenandn-inputNANDgateorn-inputORgatenorn-inputNORgatxorn-inputexclusiveORgatexnorn-inputexclusiveNORgate第五页,共三十三页,编辑于2023年,星期三bufn-outputbuffernotn-outputinverterbufif0tri-statebuffer; Ioenablebufif1tri-statebuffer;hienablenotif0tri-stateinverter;Ioenablenotif1tri-stateinverter;hienableVerilog基本门级元件第六页,共三十三页,编辑于2023年,星期三1、多输入门只允许有一个输出,但可以有多个输入。andA1(out,in1,in2,in3);输入2xxx1zxxx1xxx01111110zx10

输入1nandnand真值表X-不确定状态Z-高阻态and真值表x0zx0xx10100000zX10

输入1and输入2xxxxx调用名第七页,共三十三页,编辑于2023年,星期三XX1XZXX1XX11111XX100ZX10输入1or输入2or真值表输入2XXXXZXXXXXXX011XX100ZX10输入1xorxor真值表第八页,共三十三页,编辑于2023年,星期三2、多输出门允许有多个输出,但只有一个输入。notN1(out1,out2,…,in);xx10zx10输入buf输出buf真值表输出xx01zx10输入notnot真值表bufB1(out1,out2,…,in);out1inout2outN…out1inout2outN…第九页,共三十三页,编辑于2023年,星期三2、多输出门允许有多个输出,但只有一个输入。notN1(out1,out2,…,in);bufB1(out1,out2,…,in);out1inout2outN…out1inout2outN…第十页,共三十三页,编辑于2023年,星期三xx10zx10输入buf输出buf真值表输出xx01zx10输入notnot真值表第十一页,共三十三页,编辑于2023年,星期三3、三态门有一个输出、一个数据输入和一个输入控制。如果输入控制信号无效,则三态门的输出为高阻态z。第十二页,共三十三页,编辑于2023年,星期三bufif1真值表xxxzzxxxzx1/z1/z1z10/z0/z0z0zx10控制输入bufif1数据输入xxxzzxxxzx0/z0/z0z11/z1/z10zzx10控制输入notif1数据输入notif1真值表第十三页,共三十三页,编辑于2023年,星期三4、设计举例//Gate-leveldescriptionofa2-to-4-linedecodermodule_2to4decoder(A1,A0,E,Y);inputA,B,E;output[3:0]Y;wireA1not,A0not,Enot;notn1(A1not,A1),n2(A0not,A0),n3(Enot,E);nandn4(Y[0],A1not,A0not,Enot),n5(Y[1],A1not,A0,Enot),n6(Y[2],A1,A0not,Enot),n7(Y[3],A1,A0,Enot);endmodule

试用Verilog语言的门级元件描述2线-4线译码器.说明部分功能描述第十四页,共三十三页,编辑于2023年,星期三4、设计举例//Gate-leveldescriptionofa2-to-4-linedecodermodule_2to4decoder(A1,A0,E,Y);inputA,B,E;output[3:0]Y;wireA1not,A0not,Enot;notn1(A1not,A1),n2(A0not,A0),n3(Enot,E);nandn4(Y[0],A1not,A0not,Enot),n5(Y[1],A1not,A0,Enot),n6(Y[2],A1,A0not,Enot),n7(Y[3],A1,A0,Enot);endmodule

试用Verilog语言的门级元件描述2线-4线译码器.说明部分功能描述第十五页,共三十三页,编辑于2023年,星期三例2用Verilog的门级元件进行描述由三态门构成的2选1数据选择器。//Gate-leveldescriptionofa2-to-1-linemultiplexermodule_2to1muxtri(A,B,SEL,L);inputA,B,SELoutputL;triL;bufif1(L,B,SEL);bufif0(L,A,SEL);endmodule

第十六页,共三十三页,编辑于2023年,星期三5、分层次的电路设计方法简介

4位全加器的层次结构框图分层次的电路设计:在电路设计中,将两个或多个模块组合起来描述电路逻辑功能的设计方法。设计方法:自顶向下和自底向上两种常用的设计方法第十七页,共三十三页,编辑于2023年,星期三modulehalfadder(S,C,A,B);

inputA,B;

outputS,C;//Instantiateprimitivegates

xor(S,A,B);

and(C,A,B);endmodule//Gate-levelhierarchicaldescriptionof4-bitadder//Descriptionofhalfadder第十八页,共三十三页,编辑于2023年,星期三//Descriptionof1-bitfulladdermodulefulladder(S,CO,A,B,CI);inputA,B,CI;outputS,CO;wireS1,D1,D2;//内部节点信号//InstantiatethehalfadderhalfadderHA1(S1,D1,A,B);halfadderHA2(S,D2,S1,CI);org1(CO,D2,D1);endmoduleD1S1D2第十九页,共三十三页,编辑于2023年,星期三//Descriptionof4-bitfulladdermodule_4bit_adder(S,C3,A,B,C_1);input[3:0]A,B;inputC_1;output[3:0]S;outputC3;wireC0,C1,C2;//内部进位信号//InstantiatethefulladderfulladderFA0(S[0],C0,A[0],B[0],C_1),FA1(S[1],C1,A[1],B[1],C0),FA2(S[2],C2,A[2],B[2],C1),FA3(S[3],C3,A[3],B[3],C2);endmodule

第二十页,共三十三页,编辑于2023年,星期三4.6.2组合逻辑电路的数据流建模数据流建模能在较高的抽象级别描述电路的逻辑功能。通过逻辑综合软件,能够自动地将数据流描述转换成为门级电路。第二十一页,共三十三页,编辑于2023年,星期三VerilogHDL的运算符类型符号功能说明类型符号功能说明算术运算符(双目运算符)+-*/%二进制加二进制减二进制乘二进制除求模关系运算符(双目运算符)><>=<===!=大于小于大于或等于小于或等于等于不等于位运算符(双目运算符)~&|^^~或~^按位取反按位与按位或按位异或按位同或缩位运算符(单目运算符)&~&|~|^^~或~^缩位与缩位与非缩位或缩位或非缩位异或缩位同或逻辑运算符!&&||逻辑非逻辑与逻辑或移位运算符(双目运算符)>><<右移左移第二十二页,共三十三页,编辑于2023年,星期三位运算符与缩位运算的比较A:4’b1010、B:4’b1111,A~^B=1010A^B=0101A|B=1111A&B=1010~A=0101~B=0000

位运算~^A=1~^B=1^A=0^B=0|A=1~|B=0~&A=1&B=1&A=1&0&1&0=0

缩位运算第二十三页,共三十三页,编辑于2023年,星期三对同一个操作数的重复拼接还可以双重大括号构成的运算符{{}}例如{4{A}}=4’b1111,{2{A},2{B},C}=8’b11101000。作用是将两个或多个信号的某些位拼接起来成为一个新的操作数,进行运算操作。位拼接运算符设A=1’b1,B=2’b10,C=2’b00则{B,C}=4’b1000{A,B[1],C[0]}=3’b110{A,B,C,3’b101}=8’b11000101。第二十四页,共三十三页,编辑于2023年,星期三一般用法:condition_expr?expr1:expr2;条件运算符是三目运算符,运算时根据条件表达式的值选择表达式。首先计算第一个操作数condition_expr的值,如果结果为逻辑1,则选择第二个操作数expr1的值作为结果返回,结果为逻辑0,选择第三个操作数expr2的值作为结果返回。第二十五页,共三十三页,编辑于2023年,星期三2、数据流建模举例连续赋值语句的执行过程是:只要逻辑表达式右边变量的逻辑值发生变化,则等式右边表达式的值会立即被计算出来并赋给左边的变量。注意,在assign语句中,左边变量的数据类型必须是wire型。

数据流建模使用的基本语句是连续赋值语句assign,该语句用于对wire型变量进行赋值,它由关键词assign开始,后面跟着由操作数和运算符组成的逻辑表达式。2选1数据选择器的连续赋值描述是:wireA,B,SEL,L;//声明4个连线型变量assignL=(A&~SEL)|(B&SEL);//连续赋值第二十六页,共三十三页,编辑于2023年,星期三//Dataflowdescriptionofa2-to-4-linedecoder,moduledecoder_df(A1,A0,E,Y);inputA1,A0,E;output[3:0]Y;assignY[0]=~(~A1&~A0&~E);assignY[1]=~(~A1&A0&~E);assignY[2]=~(A1&~A0&~E);assignY[3]=~(A1&A0&~E);endmodule

第二十七页,共三十三页,编辑于2023年,星期三//Dataflowdescriptionof2-to-1-linemultiplexermodulemux2x1_df(A,B,SEL,L);inputA,B,SEL;outputL;assignL=SEL?A:B;endmodule

用条件运算符描述了一个2选1的数据选择器。在连续赋值语句中,如果SEL=1,则输出L=A;否则L=B。第二十八页,共三十三页,编辑于2023年,星期三4.6.3

组合逻辑电路的行为级建模

行为级建模就是描述数字逻辑电路的功能和算法。一般使用always结构,后面跟着一系列过程赋值语句,给reg类型的变量赋值。第二十九页,共三十三页,编辑于2023年,星期三if(condition_expr1)true_statement1;elseif(condition_expr2)true_statement2;elseif(condition_expr3)true_statement3;……elsedefault_statement;1、条件语句(if语句)条件语句就是根据判断条件是否成立,确定下一步的运算。if(condition_expr)true_statement;if(condition_expr)true_statement;elsefale_statement;Verilog语言中有3种形式的if语句:if后面的条件表达式一般为逻辑表达式或关系表达式。执行if语句时,首先计算表达式的值,若结果为0、x或z,按“假”处理;若结果为1,按“真”处理,并执行相应的语句。第三十页,共三十三页,编辑于2023年,星期三是一种多分支条件选择语句,一般形式如下:cas

温馨提示

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

最新文档

评论

0/150

提交评论