4 组合逻辑电路的Verilog HDL描述.ppt_第1页
4 组合逻辑电路的Verilog HDL描述.ppt_第2页
4 组合逻辑电路的Verilog HDL描述.ppt_第3页
4 组合逻辑电路的Verilog HDL描述.ppt_第4页
4 组合逻辑电路的Verilog HDL描述.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、4.6 用VerilogHDL描述组合逻辑电路,4.6.1 组合逻辑电路的门级建模,4.6.2 组合逻辑电路的数据流建模,4.6.3 组合逻辑电路的行为级建模,4.6 用VerilogHDL描述组合逻辑电路,用VerilogHDL描述组合逻辑电路有三种不同抽象级别:组合逻辑电路的门级描述、组合逻辑电路的数据流描述、组合逻辑电路的行为级描述。 VerilogHDL描述的电路就是该电路的VerilogHDL模型。,end,基本门级元件模型,多输入门,多输出门,三态门,4.6.1 组合逻辑电路的门级建模,门级建模:将逻辑电路图用HDL规定的文本语言表示出来。,Verilog 基本门级元件,and n

2、-input AND gate nand n-input NAND gate or n-input OR gate nor n-input NOR gate xor n-input exclusive OR gate xnor n-input exclusive NOR gate,1、多输入门,只允许有一个输出,但可以有多个输入。,and A1(out,in1,in2,in3);,X- 不确定状态,Z- 高阻态,2、多输出门,允许有多个输出,但只有一个输入。,not N1(out1,out2,in);,buf B1(out1,out2,in);,3、三态门,有一个输出、一个数据输入和一个输入控

3、制。 如果输入控制信号无效,则三态门的输出为高阻态z。,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 G1 (A1not,A1), G2 (A0not,A0), G3 (Enot,E); nand G4 (Y0,A1not,A0not,Enot), G5 (Y1,A1not,A0,Enot), G6 (Y2,A1,A0not,Enot), G7 (Y3,A1,

4、A0,Enot); endmodule,试用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位全加器的层次结构框图,分层次的电路设计:在电路设计中,将两个或多

5、个模块组 合起来描述电路逻辑功能的设计方法。,设计方法:自顶向下和自底向上两种常用的设计方法,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 adder module fulladder (S,CO,A

6、,B,CI); input A,B,CI; output 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 adder module _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;

7、 /内部进位信号 /Instantiate the fulladder 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,4.6.2 组合逻辑电路的数据流建模,数据流建模能在较高的抽象级别描述电路的逻辑功能。通过逻辑综合软件,能够自动地将数据流描述转换成为门级电路。,Verilog HDL的运算符,位运算符与缩位运算的比较,A:4b1010 、 B:4b1111,,对同一个操作数的重复拼接还可以双重大括号构成的运算符 例如4A=

8、4b1111,2A,2B,C=8b11101000。,作用是将两个或多个信号的某些位拼接起来成为一个新的操作数,进行运算操作。,位拼接运算符,设A=1b1,B=2b10,C=2b00,则B,C4b1000 A,B1,C03b110 A,B,C,3b101=8b11000101。,一般用法: condition_expr?expr1:expr2;,条件运算符,是三目运算符,运算时根据条件表达式的值选择表达式。,首先计算第一个操作数condition_expr的值,如果结果为逻辑1, 则选择第二个操作数expr1的值作为结果返回,结果为逻辑0, 选择第三个操作数expr2的值作为结果返回。,2、数

9、据流建模举例,连续赋值语句的执行过程是:只要逻辑表达式右边变量的逻辑值发生变化,则等式右边表达式的值会立即被计算出来并赋给左边的变量。,注意,在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

10、 decoder_df (A1,A0,E,Y); input A1,A0,E; output 3:0 Y; assign Y0 = (A1 endmodule,/Dataflow description of 2-to-1-line multiplexer module mux2x1_df (A,B,SEL,L); input A,B,SEL; output L; assign L = SEL ? A : B; endmodule,下面用条件运算符描述了一个2选1的数据选择器。,在连续赋值语句中,如果SEL1,则输出LA;否则LB。 数据流建模根据电路的逻辑功能进行描述,不必考虑电路的组成以及

11、元件 之间的连接,是描述逻辑电路常用的一种方法。,4.6.3 组合逻辑电路的行为级建模,行为级建模就是描述数字逻辑电路的功能和算法。 一般使用always结构,后面跟着一系列过程赋值语句,给reg类型的变量赋值。,或if (condition_expr1) true_statement1; else if (condition_expr2) true_statement2; else if (condition_expr3) true_statement3; else default_statement;,1、条件语句( if语句) 条件语句就是根据判断条件是否成立,确定下一步的运算。,if

12、(condition_expr) true_statement;,或 if (condition_expr) true_statement; else fale_ statement;,Verilog语言中有3种形式的if语句:,if后面的条件表达式一般为逻辑表达式或关系表达式。执行if语句时,首先计算表达式的值,若结果为0、x或z,按“假”处理;若结果为1,按“真”处理,并执行相应的语句。,是一种多分支条件选择语句,一般形式如下: case (case_expr) item_expr1: statement1; item_expr2: statement2; default: default

13、_statement; /default语句可以省略,2、多路分支语句(case语句),/Behavioral description of 2-to-1-line multiplexer module 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,例,always (SEL or A or B) /

14、 语句中括号内为敏感变量,当括号内的任意一个敏感变量发生变化时,下面的过程赋值语句就被执行一次。,/Behavioral description of 4-to-1-line multiplexer module mux4to1_bh(A,SEL,E,L); input 3:0 A; input 1: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 end

15、endmodule,Verilog数字设计的层次与风格,结构(structural)描述 行为(behavioral)描述 数据流(data flow)描述 结构描述表示电路由哪些基本元件组成。 行为描述表示电路输入信号和输出信号间的逻辑关系。 数据流描述表示采用持续赋值语句。,【例1】门级结构描述的2选1MUX module MUX2_1a(out, a, b, sel); output out; input a, b, sel; wire sel_, a1, a2; not (sel_, sel); and (a1, a, sel_), (a2, b, sel); or (out, a1, a2); endmodule,【例2】行为描述的2选1MUX module MUX2_1b(out,

温馨提示

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

评论

0/150

提交评论