西安电子科技大学verilogppt课件.ppt
《西安电子科技大学verilogppt课件.ppt》由会员分享,可在线阅读,更多相关《西安电子科技大学verilogppt课件.ppt(114页珍藏版)》请在三一办公上搜索。
1、11/23/2022,1,Microelectronics School Xidian University,第四章 Verilog HDL数字逻辑电路设计方法,4.1 Verilog HDL 语言设计思想和可综合特性,11/23/2022,2,Microelectronics School Xidian University,例4.1-1:用Verilog HDL设计模256(8bits)计数器(a)可综合程序描述方式module counter (count,clk,reset);output count;input clk,reset;reg 7:0 count;reg out;alwa
2、ys (posedge clk) if (!reset) count=0;else if (count=8b11111111) count=0; else count=count+1;endmodule,(b)常见的错误描述方式module counter (count,clk,reset);output count;input reset,clk;reg 7:0 count;reg out;integer i;always (posedge clk,reset) begin if (!reset) count=0;else for (i=0;i=255;i=i+1) count=count+
3、1;endendmodule,同时Verilog HDL的电路描述方式具有多样性,这也决定了对于电路设计的多样性。,11/23/2022,3,Microelectronics School Xidian University,例4.1-2: 用Verilog HDL设计数字多路选择器(a)采用真值表形式的代码:module MUX (out,data,sel);output out;input 3:0 data;input 1:0 sel;reg out;always (data or sel) case (sel) 2b00 : out=data0; 2b01 : out=data1; 2b
4、10 : out=data2; 2b11 : out=data3; endcaseendmodule,(b)采用逻辑表达式形式的代码:module MUX (out,data,sel);output out;input 3:0 data;input 1:0 sel;wire w1,w2,w3,w4;assign w1=(sel1)endmodule,11/23/2022,4,Microelectronics School Xidian University,(c)采用结构性描述的代码:module MUX (out,data,sel);output out;input 3:0 data;inp
5、ut 1:0 sel;wire w1,w2,w3,w4;not U1 (w1,sel1);U2 (w2,sel0);and U3 (w3,w1,w2,data0);U4 (w4,w1,sel0,data1);U5 (w5,sel1,w2,data2);U6 (w6,sel1,sel0,data3);or U7 (out,w3,w4,w5,w6);endmodule,在现阶段,作为设计人员熟练掌握Verilog HDL程序设计的多样性和可综合性,是至关重要的。作为数字集成电路的基础,基本数字逻辑电路的设计是进行复杂电路的前提。本章通过对数字电路中基本逻辑电路的Verilog HDL程序设计进行讲
6、述,掌握基本逻辑电路的可综合性设计,为具有特定功能的复杂电路的设计打下基础。,4.2 Verilog HDL组合电路设计,组合电路的特点是:电路中任意时刻的稳态输出仅仅取决于该时刻的输入,而与电路原来的状态无关。组合电路的设计需要从以下几个方面考虑:所用的逻辑器件数目最少,器件的种类最少,且器件之间的连线最简单。这样的电路称“最小化”电路;其次,为了满足速度要求,应使级数尽量少,以减少门电路的延迟;电路的功耗应尽可能的小,工作时稳定可靠。描述组合逻辑电路有四种方式:结构描述、逻辑代数、真值表、抽象描述。,11/23/2022,5,Microelectronics School Xidian U
7、niversity,例4.2-1:设计一个3个裁判的表决电路,当两个或两个以上裁判同意时,判决器输出“1”,否则输出“0”。方法1:真值表方式真值表是对电路功能最直接和简单的描述方式。根据电路的功能,可以通过真值表直接建立起输出与输入之间的逻辑关系。例4.2-1有三个输入端A、B、C和一个输出端OUT。,11/23/2022,6,Microelectronics School Xidian University,11/23/2022,7,Microelectronics School Xidian University,在Verilog HDL中,可以使用“case”语句对电路进行描述性设计,
8、表4.2-1真值表设计代码如下:module desingn (OUT,A,B,C);output OUT;input A,B,C;reg OUT;always (A or B or C) case (A,B,C) 3b000 : OUT=0; 3b001 : OUT=0; 3b010 : OUT=0; 3b100 : OUT=0; 3b011 : OUT=1; 3b101 : OUT=1; 3b110 : OUT=1; 3b111 : OUT=1;endcase endmodule,方法2:逻辑代数方式对于组合电路的另一种表达方法是逻辑代数方法。主要思想是将真值表用卡诺图表示,然后化简电路,
9、得出逻辑函数表达式。通过对卡诺图的化简,可以得到组合电路逻辑输出与输入之间的逻辑函数表达式:,11/23/2022,8,Microelectronics School Xidian University,根据逻辑函数表达式可以很方便写出采用逻辑代数描述方式的Verilog HDL程序。module desingn (OUT,A,B,C);output OUT;input A,B,C;assign OUT=(A endmodule,11/23/2022,9,Microelectronics School Xidian University,方法3:结构描述方式,结构性描述方式是对电路最直接的表示
10、,早期的数字电路设计通常采用的原理图设计实际上就是一种结构性描述方式。,module desingn (OUT,A,B,C);output OUT;input A,B,C;and U1 (w1,A,B);and U2 (w2,B,C);and U3 (w3,A,C);or U4 (OUT,w1,w2,w3); endmodule,方法4:抽象描述方式 Verilog HDL还提供了采用抽象描述进行电路设计的方法,可以直接从电路功能出发,编写代码。例如判决器设计,将三个输入的判决相加,当判决成功时相加器之和大于1,即表示投票成功。,11/23/2022,10,Microelectronics S
11、chool Xidian University,module desingn (OUT,A,B,C);output OUT;input A,B,C;wire 1:0 sum;reg OUT;assign sum=A+B+C;always (sum) if (sum1) OUT=1; else OUT=0;endmodule,EDA综合工具可以将Verilog HDL程序综合成物理电路形式,通过电路优化,可以得到符合设计要求的最简化电路。采用Synplify软件对上面四种方法设计的Verilog HDL程序进行综合(采用Altera 公司StratixII器件),可以得相同的最简化电路。,11/
12、23/2022,11,Microelectronics School Xidian University,4.2.1 数字加法器,数字加法器是最为常用的一种数字运算逻辑,被广泛用于计算机、通信和多媒体数字集成电路中例4.2-2:2输入1bit信号全加器。如果运算考虑了来自低位的进位那么该运算就为全加运算,实现全加运算的电路称为全加器。,11/23/2022,12,Microelectronics School Xidian University,代数逻辑表示为,11/23/2022,13,Microelectronics School Xidian University,对应的电路为图,SUM
13、=ABC_IN,Verilog HDL可以用不同的描述方式写出一位全加器,其综合电路是相同的,仅仅是描述风格不同。,11/23/2022,14,Microelectronics School Xidian University,(1)利用连续赋值语句实现module one_bit_fulladder ( SUM, C_OUT, A, B, C_IN );input A, B, C_IN;output SUM, C_OUT;assign SUM=(AB)C_IN;assign C_OUT=(A /function of outputendmodule,(2)利用行为描述实现module one
14、_bit_fulladder ( SUM, C_OUT, A, B, C_IN );output SUM, C_OUT;input A, B, C_IN;assign C_OUT,SUM=A+B+C_IN;endmodule,采用行为描述可以提高设计的效率,对于一个典型的多位加法器的行为描述设计,仅需改变代码中输入和输出信号的位宽即可,例如一个2输入8bits加法器,可以采用下面的Verilog HDL程序代码实现。,11/23/2022,15,Microelectronics School Xidian University,module eight_bit_fulladder ( SUM,
15、 C_OUT, A, B, C_IN );output7:0SUM;output C_OUT;input 7:0A, B;inputC_IN;assign C_OUT,SUM=A+B+C_IN;endmodule,例4.2-3:4位超前进位加法器 超前进位加法器是一种高速加法器,每级进位由附加的组合电路产生,高位的运算不需等待低位运算完成,因此可以提高运算速度。根据对于输入信号位宽为N的全加器,其进位信号是:输出的加法结果是超前进位标志信号是进位产生函数是,11/23/2022,16,Microelectronics School Xidian University,进位传输函数是上述公式中N
16、为加法器位数,在4位加法器中,N=4。由式可以推出各级进位信号表达式,并构成快速进位逻辑电路。,11/23/2022,17,Microelectronics School Xidian University,4位超前进位加法器的电路如图所示,11/23/2022,18,Microelectronics School Xidian University,4位超前进位加法器对应的Verilog HDL代码是:,11/23/2022,19,Microelectronics School Xidian University,module four_bits_fast_addder (sum_out,c
17、_out,a,b,c_in);input 3:0 a,b; /the other of add numberinput c_in; /carry in from before leveloutput 3:0sum_out; /the add of two inputoutput c_out; /carry out to next levelwire 4:0 g,p,c; /wire between every c_out and c_inassign c0=c_in;assign p=a|b;assign g=aendmodule,4.2.2 数据比较器,数据比较器是用来对两个二进制数的大小进
18、行比较,或检测是否相等的逻辑电路。数据比较器包含两个部分:一是比较两个数的大小;二是检测两个数是否一致。 例4.2-4:4位数值比较器 多位数值比较器的比较过程是由高位到底位逐位进行比较,而且只有在高位相等时,才进行低位比较。4位数值比较器中进行A3A2 A1 A0和B3B2 B1 B0的比较时,应首先比较最高位A3和B3。如果A3B3,那么不管其它几位数为何值,结果为AB;若A3B3,结果为AB。如果A3=B3,就必须通过比较低一位A2和B2来判断A和B的大小。如果A2=B2,还必须通过比较更低一位A1和B1来判断,直到最后一位的比较。如果完全相等,则由前一级结果C确定。,11/23/202
19、2,20,Microelectronics School Xidian University,4位数据比较器真值表,11/23/2022,21,Microelectronics School Xidian University,module four_bits_comp1 ( F, A, B, C );parameter comp_width=4;output 2:0 F;input 2:0 C;input comp_width-1:0 A;input comp_width-1:0 B;reg 2:0 F;always (A or B or C) if (AB) F=3b100; else i
20、f (AB)F=3b001; else F=C;endmodule,4.2.3 数据选择器,数据选择器又称多路选择器(Multiplexer,简称MUX),它有n位地址输入、2n位数据输入,1位数据输出。每次在输入地址的控制下,从多路输入数据中选择一路输出,其功能类似于一个单刀多掷开关,如图所示。,11/23/2022,22,Microelectronics School Xidian University,例4.2-5:8选1数据选择器8选1数据选择器可以由多个2选1数据选择器搭成,也可以采用抽象描述方式进行设计。可以采用2选1数据选择器串行连接,也可以用树形连接分成三级实现。,11/23/
21、2022,23,Microelectronics School Xidian University,(1)多个2选1数据选择器的结构级描述module mux8to1_2( d_out, d_in, sel );output d_out;input 7:0 d_in;input 2:0 sel;wire3:0 w1;wire1:0w2;assign w1=sel0? d_in7,d_in5,d_in3,d_in1 :d_in6,d_in4,d_in2,d_in0;assign w2=sel1? w13,w11 :w12,w10;assign d_out=sel2?w21:w20;endmodu
22、le,(2)抽象描述方式对于多路选择器的设计,可以采用“case”语句直接进行设计,在这种设计方式中,只需考虑选择信号列表,就可以实现功能更为复杂的数据选择器。,11/23/2022,24,Microelectronics School Xidian University,module mux8to1 (out,sel,data_in);output out;input 7:0 data_in;input 3:0 sel;reg out;always (data_in or sel) case (sel) 3b000 : out=data_in0; 3b001 : out=data_in1;
23、3b010 : out=data_in2; 3b011 : out=data_in3; 3b100 : out=data_in4; 3b101 : out=data_in5; 3b110 : out=data_in6; 3b111 : out=data_in7; endcase,4.2.4数字编码器,用文字、符号或数码表示特定对象的过程称为编码。在数字电路中用二进制代码表示有关的信号称为二进制编码。实现编码操作的电路叫做编码器。例4.2-6: 3位二进制8-3线编码器用n位二进制代码对N=2n个一般信号进行编码的电路,叫做二进制编码器。例如n=3,可以对8个一般信号进行编码。这种编码器有一个特
24、点:任何时刻只允许输入一个有效信号,不允许同时出现两个或两个以上的有效信号。,11/23/2022,25,Microelectronics School Xidian University,右图是3位二进制8线3线编码器框图,3位二进制8线3线编码器真值表,11/23/2022,26,Microelectronics School Xidian University,module code_8to3 (F,I);output 2:0 F;input 7:0 I;reg 2:0 F;always (I) case (I) 8b00000001: F=3b000; 8b00000010: F=3b
25、001; 8b00000100: F=3b010; 8b00001000: F=3b011; 8b00010000: F=3b100; 8b00100000: F=3b101; 8b01000000: F=3b110; 8b10000000: F=3b111; default : F=3bx;endcaseendmodule,例4.2-7: 8线3线优先编码器 二进制编码器电路要求任何时刻只有一个输入有效,若同时有两个或更多个输入信号有效时,将造成输出混乱状态,因此在使用过程中有一定局限性。为了克服对于输入信号的要求,一种方法是采用优先编码器。优先编码器允许多个输入信号同时有效,但它只按其中优
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西安电子科技大学 verilogppt 课件
链接地址:https://www.31ppt.com/p-1431823.html