消除状态机毛刺的策略的探讨.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
消除状态机毛刺的策略的探讨

消除状态机毛刺的策略的探讨   摘要 状态机简写为FSM(Finite State Machine),是数字系统的重要组成部分。本文结合AD9822的工作特点,以AD9822的序列发生器的采样控制过程为例,分析了状态机产生毛刺的原因,讨论并比较了三种消除毛刺的方案,分别给出了调整编码消除毛刺和状态码直接输出消除毛刺这两种方案的VHDL源程序,利用Quartus Ⅱ仿真,成功消除毛刺。   关键词 AD9822 序列发生器 状态码   中图分类号:TN911.7 文献标识码:A DOI:10.16400/j.cnki.kjdkx.2016.07.071   状态机是一种重要的数字控制系统设计方法,它的速度和效率,以及在执行时表现出的很强的可靠性和安全性,都是设计时的重要优势。除此以外,与其他方法相比,用VHDL描述状态机的表达更加多元丰富,结构清晰、易读,容易理解;VHDL语句在调试修改和移植模块方面也有其独特的特点。   1 AD9822介绍   AD9822是一种CCD视频信号处理的低功耗处理器,因其具有高速数据传输能力和准确性,被广泛用于研究、过程控制等。   AD9822包括3路采样电路,即VING、VINR、VINB,分别是绿色、红色、蓝色通道信号输入。每一路由相关双采样器CDS,一个嵌位开关,可编程增益放大器PGA,数模转换器DAC,通过多路选择器选择把信号送给模数转换器ADC,通过位宽为8的总线的输出。这样由CCD输入的模拟视频信号便被合理地调整,进而转换成数字信号,最后交由上层处理。   AD9822是通?^三线双向串行接口来进行控制其工作模式和状态的,三路信号分别是SCLK、SLOAD、SDATA。外部控制器(如FPGA)给出合理的时钟信号SCLK,在该时钟下数据通过SDATA传输到AD9822的内部寄存器中。   2应用VHDL设计状态机   设计状态机的传统方法需要大量且繁琐的状态分配、状态表绘制和化简。但利用VHDL硬件语言可以最大程度地跳过这些,直接用状态图描述,且涉及到的任意状态都可表达为CASE WHEN中的CASE语句。   具体步骤如下:   (1)根据系统特定要求,确定不同状态的数量、状态相互转移的条件及每个状态输出的信号值,进而画出状态转移图;(2)根据状态转移图来编写相应的VHDL程序;(3)对功能进行仿真及验证。   本实验的主要目的就是基于己选定的芯片AD9822,设计一个产生序列的计数型信号驱动电路。   3毛刺产生原因   状态机在硬件上通常由主控时序电路、主控组合电路及辅助电路这三个部分构成。其中,主控组合电路的功能是由当前的状态值和外部控制信号来确定下一状态的转移方向,并且确定内部其他电路输出的信号内容。一方面,由于存在组合逻辑电路,整个电路的输出信号会出现毛刺现象,换句话说,即竞争冒险现象;另一方面,当状态信号是多位值时,在此电路中有多路信号对应于该信号。因为传输延迟,每路信号的值发生的改变存在先后,令状态迁移时在初始状态和目的状态之间会出现临时状态“毛刺”。   如,根据AD9822的Datasheet,时钟信号SCLK含CDSCLK1、CDSCLK2和ADCCLK三个外部控制端口,用十二个状态描述其变化。首次采用状态机编写程序的主要代码如下:   将每个状态的维持时间设为10ns,其仿真结果为(图1):   如图1所示,其中在整个周期中的第一个时钟和第二个时钟之间会产生毛刺。   4毛刺的消除方案   “毛刺”只会发生在时钟两个有效边沿之间,因此一般情况下,“毛刺”在同步电路中不会产生严重影响。但当输出信号是其他功能电路的控制信号时,便会让受控电路发生错误动作,产生故障,继而导致整个系统的混乱,比如作为异步控制、三态使能控制或时钟信号使用时。所以,当作为控制信号时,必须修改程序消除毛刺。消除“毛刺”通常有以下三种方法:   (1)对状态的编码进行调整,以使相邻的状态转移只有一个信号码变化,从而去除了竞争冒险的可能。一般采用格雷码来编码。   (2)采用时钟同步,即向组合逻辑电路引入时钟信号。状态机每次输出都会在时钟信号的同步下经过一个附加的寄存器,故可保证输出无毛刺。但这种方法存在一定的缺点:由于增加了寄存器,直接增大了硬件开销,这对本身寄存器资源比较少的芯片是有很大弊端的;从状态位到达输出必须经过两级组合逻辑电路,这对系统时钟的最大工作频率有一定限制:输出信号需要在时钟节拍下加载到附加寄存器上,所以实际得到的输出信号会比状态转移延迟一个时钟周期。   (3)直接把状态码作为输出信号。状态和输出信号同步,可以优化译码电路,因此不会出现竞争冒险。该方法占用芯片资源少,同步变化速度很快,所以为较好的方法。但在编码过程中,可能会增

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档