文档详情

Verilog HDL数字逻辑电路设计方法 .ppt

发布:2024-11-11约1.94万字共83页下载文档
文本预览下载声明

**modulechecker(z,x,clk);parameters0=2b00,s1=2b01,s2=2b11,s3=2b10;outputz;inputx,clk;reg[1:0]state,next_state;regz;always@(stateorx)case(state)s0:if(x)beginnext_state=s1;z=0;endelsebeginnext_state=s0;z=0;ends1:if(x)beginnext_state=s2;z=0;endelsebeginnext_state=s0;z=0;ends2:if(x)beginnext_state=s3;z=1;endelsebeginnext_state=s0;z=0;ends3:if(x)beginnext_state=s3;z=1;endelsebeginnext_state=s0;z=0;endendcasealways@(posedgeclk) state=next_state;endmodule(2)基于状态化简的结构性描述方法 对状态转移图化简,仅剩三个状态,需要两位二进制表示,即需要两个D触发器储存状态。设Q1表示高位寄存器的输出,Q0表示地位寄存器的输出。将状态的跳转以及输出Z用卡诺图表的形式示出,如下:**由卡诺图可以得出电路的输出方程和状态方程:**Q1n+1=Q0nQ0n+1=XZ=Q1nQ0nX//序列检测器模块modulechecker(z,x,clk);outputz;inputx,clk;wirew1,w2;DFFU1(.clk(clk),.D(x),.Q(w1));DFFU2(.clk(clk),.D(w1),.Q(w2));assignz=xw1w2;endmodule//D触发器模块moduleDFF(Q,D,clk);outputQ;inputD,clk;regQ; always@(posedgeclk)Q=D;endmodule(3)VerilogHDL抽象性描述方法在VerilogHDL中还可以对电路进行抽象的描述。实现序列“111”的检测,可以使用一个三位的移位寄存器,将输出X作为移位寄存器的输出,当寄存器中为111时,输出Z为1。**VerilogHDL程序代码是:modulechecker(z,x,clk);outputz;inputx,clk;reg[2:0]q;regz; always@(posedgeclk) q={q[1:0],x}; always@(posedgeclk) if(q==3b111) z=1; else z=0;endmodule4.3.1触发器触发器是时序电路的最基本电路单元,主要有D触发器、JK触发器、T触发器和RS触发器等。根据功能要求的不同,触发器还具有置位、复位、使能、选择等功能。例4.3-2:最简D触发器输入端的数据D在时钟clk的上升沿被送入触发器,使得Q=D。其特征方程可描述为Qn+1=Dn。**clkDQnQn+10X000X111X001X11↑000↑010↑101↑111VerilogHDL程序代码是:module DFF(q,clk,data_in);outputq;inputclk,data_in;reg

显示全部
相似文档