- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
有限状态机的VHDL设计 主要内容 有限状态机的基本概念 一般有限状态机的设计 摩尔状态机设计 米立状态机设计 8.1有限状态机的基本概念 8.1.1 有限状态机的基本结构和功能 有限状态机(Finite State Machine,简称FSM)是数字逻辑电路以及数字系统的重要组成部分,尤其应用于数字系统核心部件的设计,以实现高效率高可靠性的逻辑控制。 有限状态机实现了以下两个基本功能: 根据当前状态和输入条件决定状态机的内部状态转换。 根据当前状态和输入条件确定产生输出信号序列。 8.1有限状态机的基本概念(续) 8.1.2状态机的状态编码 有限状态机设计是基于状态描述的,因此首先必须对系统中的每一个工作状态有一个合理的表达。对于设计者而言,为了表达简捷方便通常使用符号化状态机。 二进制编码方案:是用N位二进制数,表示M个工作状态,当然必须满足2N大于等于M。 一位热码编码方案:用N位二进制数表示N个状态,每一位编码对应一个触发器,状态机中的每个状态都由其中一个触发器的状态来表示。 8.1.3有限状态机的技术优势 设计方案相对固定,结构模式简单,可定义符号化枚举类型的状态。 状态机的VHDL描述层次分明,结构清晰,易读易懂。 基于有限状态机技术设计的控制器其工作速度大大优于CPU。 基于有限状态机技术设计的控制器其可靠性也优于CPU。 8.2 一般有限状态机的设计 8.2.1 一般有限状态机的VHDL组成 说明部分:主要是设计者使用TYPE语句定义新的数据类型,如: TYPE states IS (st0, st1, st2, st3, st4, st5); SIGNAL present_state, next_state: states; 主控时序逻辑部分:任务是负责状态机运转和在外部时钟驱动下实现内部状态转换的进程。时序进程的实质是一组触发器,因此,该进程中往往也包括一些清零或置位的输入控制信号,如Reset信号。 主控组合逻辑部分:任务是根据状态机外部输入的状态控制信号(包括来自外部的和状态机内部的非进程的信号)和当前的状态值current_state来确定下一状态next_state的取值内容,以及对外部或对内部其他进程输出控制信号的内容。 辅助逻辑部分:辅助逻辑部分主要是用于配合状态机的主控组合逻辑和主控时序逻辑进行工作,以完善和提高系统的性能。 8.2.2 一般有限状态机的设计示例 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ? ENTITY two_process_state_machine IS PORT (clk, reset : IN STD_LOGIC; state_inputs : IN STD_LOGIC; comb_outputs : OUT STD_LOGIC_VECTOR(0 TO 1)); END ENTITY two_process_state_machine; ? ARCHITECTURE behv OF two_process_state_machine IS TYPE states IS (st0,st1,st2,st3); --定义states为枚举型数据类型,构造符号化状态机 SIGNAL current_state, next_state: states; BEGIN REG: PROCESS (reset, clk) --时序逻辑进程 BEGIN IF reset = 1 THEN --异步复位 current_state = st0; ELSIF clk = 1 AND clkEVENT THEN--出现时钟上升沿时进行状态转换 current_state = next_state; END IF; END PROCESS; 例8.1 二进程一般状态机的描述。 8.2.2 一般有限状态机的设计示例(续1) COM: PROCESS(current_state, state_inputs) --组合逻辑进程 BEGIN CASE current_state IS WHEN st0 = comb_outputs = 00; --系统输出及其初始化 IF state_inputs = 0 THEN --根据外部输入条件决定状态转换方向 next_state = st0; ELSE next_state = st1; END IF; WHEN st1= com
您可能关注的文档
最近下载
- 住宅小区视频监控系统方案设计.ppt
- 药食同源及药膳配方食品通用要求.pdf VIP
- 淮阴工学院2021-2022学年第1学期《高等数学(上)》期末考试试卷(B卷)及标准答案.pdf
- 内审员内审程序和注意事项要点分析.ppt
- 2020-2021学年陕西省西安市经开区五年级(上)期末数学试卷.docx VIP
- 电厂锅炉原理及设备知识点.pdf VIP
- 新疆大学《大学语文》2020-2021学年第一学期期末考试试卷.pdf VIP
- 山东省滨州市滨城区2023-2024学年七年级上学期期末考试地理试卷(含答案).pdf VIP
- 影子(课件)综合实践活动二年级上册.pptx
- 经济法简答题及论述题.doc
文档评论(0)