第七章状态机与io口.docVIP

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

第七章 状态机与I/O口 7.1有限状态机设计 7.1.1有限状态机引论 1、状态机的概念 在实际逻辑控制系统中,有许多是可以利用状态机的设计方案来实现的。如AD574转换控制器,AD574的控制逻辑表如下: 表7-1 AD574逻辑控制真值表 CECSRCX12/8A0工作状态0XXXX禁止X1XXX禁止100X0启动12位转换100X1启动8位转换1011X12位数据输出10100高8位数据输出10101低4位数据输出AD574工作时序为: 图7-1 AD574工作时序(CE=1,X12/8=1) 图7-2 AD574状态转换图 其对应控制器的状态转换图见图7-2。要求控制器在现场信号作用下自动进行状态转换,并根据当前状态发出相应控制信号以控制现场。状态机就是完成这一目的。有限状态机及其设计技术是实用数字系统设计中的重要组成部分,是实现高效率高可靠逻辑控制的重要途径。 2、状态机的优点 无论与基于VHDL的其他设计方案相比,还是与可完成 相似功能的CPU相比,状态机都有其难以超越的优越性,它主要表现在以下几方面: 1、控制灵活、方便:状态机的工作方式是根据控制信号按照预先设定的状态顺序运行的,因此状态机在其运行方式上类似于控制灵活和方便的CPU。克服了纯硬件数字系统顺序方式控制不灵活的缺点。 2、结构简单,便于设计:设计方案相对固定,特别是可以定义符号化枚举类型的状态,这一切都为VHDL综合器尽可能发挥其强大的优化功能提供了有利条件。而且,性能良好的综合器都具备许多可控或自动的专门用于优化状态机的功能。 3、状态机易构成性能良好的同步时序逻辑模块,这对于对付大规模逻辑电路设计中令人深感棘手的竞争冒险现象无疑是一个上佳的选择。 4、就运行速度而言,一般由状态机构成的硬件系统比CPU所能完成同样功能的软件系统的工作速度要高出三至四个数量级。如进行AD转换采集数据,传统的方法多数是用CPU或单片机完成的。编程简单,控制灵活,但??点是控制周期长,速度慢。当A/D本身的采样速度比较快时,如用于视频信号采样的TLC5540,采样速率达40MHz,单片机对于此类高速的A/D器件完全无从控制。如果使用状态机来控制A/D采样,包括将采得的数据存入RAM,整个采样周期需要4至5个状态即可完成.若FPGA的时钟频率为100MHz,则从一个状态向另一状态转移的时间为一个时钟周期,即10ns,那么一个采样周期约50ns。由此可见利用状态机对A/D进行采样控制是一种行之有效的方法。 5、就可靠性而言,CPU本身的结构特点与执行软件指令的工作方式决定了任何CPU都不可能获得圆满的容错保障。而状态机系统由纯硬件电路构成,不存在CPU运行软件过程中许多固有的缺陷;其次是当状态机进入非法状态并从中跳出,进入正常状态所耗的时间十分短暂,通常只有2、3个时钟周期,约数十个ns,尚不足以对系统的运行构成损害;而CPU通过复位方式从非法运行方式中恢复过来,耗时达数十ms,这对于高速高可靠系统显然是无法容忍的。 3、状态机的分类 1)从状态机的信号输出方式上分有Mealy型和Moore型两种状态机。 从输出时序上看,Mealy属于异步输出状态机。其输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的,不依赖时钟的同步。 Moore属于同步输出状态机,其输出则仅为当前状态的函数,这类状态机在输入发生变化还必须等待时钟的到来,时钟使状态发生变化时才导致输出的变化,所以比Mealy机要多等待一个时钟周期。 2)从结构上分,有单进程状态机和多进程状态机。 3)从编码方式上分有顺序编码状态机、一位热码编码状态机或其他编码方式状态机。 7.1.2 典型状态机结构 典型状态机设计由状态信号定义、准备下一状态进程、状态切换进程、输出进程等四部分构成。下面以AD574为例介绍状态机编程。 【例7-1】用FPGA/CPLD控制AD574进行12位A/D转换,并将转换结果保存在Q0~Q11中。 分析:12位A/D转换,12位结果输出,X12/8接高电平,A0接低电平;2个片选信号用1个CE,CS接低电平。连接电路图见图7-3。 图7-3 AD574连接图 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY AD574 IS PORT( D:IN STD_LOGIC_VECTOR(11 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(11 DOWNTO 0);

文档评论(0)

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

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

1亿VIP精品文档

相关文档