数字电路与逻辑设计 课件 7-时序逻辑电路_第1页
数字电路与逻辑设计 课件 7-时序逻辑电路_第2页
数字电路与逻辑设计 课件 7-时序逻辑电路_第3页
数字电路与逻辑设计 课件 7-时序逻辑电路_第4页
数字电路与逻辑设计 课件 7-时序逻辑电路_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

时序逻辑电路1片上微控制系统原理与项目设计第七讲授课内容触发器寄存器同步时序电路分析同步时序电路设计时序电路例子护士呼叫系统2呼叫按钮:指示灯亮松开按钮后保持灯亮清除按钮:指示灯灭能够用组合逻辑方法实现么?QCallCancelaaBitStorageBluelightCallbuttonCancelbutton1.Callbuttonpressed–lightturnsonBitStorageBluelightCallbuttonCancelbutton2.Callbuttonreleased–lightstaysonBitStorageBluelightCallbuttonCancelbutton3.Cancelbuttonpressed–lightturnsoff?尝试1-反馈电路使用一个逻辑门,并将输出反馈到输入。可以完成需求么?QSt101010QtS0t1QS00t1QS11t1QS11t0QS1a否:一旦Q变为1(S=1),Q永远保持1–没有任何S的输入值可以让Q输出0尝试2-基本RS触发器蝶形交叉反馈的电路,可以完成需求么?可以!怎么想到的...001R=1S=0tQ1010RS10t10QQS(set)SRlatchR(reset)100101tQS=0R=0tQS=1R=0011tQR=0S=010100011X0Recall…a应用实例使用基本RS锁存器实现护士呼叫系统2Call=1:Q置1Q保持1Cancel=1:复位,Q置0如果RS同时按下?如果同时按下了“Call”和“Cancel”按钮

又被同时释放。SR由“11”变为“00”RSQCallbuttonBluelightCancelbuttonBitStorageBluelightCallbuttonCancelbutton基本RS触发器存在的问题如果S=1R=1结果?Q可能会振荡.然而,由于一条路径的时延可能比另一条稍微长一点,这时Q会被随机至0至1–但是我们无法得知是哪个.两个与非门构成的基本RS触发器触发器的状态表中,输出端的现态为输入量,输出端的次态为输出量,状态表表明次态不仅与输入有关,还与现态有关。相同的RD和SD输入其输出Q不一定相同。基础RS触发器的讨论问题不仅仅是一个用户同时按下两个按钮即使SR输入来自从未同时设置S=1和R=1的电路,也可能发生由于不同路径的不同延迟从X到R的路径比到S的路径长,导致SR=11持续很短的时间–可能足够长,会导致振荡RYXSSRlatchQArbitrarycircuit钟控SR锁存器添加使能输入“C”,如图所示仅当C=0时,才允许S和R更改只有在S和R足够稳定之后,才将C更改为1当C变为1时,稳定的S和R值通过两个与门传递到SR锁存器的S1R1输入。R1S1SCRLevel-sensitiveSRlatchQThoughSR=11briefly......S1R1never=11SCQ’QRLevel-sensitiveSRlatchsymbolR1S1SXYCClkRLevel-sensitiveSRlatchQ010101010SRCS1R11a钟控D触发器SR锁存器需要仔细设计,以确保SR=11永远不会发生D型触发器减轻了设计人员的负担插入非门确保R始终与S相反RSDCDlatchQDQ’QCDlatchsymbolR1S1SCRLevel-sensitiveSRlatchQmoduleDFF(CP,D,Q);inputCP,D;outputregQ;always@(*)if(CP)Q<=D;//特征方程Qn+1=Dendmodule钟控D触发器的讨论D锁存器仍然有问题(SR锁存器也是如此)当C=1时,信号将通过多少个锁存器?取决于多长时间C=1Clk_A——信号可以通过多个锁存器Clk_B——信号可以通过更少的锁存器很难选择长度合适的C我们可以设计只在时钟信号的上升沿存储一个值的位存储吗?Clkrisingedges边缘D触发器Flip-flop触发器:存储在时钟沿而不是电平有效时存储一种设计——“主仆”触发器两个锁存器第一个锁存器的输出进入第二个锁存器的输入,第一个锁存器具有反相时钟信号“主锁存器”在C=0时加载,从方在C=1时加载当C从0变为1时,主锁存器被禁用,从锁存器加载C改变之前D处的值——即C上升期间D处的值ClkrisingedgesNote:Hundredsofdifferentflip-flopdesignsexistDlatchmasterDlatchservantDDmDsCsQmQs’QsQQ’CmClkDflip-flopCDQ’QDFFsymbol比特存储模块D触发器是更好的比特存储模块。Dflip-flopDlatchmasterDlatchservantDmQmCmDsDClkQs’CsQsQ’QSRDQCDlatch特点:只加载时钟上升沿出现的D值,因此在同一时钟周期内,值不能传播到其他触发器。权衡:在内部使用比D锁存器更多的门,并且需要比SR更多的外部门——但现在门数不再是问题。特征:如果D在C=1之前和之前稳定,则SR不能为11。

问题:C=1太久会通过太多的锁存器传播新值;太短可能不会导致该位被存储。S1R1SQCRLevel-sensitiveSRlatch特点:S和R只在C=1时有效。我们可以设计外部电路,因此当C=1时,SR=11永远不会发生。问题:避免SR=11仍是一种负担。R(reset)S(set)QSRlatch特点:S=1将Q设置为1,R=1将Q重置为0。问题:SR=11产生未定义的Q。.实验:采用DFF实现护士呼叫系统2?(1)异步复位/置位D触发器moduleDFF(CP,Rd,Sd,D,Q);inputCP,Rd,Sd,D;outputregQ;always@(posedgeCPornegedgeRdornegedgeSd)if(!Rd)//低电平有效Q<=1'd0;//清零elseif(!Sd)//低电平有效Q<=1'd1;//置位elseQ<=D;endmodule(2)同步复位/置位D触发器moduleDFF(CP,Rd,Sd,D,Q);inputCP,Rd,Sd,D;outputregQ;always@(posedgeCP)Q<=!Rd?0:!Sd?1:D。endmodule触发器的应用【例1】二分频电路:电路有一个输入时钟和一个输出时钟,输出时钟的周期是输入时钟的二倍。采用D触发器进行电路设计并给出HDL代码。moduleFDiv2(NRST,CP,F);inputCP,NRST;outputregF;always@(posedgeCPornegedgeNRST)F<=!NRST?0:~F;endmodule【例2】两个带异步清零和置位端的上升沿D触发器构成图4-13所示的电路,试画出波形图,说明功能,并给出Verilog描述。modulePulseGen(NRST,X,Y,F);inputNRST,X,Y;outputregF;regrd0;always@(posedgeXornegedgeNRSTornegedgerd0)if(!NRST|!rd0)F<=0;elseF<=1;always@(posedgeYornegedgeF)if(!F)rd0<=1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论