网站大量收购闲置独家精品文档,联系QQ:2885784924

VHDL语言中状态机的应用.doc

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

[知识拓展] VHDL语言中的状态机应用 在数字系统设计时,通常将一个较大较复杂的系统划分成数个相对独立的较小较简单模块实现,最简单最基本的模块设计可使用本书项目P1和P3中介绍的组合逻辑电路和时序逻辑电路的设计方法,但这种设计方法仅适用于非常简单的模块设计,当设计比较复杂时,这种设计方法就显得过于复杂而失去了实际功效。实际设计中,比较复杂的时序逻辑电路的设计可用有限状态机(finited state machine)来实现。 有限状态机没有固定的形式,实现的方式非常接近人们的逻辑思维,通常用于描述数字系统工作的一个完整过程,它具有以下特征: 状态变量定义有限个状态,这些状态概括了系统的工作的完整过程; 具有时钟; 能够进行状态转移控制;在具有外部输入控制信号时,状态的转移由当前状态、时钟与外部输入控制信号共同控制,称为米勒(mealy)型状态机;在没有外部输入控制信号时,状态的转移只受当前状态和时钟的控制,称为摩尔型(moore)状态机; 在不同的状态下对输出信号进行不同的控制; 在系统复位时,指定系统的初始状态并指定在初始状态时系统的各个输出信号的值; 在使用VHDL语言实现状态机时,通常先用枚举变量定义系统工作时可能出现的有限个状态,然后在1个或数个进程中用if语句和case语句实现状态的转移控制和输出信号的控制,下面以十字路口的交通灯控制为例,具体说明有限状态机的使用。 在某个十字路口,共有东、西、南、北4个方向的交通信号灯。其中东西向的信号灯动作完全一致、可由同一个控制器控制,南北向的信号灯动作完全一致,可由另一个控制器控制,即只要东西、南北2组控制信号即可;在每一个路口有左转、直行、右转三组信号灯,每组信号灯均由红、黄、绿3个灯组成,此外还有一个最大99秒的秒计时器。表4.11包含了交通灯系统所有的工作状态及各个状态下信号灯和秒计时器的状态。 交通灯的工作状态共有10种,按照时间顺序分别为东西向直行(east_a)、东西向直行加右转(east_a_r)、东西向直行变信号(east_a_change)、东西向左转(east_l)、东西向左转变信号(east_l_change)、南北向直行(south_a)、南北向直行加右转(south_a_r)、南北向直行变信号(south_a_change)、南北向左转(south_l)、南北向左转变信号(south_l_change),之后又进入东西向直行状态,在这10状态内反复循环。 在东西向直行状态时,东西向(east_west)的左转灯(left)为红色(red)、直行灯(ahead)为绿色(green)、右转灯(right)为红色(red),定时器(timer)从40秒到26秒变化,每秒种减1; 南北向(south_north)的左转灯(left)为红色(red)、直行灯(ahead)为红色(red)、右转灯(right)为红色(red) ,定时器(timer)从69秒到55秒变化,每秒种减1;根据表4.11不难看出在其它工作状态时,各个方向灯与定时器的变化要求。在实际编写有限状态机的程序之前,列出类似的工作状态及输出状态的列表会有助于理清编程思路,写出合理简洁的程序。 表4.11 交通灯的工作状态及各工作状态下定时器与信号灯的输出状态 state east_west south_north timer left ahead right timer left ahead right east_a 40-26 red green red 69-55 red red red east_a_r 25-0 red green green 54-29 red red green east_a_change 3-0 red yellow yellow 28-25 red red green east_l 20-0 green red red 24-4 red red green east_l_change 3-0 yellow red red 3-0 red red yellow south_a 69-55 red red red 40-26 red green red south_a_r 54-29 red red green 25-0 red green green south_a_change 28-25 red red green 3-0 red yellow yellow south_l 24-4 red red green 20-0 green red red south_l_change 3-0 red red yellow 3-0 yellow red red 以下是用于实现表4.11要求的有限状态机的程序,在程序的端口定义中,rs

文档评论(0)

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

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

1亿VIP精品文档

相关文档