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

下载本文档

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

文档简介

时序逻辑电路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]S;always@(posedgeCP)S<=S<5'd19?S+5'd1:5'd0;always@(S)case(S)5'd6,5'd14,5'd18:{Z1,Z2}<=2'b01;5'd2,5'd10:{Z1,Z2}<=2'b00;5'd0,5'd5,5'd7,5'd12,5'd15,5'd17:{Z1,Z2}<=2'b10;default:{Z1,Z2}<=2'b11;endcaseendmodule常用时序电路设计-序列检测器序列检测器是指对输入的序列信号进行检测,当电路输入序列与指定序列一致时,检测器输出有效;否则,检测器输出无效。序列检测器的实现方法主要有两类:(1)根据序列检测的要求建立状态图,在规定的状态时输出检测结果。(2)将需要检测的序列信号送入移位寄存器,再用组合电路进行判断。该方法设计电路结构简单,易于调试,因此应用广泛。【例】设计一个序列检测器,该检测器有一串行输入X、一个输出Z,当检测到0100111时,输出为1。moduleSeqDect(CP,X,Z);inputCP,X;outputZ;reg[2:0]S;assignZ=(S==3'd7);always@(posedgeCP)case(S)3'd0:S=X?3'd0:3'd1;3'd1:S=X?3'd2:3'd1;3'd2:S=X?3'd0:3'd3;3'd3:S=X?3'd2:3'd4;3'd4:S=X?3'd5:3'd1;3'd5:S=X?3'd6:3'd3;3'd6:S=X?3'd7:3'd1;3'd7:S=X?3'd0:3'd1;endcaseendmodule采用移位寄存器比较法将待检测数据与题目中给定的序列“0100111”比较,如果相同,则输出Z为1;否则,输出Z为0。moduleSeqDect(CP,X,Z);inputCP,X;outputZ;reg[6:0]Q;assig

温馨提示

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

评论

0/150

提交评论