第7章VHDL有限状态机设计祥解.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章VHDL有限状态机设计祥解.ppt

人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * EDA技术实用教程 第7章 VHDL有限状态机设计 有限状态机及其设计技术是实用数字系统设计中的重 要组成部分,是实现高效率高可靠性逻辑控制的重要途 径。 有限状态机应用广泛,对于操作和控制流程明确的系 统设计,有重要的地位。 任何时序模型都可以归结为一个状态机。 7.1.1 状态机的优势 1).高效的顺序控制模型;状态机的工作方式是根据控制信号按照预先设定的状态进行顺序运行,状态机是纯硬件数字系统中的顺序控制模型。 2).由于状态机的结构相对简单,设计方案相对固定; 3)、状态机容易构成性能良好的同步时序逻辑模块; 4)、与VHDL的其他描述方式相比,状态机的VHDL表述丰富多样、程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的好处; 5)、在高速运算和控制方面,状态机更有其巨大的优势。 6)、高可靠性。 状态图分类 状 态 机 Moore 状态机 Mealy 状态机 输出仅与状态有关 与输入无关 输出与状态有关 又与输入有关 输入变化后要等时钟到来输出才变化 输入变化后输出立即变化 7.1.3 状态机结构 1). 说明部分 ARCHITECTURE ...IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; ... BEGIN 一般有限状态机设计 用VHDL设计的状态机有多种形式。最一般和最常用的状态机通常包含说明部分、主控时序进程、主控组合进程、辅助进程等几个部分。 使用TYPE语句定义新的数据类型(枚举型),状态变量应定义为信号,该数据类型定义为含有既定状态元素的新定义的数据类型。 2). 主控时序进程 一般状态机结构框图 当时钟的有效跳变到来时,时序进程只是机械将代表次态的信号next_state中的内容送入现态的信号current_state中,而信号next_state中的内容完全由其他的进程根据实际情况来决定 。 主控时序进程 主控组合进程 3). 主控组合进程 4). 辅助进程 ☆ 状态译码进程,根据外部输入的控制信号(外部信号和内部其他非主控的组合或时序进程的信号)和当前状态的状态值确定下一状态的取向,即next_state的取值内容。 用于配合状态机工作的组合进程或时序进程。 ☆ 确定对外输出或对内部其他组合或时序进程输出控制信号的内容。 ☆ 为了完成某种算法的进程。 ☆ 用于配合状态机工作的其他时序进程。 ☆ 为了稳定输出设置的数据锁存器等。 4. 辅助进程 接下页 定义了一个枚举数据类型,它包含所需的所有状态 包含了决定系统初始状态s0的异步复位信号reset,下一状态next_state的同步存储 接上页 并发代码实现组合逻辑电路 输出端口赋值 确定下一 个状态 7.1 VHDL状态机的一般形式 7.1.2 一般有限状态机的结构 4. 辅助进程 7.1 VHDL状态机的一般形式 7.1.3 状态机设计初始控制与表述 (1)打开“状态机萃取”开关 (2)状态图观察 7.2 Moore型有限状态机的设计 状态机的信号输出方式上分有Mealy型和Moore型两类状态机。 Moore型状态机的输出仅为当前状态的函数,在输入发生变化时,还必须等待时钟的到来,时钟使状态发生变化时才导致输出的变化。 Mealy型状态机的输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的,不依赖时钟的同步。 自动售货机控制器 输入信号5,10,25美分,必要的输入:clk,reset 输出:控制发放糖果,nickel_out控制找5美分零钱;dime_out 控制找10美分零钱 ------------------------- library ieee; use ieee.std_logic_1164.all; ------------------------------- entity vending_machine is port(clk,rst:in std_logic; nickel_in,dime_in,quarter_in:in bool

文档评论(0)

love + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档