第5章 VHDL 的状态了解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA技术与VHDL 第6章 VHDL状态机 状态机是时序电路的通用模型,任何时序电路都可以表示为有限状态机。对于大部分数字电子系统,都可以划分为控制单元和数据单元两个组成部分,控制单元的主体是一个有限状态机,它接收外部信号和数据单元产生的状态的信息,产生各种控制信号,决定何时进行何种数据处理。有限状态机分为两类:Moore型和Mealy型 状态机的次态是现态及输入信号的函数,输出信号根据状态机的现态或输入信号而定。 状态机可分为两类:摩尔(Moore)型状态机和米里(Mealy)型状态机。 Moore型状态机,其输出只为状态机当前状态的函数,而与输入无关。 Mealy型状态机,其输出不仅与状态机当前状态有关,而且与输入有关。 状态机的设计步骤 (1)定义状态机的各状态。适当地确定状态机的工作状态,是状态机设计的基础,需要充分利用设计者的设计经验。 (2)建立状态转换图。构造状态转换图时,通常从一个比较容易的状态开始。例如系统的初始状态、复位状态或空闲状态等,都是很好的起始状态。为每个状态标出转换的条件,相应的输入、输出信号。 (3)建立状态机进程。在VHDL程序中,通常用进程描述有限状态机。由于次态是现态及输入信号的函数,因此,往往将现态和输入信号作为进程的敏感信号。 (4) 进程中定义状态的转移。所有的状态均可表达为CASE_WHEN结构中的一条 CASE语句,利用CASE WHEN语句IF_THEN_ELSE语句实现状态的转移。 起始状态的选择 起始状态指电路复位后所处的状态,选择一个合理的起始状态将使整个系统简捷高效。对于有限状态机,必须有时钟信号和复位信号! 状态编码 采用log2N个触发器来表示这N个状态 采用N个触发器来表示这N个状态——称为一位热码状态机编码(One-Hot State Machine Encoding)。 采用VHDL语言实现基于状态机的设计,就是在时钟信号的触发下,完成两项任务: (1)用case或if-else语句描述出状态的转移; (2)描述状态机的输出信号。 6.1 状态机设计相关语句 5.1 状态机设计相关语句 5.1 状态机设计相关语句 5.1 状态机设计相关语句 6.1 状态机设计相关语句 6.2 Moore状态机 5.2 Moore状态机 6.2 Moore状态机 6.2 Moore状态机 6.2 Moore状态机 6.3 Mealy状态机 6.3 Mealy状态机 6.3 Mealy状态机 6.3 Mealy状态机 6.3 Mealy状态机 6.3 Mealy状态机 A/D实验(ADC0809) 5.2 Moore状态机 5.2 Moore状态机 5.2 Moore状态机 5.4 状态编码 5.4 状态编码 6.6 数字方式排除毛刺信号 冒险现象: 信号在FPGA器件内部通过连线和逻辑单元时, 都有一定的延时。 延时的大小与连线的长短和逻辑单元的数目有关, 同时还受器件的制造工艺、 工作电压、 温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。 由于存在这两方面因素, 多路信号的电平值发生变化时, 在信号变化的瞬间, 组合逻辑的输出状态不确定,往往会出现一些不正确的尖峰信号, 这些尖峰信号称为“毛刺”。 如果一个组合逻辑电路中有“毛刺”出现, 就说明该电路存在“冒险”。 由于信号路径长度的不同, 译码器、 数值比较器以及状态计数器等器件本身容易出现冒险现象, 将这类器件直接连接到时钟输入端、 清零或置位端口的设计方法是错误的, 它可能会导致严重的后果。 ①添加辅助进程使得输出数据锁存 ②将2进程的moore状态机改为单进程的moore状态机 ③使用状态位直接输出编码方式 5.6 数字方式排除毛刺信号 5.6 数字方式排除毛刺信号 为了消除数字系统中的冒险竞争或毛刺现象,常用的措施是使信号有微量的延时,传统数字电路设计技术中较常用的方法是在通道上增加门电路,或利用所谓冗余技术来解决,甚至加滤波电容。但是这些方法在现代数字技术中都是完全行不通的。 5.6 数字方式排除毛刺信号 5.6 数字方式排除毛刺信号 5.6 数字方式排除毛刺信号 5.6 数字方式排除毛刺信号 冒险往往会影响到逻辑电路的稳定性, 时钟端口、 清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能会使系统出错, 因此判断逻辑电路中是否存在冒险以及如何避免冒险是设计人员必须要考虑的问题。 5.4 状态编码 5.4 状态编码 5.4 状态编码

文档评论(0)

130****6858 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档