您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > [第7章] 触发器,寄存器, 记数器和简单处理器
触发器,寄存器,记数器和简单处理器延边大学工学院电子信息通信学科许一男报警系统的控制结构2•时序电路:由于输入信号发生变化,从而使电路的状态随时间的进展发生一系列变化。传感器记忆电路警报reseton/off简单的记忆电路3A(0)B(1)•ifA=0;B=1(0)锁存器Latch4基本锁存器(BasicLatch)5resetsetQ或非门组成的记忆电路(NOR)或非门组成的锁存器(latch)6QR(reset)S(set)Qbar电路图SRQQbar000/11/0010110101100特征表(noChange)或非门组成的锁存器(VerilogHDL)7moduleNOR_LATCH(R,S,Q,Qbar);inputR,S;outputQ,Qbar;norU1(Q,R,Qbar);norU2(Qbar,S,Q);endmodule或非门组成的锁存器(latch)8RS10101010QaQbt1t2t3t4t5t6t7t8t9t10SRQQbar000/11/0010110101100时序仿真(1)9SRQQbar000/11/0010110101100moduleNOR_LATCH(R,S,Q,Qbar);inputR,S;outputQ,Qbar;norU1(Q,R,Qbar);norU2(Qbar,S,Q);endmodule{R,S}=2’b00震荡现象时序仿真(2)10{R,S}=2’b01没有震荡现象门控SR锁存器(clock控制输入信号)11QRSQbar电路图clockR’S’clockSRQ(t+1)0xxQ(t)100Q(t)10101101111xnochange门控SR锁存器(GatedSRLatch)12时序图(TimingDiagram)clockSRQ(t+1)0xxQ(t)100Q(t)10101101111xnochangeClk10R10S10Q10Q10特征表门控SR锁存器(时序仿真)13moduletest(clk,R,S,Q,Qbar);inputclk,R,S;outputQ,Qbar;regRp,Sp;andU0(Rp,clk,R);andU1(Sp,clk,S);norU2(Q,Rp,Qbar);norU3(Qbar,Sp,Q);endmoduleclockSRQ(t+1)0xxQ(t)100Q(t)10101101111xS=R=1,clk从1变成0=震荡现象(尽量避免R=S=1)门控SR锁存器(GatedSRLatch)14电路图SclkRQQ图形符号门控SR锁存器(GatedSRLatch)15电路图SclkRQQ图形符号门控SR锁存器(GatedSRLatch)16QaRSQb与非门实现电路图clockR’S’门控D锁存器(GatedDLatch)17QD(data)Q电路图clockSR门控D锁存器(GatedDLatch)18电路图clockDQ(t+1)0xQ(t)100111特征表门控D锁存器的VerilogHDL编程19电路图clockDQ(t+1)0xQ(t)100111特征表moduleD_latch(D,Clk,Q);inputD,Clk;outputregQ;always@(D,Clk)Q=D;endmodule门控D锁存器(GatedDLatch)20t1t2t3t4clkDQclockDQ(t+1)0xQ(t)100111特征表门控D锁存器(GatedDLatch)21电路图DclkQQ图形符号触发器Flip-Flop22主从D触发器(Master-SlaveDFlip-Flop)23电路图DclkQQ图形符号DclkQQDclkQQQmmasterslaveDQQ•通用的储存单元Qs主从D触发器(Master-SlaveDFlip-Flop)24图形符号DQQclkDQmQ=Qs25电路图DclkQQDclkQQDclkQQQmmasterslaveQsD触发器的VerilogHDL编程moduleflipflop(D,Clk,Qm,Qs);inputD,Clk;outputregQm,Qs;always@(posedgeClk)beginQm=D;Qs=Qm;endendmoduleD触发器的VerilogHDL编程26moduleflipflop(D,Clk,Q);inputD,Clk;outputregQ;always@(posedgeClk)Q=D;endmodule图形符号DQQ沿触发的D触发器(Edge-TriggerdDFlip-Flop)27图形符号DQQQQDclock123456P1P3P2P4有清零端和预置信号的D触发器(DFlip-FlopwithClearandPreset)28图形符号DQQQQClearPresetClearClearPresetClear沿触发的D触发器(Edge-TriggerdDFlip-Flop)29图形符号QQDclockPresetClearDQQClearPresetClearDQQClearDclkD触发器的VerilogHDL编程30DQQResetmoduleflipflop(D,Clk,Reset,Q);inputD,Clk,Reset;outputregQ;always@(negedgeReset,posedgeClk)beginif(!Reset)Q=0;elseQ=D;endendmoduleT触发器(TFlip-Flop)31DQQclkQQTTQ(t+1)0Q(t)1Q(t)特征表T触发器(TFlip-Flop)32图形符号DQQclkQQDQQTT触发器(TFlip-Flop)33DQQclkQQTTQ(t+1)0Q(t)1Q(t)特征表clkTQJK触发器(JKFlip-Flop)34DQQclkQQKJKQ(t+1)00Q(t)01010111Q(t)特征表JD=JQ+KQJK触发器(JKFlip-Flop)35DQQclkQQKJKQ(t+1)00Q(t)01010111Q(t)特征表J图形符号JQQKJK触发器的VerilogHDLmoduleJKff(CLK,J,K,Q);inputCLK,J,K;outputQ;regQ;always@(posedgeCLK)case({J,K})2'b01:Q=0;//J=0,K=1==Q=02'b10:Q=1;//J=1,K=0==Q=12'b11:Q=~Q;//J=1,K=1==Q=~QendcaseendmoduleJK触发器的VerilogHDL(reset,set功能)moduleJKff(CLK,J,K,Reset,Set,Q);inputCLK,J,K,Reset,Set;outputQ;regQ;always@(posedgeCLKorposedgeResetorposedgeSet)if(Reset)Q=1'b0;elseif(Set)Q=1'b1;elsecase({J,K})2'b01:Q=0;//J=0,K=1==Q=02'b10:Q=1;//J=1,K=0==Q=12'b11:Q=~Q;//J=1,K=1==Q=~Qendcaseendmodule寄存器Register38移位寄存器(ShiftRegister)39DQQDQQDQQDQQOUTQ4Q3Q2Q1InputClkInQ1Q2Q3Q4t010000t101000t210100t311010t411101t501110t600111t7000114位移位VerilogHDL编程40modulemuxdff(D0,D1,Sel,Clk,Q);inputD0,D1,Sel,Clk;outputregQ;always@(posedgeClk)if(!Sel)Q=D0;elseQ=D1;endmodulemoduleshift4(R,L,w,Clk,Q);input[3:0]R;inputL,w,Clk;outputwire[3:0]Q;muxdffstage3(w,R[3],L,Clk,Q[3]);muxdffstage2(Q[3],R[2],L,Clk,Q[2]);muxdffstage1(Q[2],R[1],L,Clk,Q[2]);muxdffstage0(Q[1],R[0],L,Clk,Q[1]);endmodule41moduleshift4(R,L,w,Clk,Q);input[3:0]R;inputL,w,Clk;outputwire[3:0]Q;muxdffstage3(w,R[3],L,Clk,Q[3]);muxdffstage2(Q[3],R[2],L,Clk,Q[2]);muxdffstage1(Q[2],R[1],L,Clk,Q[2]);muxdffstage0(Q[1],R[0],L,Clk,Q[1]);endmodulemoduleshift4(R,L,w,Clk,Q);input[3:0]R;inputL,w,Clk;outputwire[3:0]Q;always@(posedgeClk)if(L)Q=R;elsebeginQ[0]=Q[1];Q[1]=Q[2];Q[2]=Q[3];Q[3]=w;endendmodule4位移位VerilogHDL编程42moduleshiftn(R,L,w,Clk,Q);parametern=32;input[n-1:0]R;inputL,w,Clk;outputwire[n-1:0]Q;always@(posedgeClk)if(L)Q=R;elsebeginfor(k=0;kn-1;k=k+1)Q[k]=Q[k+1];Q[n-1]=w;endendmodulen位移位VerilogHDL编程4位并行存取的移位寄存器(4-bitParallelAccessShiftRegister)43DQQDQQDQQDQQQ0Q1Q2Q3并行输入Shift/load串行输入CLK计数器Counter44三位递增计数器(upcounter)45TQQTQQTQQ1ClkQ0Q1Q2clkQ0Q1Q24位递增计数器的VerilogHDL46Moduleupcount(Rst,Clk,E,Q);inputRst,Clk,E;outputreg[3:0]Q;always@(negedgeRst,posedgeClk))if(!Rst)Q=0;elseif(E)Q=Q+1’b1;//1endmodule三位递减计数器(downcounter)47TQQTQQTQQ1ClkQ0Q1Q2clkQ0Q1Q24位同步递增计数器(four-bitsynchronousup-counter)48T0=1T1=Q0T2=Q0Q1T3=Q0Q1Q2...Tn=Q0Q1…QnClockCycleQ2Q1Q0000010012010301141005101611071118000Q1changesQ2changes4位同步递增计数器(four-bitsynchronousup-counter)49TQQTQQTQQTQQQ3Q2Q1Q01ClkclkQ0Q1Q2Q3Count1234567891011121314150添加使能和清零能力的递增计数器50TQQTQQTQQTQQQ3Q2Q1Q0EnableClkClear
本文标题:[第7章] 触发器,寄存器, 记数器和简单处理器
链接地址:https://www.777doc.com/doc-3251605 .html