版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
时序逻辑电路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;elserd0<=0;endmodule作业仿真实验:仿真触发器应用例1、例2八分频电路:电路有一个输入时钟和一个输出时钟,并可异步复位,输出时钟的周期是输入时钟的8倍。采用D触发器进行电路设计并给出HDL代码。某电路有一个输入X,该输入连接到D触发器的输入。使用若干D触发器,使电路的输出Y等于X的值,但延迟3个时钟周期(如图所示)。试给出电路硬件语言描述。时序逻辑电路2片上微控制系统原理与项目设计第八讲授课内容触发器寄存器同步时序电路分析同步时序电路设计比特存储模块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?寄存器存储信息1bit:DFFMbits:采用多个D触发器保存一组二进制信息的电路称为寄存器,也称为数据寄存器。moduleReg4hl(CP,D,Q);inputCP;input[3:0]D;outputreg[3:0]Q;always@(*)if(CP)Q<=D;endmodulemoduleReg4pe(CP,D,Q);inputCP;input[3:0]D;outputreg[3:0]Q;always@(posedgeCP)Q<=D;endmodule具有载入功能的寄存器寄存器可以用来存储信息—状态有些场景下,希望仅仅时我们让他存储时才存储。DQDQDQDQI2I3Q2Q3Q1Q0I1I0clk4-bitregisterload应用举例1秤有两个显示屏当前重量减轻重量有助于将当前项目与上一个项目进行比较使用寄存器存储重量按下按钮会使当前重量存储在寄存器中寄存器内容始终显示为“已保存的重量”,即使出现新的当前重量也是如此ScaleSavedweightWeightSamplerPresentweightclkbSaveI3I2I1I0Q3Q2Q1Q0load3pounds001100113pounds00102pounds1a应用实例2有些汽车在后视镜上方设有显示屏。驾驶员可以按下按钮,在显示外部温度(T),汽车的平均里程数(A),油耗(I)和剩余里程数(M)之间进行选择。方案1:只使用数据选择器需要32根线方案2:使用寄存器需要11根线Cd0d1d2d3ei0i0i1i2i3a0a1loadi12×488888Dd8xys1s08-bit4×1loadloadloadloadreg0reg1reg2reg3TAIM01000010101100001010Loadedonclockedge移位寄存器若干个D触发器级联构成的D触发器组称为移位寄存器。数据从S输入,每个时钟节拍接收一位保存在D触发器内。moduleShiftRegm(CP,S,Q);inputCP,S;outputreg[m-1:0]Q;always@(posedgeCP)Q<={Q[m-2:0],S};endmodule串行输入端Ri的值通过1个时钟后从Q3端输出,2个时钟后从Q2端输出,3个时钟后从Q1端输出,4个时钟后从Q0端输出。因此,移位寄存器实质就是延时器,常用于数字信号处理电路中。若将D触发器的数据输入端通过2-1MUX来连接前级触发器的状态和并行输入,则构成可预置移位寄存器。modulePLSReg4(CP,Ri,LD,D,Q);inputCP,Ri,LD;input[3:0]D;outputreg[3:0]Q;always@(posedgeCP)Q<=LD?D:{Ri,Q[3:1]}endmodule应用实例2(续)方案1:只使用数据选择器需要32根线方案2:使用寄存器需要11根线方案3:使用移位寄存器4根线11wirescd0d1d2d3ei0i0s1s0xyi1i2i3a0a1shifti12×48888Dd4×1shrshr_inshrshr_inshrshr_inshrshr_inreg0reg1reg2reg3TAIM注意:1bit,而不是之前的8bits时序逻辑电路3片上微控制系统原理与项目设计第九讲授课内容触发器寄存器同步时序电路分析同步时序电路设计计数器上节课——寄存器存储信息1bit:DFFMbits:采用多个D触发器保存一组二进制信息的电路称为寄存器,也称为数据寄存器。上节课——移位寄存器若干个D触发器级联构成的D触发器组称为移位寄存器。数据从S输入,每个时钟节拍接收一位保存在D触发器内。moduleShiftRegm(CP,S,Q);inputCP,S;outputreg[m-1:0]Q;always@(posedgeCP)Q<={Q[m-2:0],S};endmodule同步时序电路的分析将电路转换为状态图,并指出功能,称为对电路进行分析。电路的分析不仅有助于更好地理解时序电路设计,而且还可用于了解以前设计的电路的行为,由别的设计人员创建的电路检查我们设计的电路是否具有正确的行为触发器描述的电路同步时序电路的分析过程一般按以下步骤进行:①根据逻辑图求出时序电路的输出方程和各触发器的激励方程;②根据已求出的激励方程和所用触发器的特征方程获得时序电路的状态方程;③根据时序电路的状态方程和输出方程建立状态表;④根据状态表画出状态图;⑤确定初始状态和输入波形,根据状态表画出波形图;⑥分析电路的逻辑功能。【例】有三个LED控制电路图如图所示,分析该同步时序电路的逻辑功能。①激励方程②状态方程⑥逻辑功能分析
③列出状态表④列出状态图⑤画波形图三个LED轮流发光,发光周期为3T,这种轮流点亮的灯也称为跑马灯。脉冲分配器。具有自启动能力。HDL描述的电路同步时序电路的分析过程一般按以下步骤进行:①根据语句找出时序电路的输入、输出和状态;②分析语句的含义,初步给出部分功能;③列出状态图或状态表;④分析电路的逻辑功能。【例】控制电路的HDL代码如下,分析该逻辑电路的功能。moduleLedCtrl(CP,Z);inputCP;outputreg[2:0]Z;reg[1:0]Q;always@(posedgeCP)Q<=Q+1;always@(Q) case(Q)2'b00:Z<=3'b110;2'b01,2'b11:Z<=3'b101;2'b10:Z<=3'b011;endmodule①确定输入、输出和状态。CP上升沿有效,Z为3位输出,Q为二位状态量,最多4个状态。②语句分析
③状态图课堂练习试分析下列电路clkStateregisteryzFSMoutputsFSMinputsn0n1s0s1x同步时序电路的设计状态图是同步时序电路设计的前提。(1)采用D触发器设计逻辑电路时①根据状态图画出状态表,同时对无关状态进行处理以保证系统的自启动性;②根据状态表列出状态方程和输出方程的最小项表达式,逻辑变量为X和Q的组合;③列出激励方程,并画出逻辑电路图。(2)采用HDL描述时①根据状态图画出状态表,同时对无关状态进行处理以保证系统的自启动性;
②直接采用always和case/if语句直接对状态和输出进行赋值。外科医生通过按下按钮激活激光。假设激光应该保持正好30ns。假设系统的时钟周期为10ns,因此3个时钟周期持续30ns。假设按钮中的b与时钟同步,并在正好1个时钟周期内保持高电平。?如何实现?
试试使用3个DFF?Controllerxbclklaserpatient这个系统不够好!为什么?如果外科医生在三个周期之内第二次按下按钮会发生什么?可能导致激光停留时间过长。状态图定义状态和状态之间的转换示例:让x在每个时钟周期更改其切换(0到1和1到0)两种状态:“关闭”(x=0)和“打开”(x=1)在时钟上升沿从关闭转换到开,或从开转换到关没有起始状态的箭头指向初始状态(电路首次启动时)Output:xOnOffx=0x=1clk^clk^状态图的例子——0111序列发生器生成
0,1,1,1,0,1,1,1,...序列每个值代表一个时钟周期将其描述为状态图四种状态:关闭、打开1、打开2和打开3时钟上升沿过渡到下一个状态OffOffOn1On1On2On2On3On3OffclkxStateOutputs:Outputs:xOn1OffOn2On3clk^clk^clk^x=1x=1x=0x=1clk^四个状态
在b为0(b')时处于“关闭”状态等待
输出x=0
当b为1(和上升时钟边沿)时,转换到On1 输出x=1
在接下来的两个时钟边沿,过渡到On2,然后过渡到On3,这也设置x=1On2On1On3Offclk^clk^x=1x=1x=1x=0clk^b’*clk^b*clk^Input:b;Output:xOn2On1On3Offx=1x=1x=1x=0b’clk^clk^^clk*clk^*clk^bInputs:b;Outputs:xOn2On1On3Offx=1x=1x=1x=0b’bInput:b;Output:x练习【例】某逻辑电路的状态转移如图,试采用D触发器和HDL等两种方式描述电路。采用D触发器描述①列出状态表②列状态方程③列激励方程,并画出逻辑电路采用HDL描述①列出状态表②HDL描述为moduleT4_5_3(CP,Q);inputCP;outputreg[2:0]Q;always@(posedgeCP)case(Q)3'b000:Q<=3'b001;3'b001:Q<=3'b011;3'b011:Q<=3'b101;3'b101:Q<=3'b110;default:Q<=3'b000;//无关项强制转移到0000endcaseendmodulemoduletest;regCP;wire[2:0]Q;T4_5_3T_4_5_3a(.CP(CP),.Q(Q));always#100CP=~CP;initialbeginCP=0;#2100;$finish;endendmodule本周作业完成P12的电路分析完成P20的状态图实现P23页的HDL例子的仿真。时序逻辑电路4数字逻辑电路与片上系统第十讲授课内容触发器寄存器同步时序电路分析同步时序电路设计计数器应用实例多功能的家用数字定时器。为一款厨房用定时器设计时序控制逻辑。该定时器需要具备倒计时、回滚计时、以单个按钮控制启动和停止的功能。具体要求如下:(1)设定倒计时值:初始时通过外部输入设定倒计时值(4位二进制数)。定时器在启动(S)信号变为高电平时开始倒计时,在计时结束时输出信号Z为高电平一个时钟周期。用VerilogHDL编写模块。(2)回滚功能:倒计时结束后,定时器自动回滚到初始设定的倒计时值,准备下一次启动。试用VerilogHDL编写模块。(3)系统综合设计:将上述各模快组合为完整系统,并仿真验证功能。计数器计数器主要功能是累计输入脉冲的个数。它是一个周期性的时序电路,其中含有一个闭合环。闭合环循环一次所需要的时钟个数M称为模。模M加法计数器模M加法计数器采用n个触发器,计数状态Q值从0加至M-1,计到M-1时,进位标志输出Z为1。moduleCntIM(CLK,Q,Z);parameterM=,n=;inputCLK;outputZ;outputreg[n-1:0]Q;assignZ=Q==M–1;always@(posedgeCLK)Q<=Z?n'd0:Q+n'd1;endmodule模M减法计数器模M加法计数器采用n个触发器,计数状态Q值从M-1减至0,计到0时,借位标志输出Z为1。作业:写出模1000减法计数器的HDL描述并仿真【例】设计一个模12的加法计数器,计至最后一个数时产生高电平,其它数时为低电平。给出该计数器的HDL代码及仿真波形。assignZ=Q==4'd11;always@(posedgeCLK)Q<=Z?4'd0:Q+4'd1;MSI器件构建常用器件74LS161是模24(四位二进制)同步计数器具有计数、保持、同步置数、异步清零等功能。异步清零法当状态值为M时产生清零信号,使状态值变为0。同步置数法同步置数法可以采用进位置数和比较置数两种方式。①比较置零法②进位置数法③比较置数法控制器对指令代码进行译码生成控制信号;输出数据路径所需的控制信号,寄存器组选择出相应寄存器值;ALU对这些数据运算;锁存运算结果至寄存器或读写数据存储器。控制器运行可以采用如图状态机,共分为五个状态:指令读取(取指)、指令译码(译指)、操作数选取(取数)、数据运算(执行)、数据保存(回写)。控制器周而复始地按这个顺序执行。讨论:控制器的设计思路常用时序电路设计-分频器分频电路输入频率为FHz的时钟脉冲,M分频后输出频率为F/MHz的时钟脉冲。分频器采用计数器来实现分频。【例】设计占空比为2:1的六分频器。分频器共有6个状态,即0~5。占空比为2:1,即4个状态输出高电平,2个状态输出低电平。always@(posedgeCP) Q<=Q<3’d5?Q+1:3'd0;assignZ=Q<=3'd3;常用时序电路设计-序列发生器序列信号发生器是重复产生一定长度的循环序列的电路,输出序列由n位二进制码重复构成,n为序列长度。【例】设计产生1101000101序列码的计数型序列信号发生器,给出HDL代码。moduleT4_7_2(CP,Z);inputCP;outputregZ;reg[3:0]S;always@(posedgeCP)S<=S<4'd9?S+4'd1:0;always@(S)case(S)4'd0,4'd1,4'd3,4'd7,4'd9:Z<=1;default:Z<=0;endcaseendmodule【例】设计一个能同时产生两组序列码的双序列码产生器,要求两组代码分别是:Z1=1101,Z2=01011,给出逻辑电路的HDL代码。采用统一的计数器来同时产生这两个序列,计数器模值取两者长度的最小公倍数M=20,状态值从0~19。moduleT4_7_3(CP,Z1,Z2);inputCP;outputregZ1,Z2;reg[4:0]
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年健身会员俱乐部合约
- 2025年代理经营费用协议
- 2025年企业员工补偿合同
- 2025年版墓地陵园墓地使用权转让合同4篇
- 二零二五年度环保装备制造股东个人股权转让与绿色制造协议3篇
- 2025版高端木屋建造工程承包合同书4篇
- 2025年食堂蔬菜粮油品质认证与采购合同范本3篇
- 二零二五年度农业项目财务补贴代理协议3篇
- 2025版地下空间施工补充协议(含抗震减灾要求)3篇
- 2025年度木材供应链金融服务合作协议4篇
- 劳务协议范本模板
- 人教版(2024)数学七年级上册期末测试卷(含答案)
- 2024年国家保密培训
- 2024年公务员职务任命书3篇
- CFM56-3发动机构造课件
- 会议读书交流分享汇报课件-《杀死一只知更鸟》
- 2025届抚州市高一上数学期末综合测试试题含解析
- 公司印章管理登记使用台账表
- 砖厂承包合同签订转让合同
- 思政课国内外研究现状分析
- 2023年公务员多省联考《申论》题(广西B卷)
评论
0/150
提交评论