- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
四、VHDL程序实例
第四章 VHDL程序设计实例
组合逻辑电路的设计
组合逻辑电路:输出值只与当前的输入值有关,即输出惟一地由当时的输入值决定。VHDL程序设计举例(见VHDL实例演示程序):
与非门
加法器
编码器
译码器
数据选择器
练习题:异或门、数据分配器
时序逻辑电路的设计
时序逻辑电路:具有记忆功能,输出不仅取决于当前的输入值,而且还与电路原来的状态有关。VHDL程序设计举例(见VHDL实例演示程序):
D触发器
寄存器
移位寄存器
计数器
练习题:锁存器
第三节 有限状态机的设计
一、概述
状态机理论的应用范围非常广泛,无论是在数字电路设计领域,还是在软件设计领域,都占据很重要的地位。在软件设计领域,状态机是一种重要的软件设计思想,而在数字电路设计领域,状态机可看作一种实现系统控制的时序逻辑电路。本节介绍的是数字电路设计领域的状态机,介绍有限状态机的基本概念、基本结构及其VHDL描述。
大部分数字电子系统由控制单元和数据单元组成,而控制单元的主体一般是有限状态机(Finite State Machine,简称FSM),它根据外部信号和数据单元产生的状态信息,产生各种控制信号来进行数据处理。
状态机是实现逻辑控制的重要途径,每个控制步骤可以看作一种状态,与每一控制步骤相关的转移条件指定了状态转移方向。状态机能够根据转移条件,按照预先设定的状态进行状态转移,从而完成特定的系统控制工作。
状态机的优越性:
? 设计方案相对固定,结构模式简单。
? 状态机的VHDL描述层次分明,结构清晰,易读易懂。
? 状态机容易构成性能良好的同步时序逻辑模块(同步时序逻辑是在同一个时钟脉冲控制下改变状态)。
? 在高速运算和控制方面,状态机具有巨大的优势。
使用VHDL设计状态机时,一个结构体可以包含多个状态机,而一个单独的状态机完成的运算和控制方面的工作与一个CPU类似。因此,一个设计实体的功能类似于一个含有并行运行的多CPU的高性能微处理器的功能。
? 基于有限状态机技术设计的控制器其工作速度大大优于CPU。
尽管CPU和状态机都是按照时钟节拍以顺序时序方式工作的,但CPU是按照指令周期,以逐条执??指令的方式运行的;每执行一条指令,通常只能完成一项简单的操作,而一个指令周期须由多个机器周期构成,一个机器周期又由多个时钟节拍构成;相比之下,状态机状态变换周期只有一个时钟周期,而且,由于在每一状态中,状态机可以完成许多并行的运算和控制操作。一般由状态机构成的硬件系统比CPU所能完成同样功能的软件系统的工作速度要高出三至四个数量级。
二、基本结构
时钟、复位
反馈
次态转移逻 辑
状态寄存 器
输
出
逻
辑
输入
次态
现态
输出
Mealy型状态机特有
状态机基本结构框图
有限状态机是一种时序逻辑电路,包括两个主要部分:组合逻辑部分和寄存器部分。其中,组合逻辑部分又包括次态转移逻辑和输出逻辑。各部分的作用如下:
状态寄存器:用于存储状态机的内部状态。
次态转移逻辑:确定状态机的下一状态,不仅与输入信号有关,还与寄存器的当前状态有关。
输出逻辑:确定状态机的输出。
根据状态机的输入和输出之间的关系,分为Moore型状态机和Mealy型状态机。
Moore型状态机
输出仅与状态机的状态有关,与状态机的输入无关。
Mealy型状态机
输出由状态机的输入和状态机的状态共同决定。
三、有限状态机的VHDL描述
1、基本组成
说明部分
位于结构体的说明部分(ARCHITECTURE和BEGIN之间)
主要是设计者使用TYPE语句定义状态类型,并定义此状态类型的数据对象。
状态类型一般用枚举类型,列举每一个状态的名称。
数据对象应定义为信号,便于信息传递。
如:ARCHITECTURE …… IS
TYPE states IS (st0, st1, st2, st3);
SIGNAL present_state, next_state: states;
BEGIN
……
主控时序逻辑部分
完成状态寄存器的功能,使状态机在外部时钟驱动下实现内部状态的转换。状态机由外部时钟信号控制,以同步时序方式工作,因此,状态机中必须包含一个对时钟信号敏感的进程作为状态机的驱动泵。当时钟发生有效跳变时,状态机的状态才发生变化。
时序进程的实质是一组触发器,因此,该进程中往往也包括一些清零或置位的输入控制信号,如Reset信号。
主控组合逻辑部分
任务是根据状态机外部输入的状态控制信号(包括来自外部的和状态机内部的非进程的信号)和当前的状态值来确定下一状态的取值内容,以及对外部或对内部其他进程输出控制信号的内容
文档评论(0)