欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    西安电子科技大学verilogppt课件.ppt

    • 资源ID:1431823       资源大小:1.13MB        全文页数:114页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    西安电子科技大学verilogppt课件.ppt

    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;always (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+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; 2b10 : 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;input 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程序设计进行讲述,掌握基本逻辑电路的可综合性设计,为具有特定功能的复杂电路的设计打下基础。,4.2 Verilog HDL组合电路设计,组合电路的特点是:电路中任意时刻的稳态输出仅仅取决于该时刻的输入,而与电路原来的状态无关。组合电路的设计需要从以下几个方面考虑:所用的逻辑器件数目最少,器件的种类最少,且器件之间的连线最简单。这样的电路称“最小化”电路;其次,为了满足速度要求,应使级数尽量少,以减少门电路的延迟;电路的功耗应尽可能的小,工作时稳定可靠。描述组合逻辑电路有四种方式:结构描述、逻辑代数、真值表、抽象描述。,11/23/2022,5,Microelectronics School Xidian University,例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”语句对电路进行描述性设计,表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:逻辑代数方式对于组合电路的另一种表达方法是逻辑代数方法。主要思想是将真值表用卡诺图表示,然后化简电路,得出逻辑函数表达式。通过对卡诺图的化简,可以得到组合电路逻辑输出与输入之间的逻辑函数表达式:,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:结构描述方式,结构性描述方式是对电路最直接的表示,早期的数字电路设计通常采用的原理图设计实际上就是一种结构性描述方式。,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 School 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/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=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_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, 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为加法器位数,在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_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 数据比较器,数据比较器是用来对两个二进制数的大小进行比较,或检测是否相等的逻辑电路。数据比较器包含两个部分:一是比较两个数的大小;二是检测两个数是否一致。 例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/2022,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 if (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/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;endmodule,(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; 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个一般信号进行编码。这种编码器有一个特点:任何时刻只允许输入一个有效信号,不允许同时出现两个或两个以上的有效信号。,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=3b001; 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线优先编码器 二进制编码器电路要求任何时刻只有一个输入有效,若同时有两个或更多个输入信号有效时,将造成输出混乱状态,因此在使用过程中有一定局限性。为了克服对于输入信号的要求,一种方法是采用优先编码器。优先编码器允许多个输入信号同时有效,但它只按其中优先级别最高的有效输入信号编码,对级别低的输入信号不予理睬。,11/23/2022,27,Microelectronics School Xidian University,8线3线优先编码器功能表,11/23/2022,28,Microelectronics School Xidian University,功能表说明:=1时,电路处于禁制工作状态,此时无论8个输入为何种状态,三个输出端均为高电平, 和 也为高电平,编码器不工作。当 =0时,电路处于正常工作状态,允许 当中同时几个输入端为低电平,即同时有几路编码输入信号有效。在8个输入中,的优先权最高,的优先权最低。,表中出现的3种输出 =111的情况可以用 和 的不同状态来区别,即如果 =111且 =10,则表示电路处于工作状态而且有编码信号输入;如果 =111且 =01,则表示电路处于工作状态但没有输入编码信号。由于没有输入编码信号时 =0,因此 也可以称为“无编码输入”信号。,11/23/2022,29,Microelectronics School Xidian University,module mux8to3_p ( data_out, Ys, Yex, sel, data_in );output 2:0 data_out;output Ys, Yex;input 7:0 data_in;input sel;reg 2:0 data_out;reg Ys,Yex;always (data_in or sel) if (sel) data_out, Ys, Yex =3b111,1b1,1b1; else begin casex (data_in) 8b0? : data_out, Ys, Yex =3b000,1b1,1b0; 8b10? : data_out, Ys, Yex =3b001,1b1,1b0; 8b110? : data_out, Ys, Yex =3b010,1b1,1b0; 8b1110? : data_out, Ys, Yex=3b011,1b1,1b0; 8b11110? : data_out, Ys, Yex=3b100,1b1,1b0; 8b111110? : data_out, Ys, Yex=3b101,1b1,1b0; 8b1111110? : data_out, Ys, Yex=3b110,1b1,1b0; 8b11111110 : data_out, Ys, Yex=3b111,1b1,1b0; 8b11111111 : data_out, Ys, Yex=3b111,1b0,1b1; endcase endendmodule,例4.2-8: 二进制转化十进制8421BCD编码器将十进制数0、1、2、3、4、5、6、7、8、9等十个信号编成二进制代码的电路叫做二进制转化十进制编码器。它的输入是代表09这10个数子的状态信息,有效信号为1(即某信号为1时,则表示要对它进行编码),输出是相应的BCD码,因此也称10线4线编码器。它和二进制编码器特点一样,任何时刻只允许输入一个有效信号。,11/23/2022,30,Microelectronics School Xidian University,8421 BCD码编码表,11/23/2022,31,Microelectronics School Xidian University,module BCD8421 ( data_out, data_in );output 3:0 data_out;input 8:0 data_in;reg 3:0 data_out;always (data_in) case (data_in) 9b000000000 : data_out=4b0000; 9b000000001 : data_out=4b0001; 9b000000010 : data_out=4b0010; 9b000000100 : data_out=4b0011; 9b000001000 : data_out=4b0100; 9b000010000 : data_out=4b0101; 9b000100000 : data_out=4b0110; 9b001000000 : data_out=4b0111; 9b010000000 : data_out=4b1000; 9b100000000 : data_out=4b1001; default : data_out=4b0000; endcase endmodule,例4.2-9:8421BCD十进制余3编码器和8421BCD编码一样,余3码是也一种BCD编码,这种编码的特点是,余3码作十进制加法运算的时候,若2数之和是10,正好等于二进制数的16,于是便从高位自动产生进位信号,因此可以使用余3码简化计算。余3码是8421BCD码加3,并将其转换为等价二进制数就得到了该十进制数的余3码。余3码编码表:,11/23/2022,32,Microelectronics School Xidian University,11/23/2022,33,Microelectronics School Xidian University,module code_change (B_out,B_in);output 3:0 B_out;input 3:0 B_in;assign B_out=B_in+2b11;endmodule,4.2.5数字译码器译码是编码的逆过程,它将二进制代码所表示的信息翻译成相应的状态信息。实现译码功能的电路成为译码器。,11/23/2022,34,Microelectronics School Xidian University,图为2线4线译码器的逻辑电路及逻辑符号。图中A1,A0为地址输入端,A1为高位。 、 、 、 为状态信号输出端,非号表示低点平有效。E为使能端(或称选通控制端),低电平有效。当E=0时,允许译码器工作, 中只允许一个为有效电平输出;当E=1时,禁制译码器工作,所有输出均为高电平。一般使能端有两个用途:一是可以引入选通脉冲,以抑制冒险脉冲的发生;二是可以用来扩展输入变量数(功能扩展)。,2线4线译码器功能表从表还可以看出,当E=0时,2线4线译码器的输出函数分别为: , , , ,如果用表示i端的输出,mi表示输入地址变量A1,A0的一个最小项,则输出函数可写成 (i=0,1,2,3)可见,译码器的每一个输出函数对应输入变量的一组取值,当使能端有效(E=0)时,它正好是输入变量最小项的非。因此变量译码器也称最小项发生器。,11/23/2022,35,Microelectronics School Xidian University,11/23/2022,36,Microelectronics School Xidian University,module decode_2to4 ( Y, E, A );output 3:0 Y;input 1:0 A;input E;assign Y0=(Eendmodule,也可以采用抽象描述方式进行设计,Verilog HDL程序代码是:module decode_2to4 ( Y, E, A );output 3:0 Y;input 1:0 A;input E;reg 3:0 Y;always (E or A)case (E,A) 3b1? : Y=4b0000; 3b000 : Y=4b0001; 3b001 : Y=4b0010; 3b010 : Y=4b0100; 3b011 : Y=4b1000; default : Y=4b0000;endcase endmodule,4.2.6 奇偶校验器奇偶校验器的功能是检测数据中包含“1”的个数是奇数还是偶数。在计算机和一些数字通信系统中,常用奇偶校验器来检查数据传输和数码记录中是否存在错误。奇偶校验包含两种方式:奇校验和偶校验。奇校验保证传输数据和校验位中“1”的总数为奇数。如果数据中包含奇数个“1”,则校验位置“0”,如果数据中包含偶数个“1”,则校验位置“1”。偶校验保证传输数据和校验位中“1”的总数为偶数。如果数据中包含奇数个“1”,则校验位置“1”,如果数据中包含偶数个“1”,则校验位置“0”。奇偶校验只能检测部分传输错误,它不能确定错误发生在哪位或哪几位,所以不能进行错误校正。当数据发生错误时只能重新发送数据。,11/23/2022,37,Microelectronics School Xidian University,例4.2-10:8bits奇偶校验器8bits奇偶校验器的原理图如图所示:图中,校验器的输入b0b7由7bits数据和1bit校验位组成。FOD为判奇输出,FEV为判偶输出。当采用奇校验时,FOD=1,FEV=0;当采用偶校验时,FOD=0,FEV=1。,11/23/2022,38,Microelectronics School Xidian University,11/23/2022,39,Microelectronics School Xidian University,(a)结构性描述代码:module checker (Fod,Fev,b);output Fod,Fev;input 7:0 b;wire w1,w2,w3,w4,w5,w6;xor U1 (w1,b0,b1);xor U2 (w2,b2,b3);xor U3 (w3,b4,b5);xor U4 (w4,b6,b7);xor U5 (w5,w1,w2);xor U6 (w6,w3,w4);xor U7 (Fod,w5,w6);not U8 (Fev,Fod);endmodule,(b)采用抽象性描述代码:module checker (Fod,Fev,b);output Fod,Fev;input 7:0 b;assign Fod=b;assign Fev=Fod;endmodule,4.3 时序电路设计,与组合逻辑电路不同,时序逻辑电路的输出不仅与当前时刻输入变量的取值有关,而且与电路的原状态,即与过去的输入情况有关。时序逻辑电路有两个特点:(1)时序逻辑电路包括组合逻辑电路和存储电路两部分,存储电路具有记忆功能,通常由触发器组成;(2)存储电路的状态反馈到组合逻辑电路输入端,与外部输入信号共同决定组合逻辑电路的输出。,11/23/2022,40,Microelectronics School Xidian University,11/23/2022,41,Microelectronics School Xidian University,同步时序电路设计流程:,例4.3-1:用Verilog HDL设计一个“111”的序列检测器,当输入三个或三个以上“1”时,电路输出为1,否则为0。(1)状态转移图方法S0:初始状态,表示电路还没有收到一个有效的1。S1:表示电路收到了一个1。S2:表示电路收到了连续两个1。S3:表示电路收到了连续三个1。,11/23/2022,42,Microelectronics School Xidian University,11/23/2022,43,Microelectronics School Xidian University,module checker (z,x,clk);parameter s0=2b00,s1=2b01,s2=2b11,s3=2b10;output z;input x,clk;reg 1:0 state,next_state;reg z;always (posedge clk) case (state) s0 : if (x) begin next_state=s1; z=0; end else begin next_state=s0; z=0; end s1 : if (x) begin next_state=s2; z=0; end else,begin next_state=s0; z=0; ends2 : if (x) begin next_state=s3; z=1; end else begin next_state=s0; z=0; end s3 : if (x) begin next_state=s3; z=1; end else begin next_state=s0; z=0; end endcasealways (posedge clk) state=next_state; endmodule,(2)基于状态化简的结构性描述方法对状态转移图化简,仅剩三个状态,需要两位二进制表示,即需要两个D触发器储存状态。设Q1表示高位寄存器的输出,Q0表示地位寄存器的输出。将状态的跳转以及输出Z用卡诺图表的形式示出,如下:,11/23/2022,44,Microelectronics School Xidian University,由卡诺图可以得出电路的输出方程和状态方程:,11/23/2022,45,Microelectronics School Xidian University,Q1n+1=Q0,Q0n+1=X,Z=Q1Q0X,/序列检测器模块module checker (z,x,clk);output z;input x,clk;wire w1,w2;DFF U1 (.clk(clk),.D(x),.Q(w1); DFF U2 (.clk(clk),.D(w1),.Q(w2);assign z=x endmodule,/D触发器模块 module DFF (Q,D,clk); output Q; input D,clk; reg Q; always (posedge clk) Q=D; endmodule,(3)Verilog HDL 抽象性描述方法在Verilog HDL中还可以对电路进行抽象的描述。实现序列“111”的检测,可以使用一个三位的移位寄存器,将输出X作为移位寄存器的输出,当寄存器中为111时,输出Z为1。,11/23/2022,46,Microelectronics School Xidian University,Verilog HDL程序代码是: module checker (z,x,clk); output z; input x,clk; reg 2:0 q; reg z; always (posedge clk) q=q1:0,x; always (posedge clk) if (q=3b111)z=1; else z=0; endmodule,4.3.1 触发器,触发器是时序电路的最基本电路单元,主要有D触发器、JK触发器、T触发器和RS触发器等。根据功能要求的不同,触发器还具有置位、复位、使能、选择等功能。例4.3-2: 最简D触发器输入端的数据D在时钟clk的上升沿被送入触发器,使得Q=D。其特征方程可描述为Qn+1=Dn。,11/23/2022,47,Microelectronics School Xidian University,Verilog HDL程序代码是:module DFF ( q, clk, data_in );output q;input clk, data_in;reg q;always (posedge clk)q=data_in;endmodule,例4.3-3: 带复位端D触发器在D触发器的实际使用中,有时需要一个复位端(也称清零端)。,11/23/2022,48,Microelectronics School Xidian University,同步清0的D触发器module DFF_rst ( q, clk, rst_n, data_in );output q;input clk, rst_n, data_in;reg q;always (posedge clk) if (!rst_n) q=0; else q=data_in;endmodule,异步清0的D触发器module DFF_srst ( q, clk, rst_n, data_in, );output q;input clk, rst_n, data_in;reg q;always (posedge clk or rst_n)if (!rst_n) q=0;else q=data_in;endmodule,例4.3-4: 复杂功能D触发器同步清零、置1和异步清零、置1共同在一个触发器上的复杂D触发器例子。,11/23/2022,49,Microelectronics School Xidian University,module DFF_1 ( q, qb, clk, rst_n1, set1, rst_n2, set2, data_in, );output q,qb;input clk, rst_n1,rst_n2, set1,set2, data_in;reg q,qb; always (posedge clk) if (!rst_n1) q=0; else q=data_in;always (posedge clk or rst_n2)if (!rst_n2) q=0;else q=data_in;endmodulemodule DFF_1 ( q, qb, clk, rst_n1, set1, rst_n2, set2, data_in, );output q,qb;input clk, rst_n1,rst_n2, set1,set2, data_in;reg q,qb; always (posedge clk) if (!rst_n1) q=0; else q=data_in;always (posedge clk or rst_n2)if (!rst_n2) q=0;else q=data_in;endmodule,例4.3-5: T触发器T触发器的逻辑符号如图4.3

    注意事项

    本文(西安电子科技大学verilogppt课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开