数字逻辑单元设计.ppt
《数字逻辑单元设计.ppt》由会员分享,可在线阅读,更多相关《数字逻辑单元设计.ppt(115页珍藏版)》请在三一办公上搜索。
1、数字逻辑单元设计,xxx,第4章数字逻辑单元设计-本章概要,在复杂数字系统中,其结构总可以用若干基本逻辑单元的组合进行描述。基本逻辑单元一般分为组合逻辑电路和时序电路两大类。在此基础上,可以更进一步进行组合.本章所介绍的存储器、运算单元和有限自动状态机就是由基本逻辑单元组合而成的。本章首先介绍基本的组合逻辑电路和时序电路设计,然后介绍在数字系统设计中普遍使用的存储器电路、运算单元和有限自动状态机。,组合逻辑电路设计,组合逻辑电路是指输出状态只决定于同一时刻各个输入状态的组合,而与先前状态无关的逻辑电路称为组合逻辑电路。组合逻辑电路主要包括简单门电路、编码器和译码器、数据选择器、数字比较器、运算
2、单元和三态门等。,组合逻辑电路设计-基本逻辑门电路设计,Verilog HDL对基本逻辑门电路的描述可以使用门级描述、数据流描述和行为描述三种方式。门级描述主要是通过调用门级描述语句实现,而其它方式是通过调用Verilog HDL中关于逻辑描述符来实现门电路。,组合逻辑电路设计-基本逻辑门电路设计,【例4.1】基本门电路的Verilog HDL行为描述 module g1(o,a,b,c,d);input a,b,c,d;output reg o;always(a or b or c or d)begin o=(aend endmodule,组合逻辑电路设计-基本逻辑门电路设计,【例4.2】基
3、本门电路的Verilog HDL数据描述module g2(o,a,b,c,d);input a,b,c,d;output o;assign o=(aendmodule,组合逻辑电路设计-基本逻辑门电路设计,【例4.3】基本门电路的Verilog HDL门级描述module g3(o,a,b,c,d);input a,b,c,d;output o;nand(o1,a,b);and(o2,b,c,d);or(o,o1,o2);endmodule,组合逻辑电路设计-编码器和译码器设计,在数字系统中,常常会将某一信息用特定的代码进行描述,这称为编码过程。编码过程可以通过编码器电路实现。同时,将某一特
4、定的代码翻译成原始的信息,这称为译码过程。译码过程可以通过译码器电路实现。,组合逻辑电路设计-编码器设计,将某一信息用一组按一定规律排列的二进制代码描述称为编码。典型的有8421码、BCD码等。在使用Verilog HDL 语言设计编码器时,通过使用CASE和IF语句实现对编码器的描述。,【例4.4】使用if-else语句实现一个8-3线优先编码器的Verilog HDL描述。module v_priority_encoder_1(sel,code);input 7:0 sel;output 2:0 code;reg 2:0 code;always(sel),组合逻辑电路设计-编码器设计,be
5、ginif(sel0)code=3b000;else if(sel1)code=3b001;else if(sel2)code=3b010;else if(sel3)code=3b011;else if(sel4)code=3b100;else if(sel5)code=3b101;else if(sel6)code=3b110;else if(sel7)code=3b111;else code=3bxxx;endendmodule,组合逻辑电路设计-编码器设计,组合逻辑电路设计-译码器设计,译码的过程实际上就是编码过程的逆过程,即将一组按一定规律排列的二进制数还原为原始的信息。,组合逻辑电路
6、设计-译码器设计,【例4.5】使用case实现3-8译码器的Verilog HDL语言描述。,module v_decoders_1(sel,res);input 2:0 sel;output 7:0 res;reg 7:0 res;always(sel or res)begin,case(sel)3b000:res=8b00000001;3b001:res=8b00000010;3b010:res=8b00000100;3b011:res=8b00001000;3b100:res=8b00010000;3b101:res=8b00100000;3b110:res=8b01000000;def
7、ault:res=8b10000000;endcaseendendmodule,组合逻辑电路设计-译码器设计,组合逻辑电路设计-译码器设计,【例4.6】十六进制数的共阳极7段数码显示Verilog HDL描述,module seven_segment_led(o,i);input3:0 i;output reg6:0 o;always(i)begin case(i),组合逻辑电路设计-译码器设计,4b0001:o=7b1111001;/1 4b0010:o=7b0100100;/2 4b0011:o=7b0110000;/3 4b0100:o=7b0011001;/4 4b0101:o=7b0
8、010010;/5 4b0110:o=7b0000010;/6 4b0111:o=7b1111000;/7 4b1000:o=7b0000000;/8,4b1001:o=7b0010000;/9 4b1010:o=7b0001000;/A 4b1011:o=7b0000011;/b 4b1100:o=7b1000110;/C 4b1101:o=7b0100001;/d 4b1110:o=7b0000110;/E 4b1111:o=7b0001110;/F default:o=7b1000000;/0 endcaseendendmodule,组合逻辑电路设计-译码器设计,组合逻辑电路设计-数据选
9、择器设计设计,CASE和IF语句描述数据选择器 在数字系统设计中,常使用CASE和IF语句描述数据选择器。下面给出这两种描述方法。,组合逻辑电路设计-数据选择器设计设计,【例4.7】使用case语句实现多路选择器module full_mux(sel,i1,i2,i3,i4,o1);input 1:0 sel;input 1:0 i1,i2,i3,i4;output 1:0 o1;reg 1:0 o1;always(sel or i1 or i2 or i3 or i4)begin case(sel)2b00:o1=i1;2b01:o1=i2;2b10:o1=i3;2b11:o1=i4;end
10、caseendendmodule,组合逻辑电路设计-数据选择器设计设计,【例4.8】使用if-else语句实现多路选择器module v_multiplexers_1(a,b,c,d,s,o);input a,b,c,d;input 1:0 s;output reg o;always(a or b or c or d or s)beginif(s=2b00)o=a;else if(s=2b01)o=b;else if(s=2b10)o=c;else o=d;endendmodule,组合逻辑电路设计-三态缓冲描述数据选择器,使用三态缓冲语句也可以描述多路数据选择器。图4.5给出了4选1多路选择
11、器的三态的原理。,图4.5 三态缓冲实现4选1多路选择器,组合逻辑电路设计-三态缓冲描述数据选择器,【例4.9】三态缓冲描述数据选择器的Verilog HDL描述module v_multiplexers_3(a,b,c,d,s,o);input a,b,c,d;input 3:0 s;output o;assign o=s3?a:1bz;assign o=s2?b:1bz;assign o=s1?c:1bz;assign o=s0?d:1bz;endmodule,组合逻辑电路设计-数字比较器,比较器就是对输入数据进行比较,并判断其大小的逻辑电路。在数字系统中,比较器是基本的组合逻辑单元之一,
12、比较器主要是使用关系运算符实现的。,组合逻辑电路设计-数字比较器,【例4.10】数字比较器的Verilog HDL描述module v_comparator_1(A,B,CMP);input 7:0 A;input 7:0 B;output CMP;assign CMP=(A=B)?1b1:1b0;endmodule,组合逻辑电路设计-运算单元,数据运算单元主要包含加法器、减法器、乘法器和除法器,由这四种运算单元和逻辑运算单元一起,可以完成复杂数学运算。在Verilog HDL语言中,支持的几种运算有:加(+)、减(-)、乘(*)、除(/)、取余(MOD)、幂乘(*)。,组合逻辑电路设计-加法
13、器设计,在Verilog HDL描述加法器时,使用+运算符比门级描述更简单。,组合逻辑电路设计-加法器设计,【例4.11】带进位输入和输出的无符号加法器的Verilog HDL描述module v_adders_2(A,B,CI,SUM);input 7:0 A;input 7:0 B;input CI;output 7:0 SUM;assign SUM=A+B+CI;endmodule,组合逻辑电路设计-减法器设计,减法是加法的反运算,采用Verilog HDL语言的-符号描述减法器,比用门级描述更简单。,组合逻辑电路设计-减法器设计,【例4.12】无符号8位带借位的减法器的Verilog
14、HDL描述module v_adders_8(A,B,BI,RES);input 7:0 A;input 7:0 B;input BI;output 7:0 RES;assign RES=A-B-BI;endmodule,组合逻辑电路设计-乘法器设计,用Verilog HDL语言实现乘法器时,乘积和符号应该为2的幂次方。PLD的优点就是在内部集成了乘法器的硬核,具体在IP核的设计中详细讨论。,组合逻辑电路设计-乘法器设计,【例4.13】乘法器的Verilog HDL描述module v_multipliers_1(A,B,RES);input 7:0 A;input 3:0 B;output
15、11:0 RES;assign RES=A*B;endmodule,组合逻辑电路设计-除法器设计,除法器可以用Verilog HDL语言的/符号实现,需要注意的是在使用/符号进行除法运算时,除数必须是常数,而且是2的整数幂。因为除法器的运行有这样的限制,实际上除法也可以用移位运算实现。,组合逻辑电路设计-除法器设计,【例4.14】除法器的Verilog HDL描述module v_divider_1(DI,DO);input 7:0 DI;output 7:0 DO;assign DO=DI/2;endmodule,组合逻辑电路设计-总线缓冲器设计,【例4.15】三态缓冲器的Verilog H
16、DL描述module v_three_st_1(T,I,O);input T,I;output reg O;always(T or I)beginif(T)O=I;else O=1bZ;endendmodule,组合逻辑电路设计-总线缓冲器设计,【例4.16】三态缓冲器的Verilog HDL描述 module v_three_st_2(T,I,O);input T,I;output O;assign O=(T)?I:1bZ;endmodule,组合逻辑电路设计-总线缓冲器设计,【例4.17】三态双向驱动器的Verilog HDL描述module bidir(tri_inout,out,in,
17、en,b);inout tri_inout;output out;input in,en,b;assign tri_inout=en?in:bz;assign out=tri_inout b;endmodule,第4章数字逻辑单元设计-时序逻辑电路设计,时序逻辑电路的输出状态不仅与输入变量的状态有关,而且还与系统原先的状态有关。时序电路最重要的特点是存在着记忆单元部分,时序电路主要包括:时钟和复位、基本触发器、计数器、移位寄存器等。,时序逻辑电路设计-时钟和复位设计,时序电路由时钟驱动,时序电路只有在时钟信号的边沿到来时,其状态才发生改变。在数字系统中,时序电路的时钟驱动部分一般包括时钟信号和
18、系统复位信号。根据时钟和复位的描述不同,时序电路一般分成同步复位电路和异步复位电路两类。,在时序电路中,不论采用什么方法描述时钟信号,必须指明时钟的边沿条件(clock edge condition)。时钟沿条件有上升沿和下降沿两种。时钟的上升沿条件可以用下面的语句描述:always(posedge clk)时钟的下降沿条件可以用下面的语句描述:always(negedge clk),时序逻辑电路设计-时钟和复位设计,根据复位和时钟信号的关系不同。时序电路分为同步复位电路和异步复位电路两大类。1、同步复位描述 同步复位指:当复位信号有效,并且在给定的时钟边沿有效时,时序电路才被复位。只有时钟信
19、号出现在always块的敏感信号中。,时序逻辑电路设计-时钟和复位设计,【例4-18】同步复位的Verilog HDL描述 module asyn_reset(other_signal,.,clk,rst);input clk,reset;/other_signal declaration always(posedge clk)if(rst)/statement1 else/statement2endmodule,时序逻辑电路设计-时钟和复位设计,2、异步复位描述 异步复位指:当复位信号有效时,时序电路就被复位。时钟信号和复位信号同时出现在always块的敏感信号中。,时序逻辑电路设计-时钟和
20、复位设计,【例4-19】异步复位的Verilog HDL描述module asyn_reset(other_signal,.,clk,rst);input clk,reset;/other signal declaration always(posedge rst or posedge clk)if(rst)/statement1 else/statement2endmodule,时序逻辑电路设计-时钟和复位设计,时序逻辑电路设计-触发器设计,触发器是时序逻辑电路的最基本单元,触发器具有“记忆”能力。根据沿触发、复位和置位方式的不同触发器可以有多种实现方式。在PLD中经常使用的触发器有D触发器
21、、JK触发器和T触发器等。,时序逻辑电路设计-触发器设计,【例4-20】带时钟使能和异步复位/置位的D触发器的Verilog HDL描述D触发器是数字电路中应用最多的一种时序电路。表4.1给出了带时钟使能和异步复位/置位的D触发器的真值表。,时序逻辑电路设计-触发器设计,module v_registers_5(C,D,CE,PRE,Q);input C,CE,PRE;input 3:0 D;output reg 3:0 Q;always(posedge C or posedge PRE)beginif(PRE)Q=4b1111;elseif(CE)Q=D;endendmodule,时序逻辑电
22、路设计-触发器设计,【例4-21】双数据率IOB的Verilog HDL描述module ddr_input(data_out,data_in,clk,rst);input data_in,clk,rst;output data_out;reg q1,q2;always(posedge clk,posedge rst)beginif(rst)q1=1b0;else q1=data_in;endalways(negedge clk,posedge rst)beginif(rst)q2=1b0;else q2=data_in;endassign data_out=q1 end module,时序逻
23、辑电路设计-触发器设计,【例4.22】带异步清0、异步置1 的JK 触发器的Verilog HDL描述module JK_FF(CLK,J,K,Q,RS,SET);input CLK,J,K,SET,RS;output Q;reg Q;always(posedge CLK or negedge RS or negedge SET)beginif(!RS)Q=1b0;else if(!SET)Q=1b1;else,case(J,K)2b00:Q=Q;2b01:Q=1b0;2b10:Q=1b1;2b11:Q=Q;default:Q=1bx;endcaseendendmodule,时序逻辑电路设计-
24、触发器设计,时序逻辑电路设计-锁存器设计,锁存器和触发器不同之处,就在于触发方式的不同,触发器是靠敏感信号的边沿出发,而锁存器是靠敏感信号的电平触发。,时序逻辑电路设计-锁存器设计,【例4.23】带清零信号锁存器的Verilog HDL描述module v_latches_2(G,D,CLR,Q);input G,D,CLR;output Q;reg Q;always(G or D or CLR)beginif(CLR)Q=1b0;else if(G)Q=D;endendmodule,时序逻辑电路设计-计数器设计,根据计数器的触发方式不同,计数器可以分为:同步计数器和异步计数器两种。当赋予计数
25、器更多的功能时,计数器的功能就非常复杂了。需要注意的是,计数器是常用的定时器的核心部分,当计数器输出控制信号时,计数器也就变成了定时器了。所以只要掌握了计数器的设计方法,就可以很容易的设计定时器。本书中主要介绍同步计数器的设计。同步计数器指在时钟脉冲(计数脉冲)的控制下,计数器做加法或减法的运算。,时序逻辑电路设计-计数器设计,【例4.24】可逆计数器的Verilog HDL描述module v_counters_6(C,CLR,UP_DOWN,Q);input C,CLR,UP_DOWN;output 3:0 Q;reg 3:0 tmp;always(posedge C or posedge
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 逻辑 单元 设计

链接地址:https://www.31ppt.com/p-4979981.html