复杂功能模块设计(状态机)_第1页
复杂功能模块设计(状态机)_第2页
复杂功能模块设计(状态机)_第3页
复杂功能模块设计(状态机)_第4页
复杂功能模块设计(状态机)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

复杂功能模块设计在正向设计中,一个数字系统首先要分解为若干个功能模块,例如一个单片机除CPU、存储器外,可能包括中断控制器、定时/计数器、异步串行接口、SPI接口、12c接口等,这些电路就是功能模块。一个重要设计思想是,任何复杂功能模块是由状态机和数据通道两部分构成的。这里数据通道(Datapath)指的是典型逻辑电路,如计数器、寄存器、算术运算电路等。状态机就是控制器,数据通道在状态机控制下工作。一个复杂功能模块的设计几乎总是从状态机设计开始的。输入逻辑门A输入逻辑门A输出典型逻辑部件图1复杂功能模块的一般结构例1:设计一个简单报警器。输入信号来自8位A/D转换器,要求当输入大于等于100时,产生报警信号,当输入回落到97以下时解除报警信号。rst

elkalarmad[7:0]分析:关键是输入为98、99时怎么处理?ad[7:0]、Aalarm>逻辑门DFFad[7:0]、Aalarm>逻辑门DFF图3简单报警器的内部结构代码:例2:简易交通灯问题。主干道至少通行10分钟才能使小路方向通行1分钟。在主干道通行时,如果有过街请求则在10分钟到时变为小路通,如无请求,则主干道继续通行5分钟后再变为小路通。主干道小请求路图5时钟

32763Hz请求逻辑门数据通道-TL>计数器>逻辑门计数器状态机代码U.♦逻辑门时钟复位收到时钟复位收到1角收到5角收到1元售货机控制器例3:售货机问题假设商品价格7角,并假设每次只能销售一个商品,且售货机发现金额超过7角即关闭投币口。找零时,每次只能找回一枚硬币,如需找回5角以上,优先考虑5角。>付货>找回1角>找回5角>投币口例4:JTAG中的TAP状态机Boundary-ScanCeli——JDataRegister^lcd-BowAudTDITCKTMSTOOFigure1:JTAGstructure串行数据输入边界扫描JTAG设备I串行数A据输出JTAG设备2测试连接线1IIX-IEEEJTAGSpec.ISVFISpec.I1AmontecI1Code|IIExit2-DR1IDREXIT2।1”0000”1IhexO|IExitl-DRIDREXIT11,,0001,tIhexl|IShift-DR|DRSHIFT|,f0010,f|hGx2|IPause-DRIDRPAUSE1“001L”Ihex3|ISelect-IRIIRSELECT1,,0100nIhex4|IUpdate-DR|DRUPDATE|,f0101lf|hGx5|ICapture-DRIDRCAPTURE1,f0110nIhex6|ISelect-DRIDRSELECT1Ihex7|IExit2-IR|IREXIT2|,fL000,f|hGxS|IExitl-IRIIREXIT11,f1001nIhex9|IShift-IRIIRSHIFTI“loicrIhexA|IPsusg-IR|IRPAUSE|,fL011,f|hexB|IRun-Test/Idle|IDLE1,f1100nIhexC|IUpdate-IRIIRUPDATE1-llOl11IhexD|ICapture-DR|IRCAPTUREI|hexE|ITestLogicReset|RESET1IhexF|+-+-+T+指令奇存希Figure5.InstructionRegisterScanTimingTMSIIIITDTDmxnj-LnTCKTMSTDITOORunTesEdou二"八updEe.DRu-HnEXMORshMbRuvmhncapcaDRUH-dsdedoR.scanHv—JnRun.Tesus-9Figure6.DataRegisterScanTiming4.2状态机设计方法一般情况下,一个数字电路系统总是可以分解为数据通道(Datapath)和状态机两个部分。“数据通道”一词与字面意义不同,泛指较常用的数字部件,具有通用性。状态机则是对电路特殊性部分的描述。这里所说的“状态机”是一种描述电路功能的方法,与数字电路中的状态转换图类似,但要更抽象一些。以下以一个“密码”定时器为例,介绍状态机分析方法。(1)电路功能描述输入输出信号见图4-6,只要求设计“密码定时器”模块。上电复位后,定时器处于等待状态,输出控制信号“out”为0,计时显示输出为BCD码“9”。输入正确密码后开始倒计时,每秒计数值减1,计时回0后,输出控制信号置1。按键事件信号(key」n)的每个脉冲代表一次数字输入事件,输入数字以bed码形式给出。密码为固定的4位数字,例如“2012”。密码输入间隔时间或总的输入时间不限。输入数据的总位数也不限,只要4个连续的输入数据与密码相同即可。图4-6密码定时器设计思路:可以想象电路中将包含分频电路、BCD减法计数器等常用部件,这些属于“数据通道”部分,功能比较简单。问题的关键是如何描述密码的输入情况。用寄存器保存输入密码的方法可行,但耗用较多硬件资源。以下采用状态机方法描述密码输入情况。图4-7边沿检测reg[l:O]key_in_edge;always@(posedgeelk)begini®st_n=rbO)key_in_edge<=2*511;elsebegmkey-in.edgetl]<=key_m.edge[O];key_in__edge[O]<=key_in;endendalways@(posedgeelk)begini®st_n=rbO)div<=2b00;elsediv<=div+rbl;end//always@(posedgeelk)begini®st_n=rbO)ent<=4'd9;elseif((div=2,611)&&(state=PASS_4)&&(ent>0))ent<=ent-Tbl;end图4-8状态机paiainetei[2:0]PASS_O=3七00;paiainetei[2:0]PASS_1=3'bOl;paiainetei[2:0]PASS_2=3'blO;paiainetei[2:0]PASS_3=3'bll;paiainetei[2:0]PASS_4=3'bll;always@(posedgeelk)beginif(rst_n=rbO)state<=PASS_0;elsestate<=next_state;endalways@(stateorkey_in_edgeorbed)beginif(key_in_edge=3*b01)begincase(state)PASS_0:beginif(bcd=3*d2)nextstate=PASS1;elsenextstate=PASS0;endPASS_l:beginif(bcd=3*(10)nextstate=PASS2;elseif(bcd=3,d2)nextstate=PASS1;elsenextstate=PASS0;end

温馨提示

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

评论

0/150

提交评论