EDA应用技术 第2版 课件 03_基于VHDL程序的状态机描述课件.ppt

EDA应用技术 第2版 课件 03_基于VHDL程序的状态机描述课件.ppt

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

电子工业出版社《EDA应用技术(第2版)》编制王真富有限状态机(finite-statemachine,缩写:FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间转移和动作等行为的数学模型。状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,协调相关信号动作,完成特定操作的控制。在VHDL程序设计的实用时序逻辑系统中,状态机是应用广泛的电路模块,其在运行速度的高效、执行时间的确定性和高可靠性方面都显现出强大的优势。项目6状态机的VHDL程序描述1.状态机状态机是以描述控制特性为主的建模方法,它可以应用于从系统分析到设计的所有阶段。状态机的基本操作有两种:(1)状态机内部状态转换状态机内部状态转换操作使状态机经历一系列状态,下一状态由状态译码器根据当前状态和输入条件决定。(2)产生输出信号序列产生输出信号序列操作是根据当前状态和输入条件确定输出信号,由输出译码器输出信号。典型的状态机有两种:Mealy状态机和Moore状态机。项目6状态机的VHDL程序描述2.一般状态机的VHDL程序描述一般状态机的结构如图6.9所示,状态机的VHDL程序描述通常用枚举类数据类型来定义状态机的状态,使用多进程方式来描述状态机的内部逻辑。通常包括说明部分、主控时序进程、主控组合进程和辅助进程等。项目6状态机的VHDL程序描述图6.9一般状态机的结构结构框图(1)说明部分说明部分一般放在结构体的architecture和begin之间,用枚举型数据类型定义状态机的状态名。(2)主控时序进程主控时序进程是实现状态转换的进程。(3)主控组合进程主控组合进程的功能是状态译码,向外部发出控制信号,确定下一状态的走向。(4)辅助进程辅助进程用于配合状态机工作的组合、时序进程或配合状态机工作的其他时序进程。项目6状态机的VHDL程序描述libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitys_machineisport(clk,reset:instd_logic; state_inputs:instd_logic_vector(0to1);control_outputs:outstd_logic_vector(0to1));endentitys_machine;architecturebehaveofs_machineistypestatesis(S0,S1,S2,S3);--定义states为枚举数据类型signalcurrent_state,next_state:states;beginP1:process(reset,clk)beginifreset=1thencurrent_state=S0;elsifclk=1andclkeventthen--上升沿触发current_state=next_state;--当前态转换为次态endif;endprocessP1;【例6.1】双进程描述的状态机项目6状态机的VHDL程序描述进程P1为主控时序进程,在“clk”上升沿时,状态机的状态由当前态“current_state”向次态“next_state”转变。P2:process(current_state,state_inputs)--主控组合进程begincasecurrent_stateiswhenS0=control_outputs=00;--输出当前状态的控制值ifstate_inputs=00then--根据外部输入的值确定次态的走向next_state=S0;elsenext_state=S1;endif;whenS1=control_outputs=01;ifstate_inputs=00thennext_state=S1;elsenext_state=S2;endif;whenS2=control_outputs=10;ifstate_inputs=11thennext_state=S2;elsenext_state=S3;endif;whenS3=control_outputs=

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档