书签 分享 收藏 举报 版权申诉 / 96
上传文档赚钱

类型三段式状态机课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2973212
  • 上传时间:2022-06-17
  • 格式:PPT
  • 页数:96
  • 大小:1.86MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《三段式状态机课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    三段式 状态机 课件
    资源描述:

    1、 第第 13 章数字系统设计基础章数字系统设计基础数字系统概述数字系统概述数字系统的设计方法数字系统的设计方法 数字系统的设计准则数字系统的设计准则 数字系统的设计步骤数字系统的设计步骤数字系统设计举例数字系统设计举例状态机的设计状态机的设计什么是数字系统?什么是数字系统? 数字系统是指交互式的、以离散形式表示的,具有存储、传输、信息处理能力的逻辑子系统的集合。13.1数字系统概述数字系统概述13.1.113.1.1数字系统的优点数字系统的优点 (1)工作稳定,抗干扰能力强。 (2)精确度高。 (3)系统可靠性高。 (4)便于系统的模块化。 (5)便于大规模集成,易于实现小型化。 (6)可实现

    2、片上系统(SOC)。 (7)可实现嵌入式系统。 13.1.213.1.2数字系统的基本构成数字系统的基本构成 一个完整的数字系统通常可分为五个部分:输入电路、输一个完整的数字系统通常可分为五个部分:输入电路、输出电路、数据处理器、控制器和时钟电路。出电路、数据处理器、控制器和时钟电路。图图13-2 13-2 数字系统结构框图数字系统结构框图 输入输入/ /输出电路是整个数字系统对外信号交流的接输出电路是整个数字系统对外信号交流的接口,是完成将物理量转化为数字量或将数字量转化为物口,是完成将物理量转化为数字量或将数字量转化为物理量的功能部件。理量的功能部件。 数据处理器主要完成数据的采集、存储、

    3、运算和传数据处理器主要完成数据的采集、存储、运算和传输等功能。输等功能。 控制器是执行数字系统算法的核心,具有记忆功能,控制器是执行数字系统算法的核心,具有记忆功能,一般为时序系统。控制器负责规定算法的步骤,在每一一般为时序系统。控制器负责规定算法的步骤,在每一个计算步骤给数据处理器发出命令信号,同时接收来自个计算步骤给数据处理器发出命令信号,同时接收来自数字处理器的状态变量,确定下一个计算步骤,以确保数字处理器的状态变量,确定下一个计算步骤,以确保算法按正确的次序实现。算法按正确的次序实现。 时钟电路是用来产生系统工作的同步时钟信号,使时钟电路是用来产生系统工作的同步时钟信号,使整个系统在时

    4、钟信号的作用下,一步一步地按顺序完成整个系统在时钟信号的作用下,一步一步地按顺序完成各种操作。各种操作。 运算器运算器 (ALU) 控制器控制器 存储器存储器 输入设备输入设备 输出设备输出设备 数据流数据流 控制流控制流 图图13-3 冯冯.诺依曼计算机框架图诺依曼计算机框架图13.2 数字系统的设计方法数字系统的设计方法 数字系统设计有多种方法,传统的方法有试凑数字系统设计有多种方法,传统的方法有试凑设计法、设计法、MCUMCU设计法等。传统的设计方法都是采用设计法等。传统的设计方法都是采用自下而上自下而上的设计方法,即首先确定可用的的设计方法,即首先确定可用的元件元件,然,然后根据这些器

    5、件进行逻辑设计,完成各后根据这些器件进行逻辑设计,完成各模块模块后,进后,进行连接形成行连接形成系统系统,最后经,最后经调试、测量调试、测量观察整个系统观察整个系统是否达到规定的性能指标。是否达到规定的性能指标。 13.2.113.2.1传统的设计方法传统的设计方法系统测试与性能分析完整系统功能模块基本元器件 缺点:缺点:1、设计过程依赖现有的通、设计过程依赖现有的通用元器件、手工及经验;用元器件、手工及经验;2、设计后期的仿真和调试、设计后期的仿真和调试3、基于原理图的设计、可、基于原理图的设计、可 移植性差;移植性差;4、设计周期长、灵活性差、设计周期长、灵活性差、效率低效率低传统电路设计

    6、方法:传统电路设计方法: 自下而上(自下而上(Bottom-Up)的设计方法)的设计方法 基于基于EDAEDA技术的现代数字系统的设计一技术的现代数字系统的设计一般采用般采用自顶向下自顶向下的方法。该方法首先根据系的方法。该方法首先根据系统的总体功能要求,进行统的总体功能要求,进行系统级设计系统级设计;然后;然后按照一定的标准将整个系统划分成若干个按照一定的标准将整个系统划分成若干个子子系统系统;接着将各个子系统划分为若干;接着将各个子系统划分为若干功能模功能模块块,针对各模块进行,针对各模块进行逻辑电路级逻辑电路级设计。设计。 13.2.2 13.2.2 基于基于EDAEDA的现代数字系统设

    7、计方法的现代数字系统设计方法 自顶向下设计方法是一种自顶向下设计方法是一种模块化设计模块化设计方法。对设计方法。对设计的描述从上到下逐步由粗略到详细,符合常规的逻辑思的描述从上到下逐步由粗略到详细,符合常规的逻辑思维习惯;维习惯; 优优点点 针对具体的设计,实施自顶向下的设计方法的形式针对具体的设计,实施自顶向下的设计方法的形式会有所不同,但均需遵循以下两条原则:逐层分解功能会有所不同,但均需遵循以下两条原则:逐层分解功能和分层次进行设计。同时,应在各个设计层次上,考虑和分层次进行设计。同时,应在各个设计层次上,考虑相应的仿真验证问题。相应的仿真验证问题。 适合多个设计者同时进行设计。随着技术

    8、的不断进适合多个设计者同时进行设计。随着技术的不断进步,许多设计由一个设计者已无法完成,由多个设计者步,许多设计由一个设计者已无法完成,由多个设计者分工协作完成一项设计的情况越来越多分工协作完成一项设计的情况越来越多;表13-1 传统设计方法和EDA设计方法的比较13.3数字系统的设计准则数字系统的设计准则1 1分割准则分割准则2 2系统的可观测性系统的可观测性4 4同步和异步电路同步和异步电路5 5最优化设计最优化设计3 3面积和速度的平衡与互换原则面积和速度的平衡与互换原则6 6理想设计准则理想设计准则1. 分割准则分割准则 自顶向下的设计方法需要对系统功能进行分割,自顶向下的设计方法需要

    9、对系统功能进行分割,然后用逻辑语言进行描述。分割过程中,若分割过然后用逻辑语言进行描述。分割过程中,若分割过粗,则不易用逻辑语言表达;分割过细,则带来不粗,则不易用逻辑语言表达;分割过细,则带来不必要的重复和繁琐。因此,分割的粗细需要根据具必要的重复和繁琐。因此,分割的粗细需要根据具体的设计和设计工具情况而定。体的设计和设计工具情况而定。 2. 系统的可观测性系统的可观测性 在系统设计中,应该同时考虑功能检查和性能在系统设计中,应该同时考虑功能检查和性能的测试,即系统可测性的问题。在设计系统的同时的测试,即系统可测性的问题。在设计系统的同时设计观测电路,指示系统内部的工作状态。设计观测电路,指

    10、示系统内部的工作状态。 4. 同步和异步电路同步和异步电路 异步电路会造成较大延时和逻辑竞争,容易引异步电路会造成较大延时和逻辑竞争,容易引起系统的不稳定,而同步电路则是按照统一的时钟起系统的不稳定,而同步电路则是按照统一的时钟工作,稳定性好。因此,在设计时应尽可能采用同工作,稳定性好。因此,在设计时应尽可能采用同步电路进行设计,避免使用异步电路。在必须使用步电路进行设计,避免使用异步电路。在必须使用异步电路时,应采取措施来避免竞争和增加稳定性。异步电路时,应采取措施来避免竞争和增加稳定性。3. 面积和速度的平衡与互换原则面积和速度的平衡与互换原则 面积是指一个设计消耗的逻辑资源数量,一般面积

    11、是指一个设计消耗的逻辑资源数量,一般可以用触发器和组合逻辑单元来度量。速度指设计可以用触发器和组合逻辑单元来度量。速度指设计在芯片上稳定运行时能够达到的最高频率。面积和在芯片上稳定运行时能够达到的最高频率。面积和速度是一对矛盾的需求,在设计中应力求平衡,在速度是一对矛盾的需求,在设计中应力求平衡,在一定条件下可相互转换。一定条件下可相互转换。 6. 理想设计准则理想设计准则 一个理想的设计,应该具有以下基本特征:设一个理想的设计,应该具有以下基本特征:设计总体上流畅,无拖泥带水的感觉;资源分配、计总体上流畅,无拖泥带水的感觉;资源分配、I/O分配合理,没有任何设计上和性能上的瓶颈;分配合理,没

    12、有任何设计上和性能上的瓶颈;系统结构协调;具有良好的可观测性;易于修改和系统结构协调;具有良好的可观测性;易于修改和移植;器件的特点能得到充分的发挥。移植;器件的特点能得到充分的发挥。5. 最优化设计最优化设计 由于可编程器件的逻辑资源、连接资源和由于可编程器件的逻辑资源、连接资源和I/O资源有限,器件的速度和性能也是有限的,用器件资源有限,器件的速度和性能也是有限的,用器件设计系统的过程相当于求最优解的过程,因此,需设计系统的过程相当于求最优解的过程,因此,需要给定两个约束条件:边界条件和最优化目标。要给定两个约束条件:边界条件和最优化目标。 13.4数字系统的设计步骤数字系统的设计步骤图图

    13、13-4 13-4 数字系统设计流程图数字系统设计流程图1. 系统需求分析系统需求分析 系统需求分析是数字系统设计的首要任务。设系统需求分析是数字系统设计的首要任务。设计者在读完技术任务书后应明确以下内容:确定系计者在读完技术任务书后应明确以下内容:确定系统的基本功能;确定输入和输出信号;确定各功能统的基本功能;确定输入和输出信号;确定各功能模块之间的相互关系;确定系统具体指标。模块之间的相互关系;确定系统具体指标。2. 确定总体方案确定总体方案 数字系统总体方案将直接影响整个数字系统的数字系统总体方案将直接影响整个数字系统的质量与性能,总体方案需要综合考虑以下几个因素:质量与性能,总体方案需

    14、要综合考虑以下几个因素:系统功能要求、系统使用要求和系统性能价格比。系统功能要求、系统使用要求和系统性能价格比。4. 系统和子系统逻辑描述系统和子系统逻辑描述 采用比较规范的形式来描述系统的逻辑功能。采用比较规范的形式来描述系统的逻辑功能。对系统的逻辑描述可先采用较粗略的方框图,再将对系统的逻辑描述可先采用较粗略的方框图,再将方框图逐步细化为详细逻辑流程图,最后将详细逻方框图逐步细化为详细逻辑流程图,最后将详细逻辑流程图用电路原理图或硬件描述语言描述出来。辑流程图用电路原理图或硬件描述语言描述出来。3. 建立系统及子系统结构框图建立系统及子系统结构框图 把系统从逻辑上划分为数据子系统和控制子系

    15、把系统从逻辑上划分为数据子系统和控制子系统两部分,画出整个系统的结构框图。然后将数据统两部分,画出整个系统的结构框图。然后将数据子系统分解为多个基本的逻辑功能模块。最后画出子系统分解为多个基本的逻辑功能模块。最后画出由基本功能模块组成的数据子系统结构框图,数据由基本功能模块组成的数据子系统结构框图,数据子系统中所需的各种控制信号将由控制子系统产生。子系统中所需的各种控制信号将由控制子系统产生。6. 系统的物理实现系统的物理实现 通过通过EDA软件仿真,如果设计的数字系统满软件仿真,如果设计的数字系统满足总体要求,就可以用芯片实现数字系统。首先实足总体要求,就可以用芯片实现数字系统。首先实现各个

    16、逻辑功能电路,调试正确后,再将它们互连现各个逻辑功能电路,调试正确后,再将它们互连成子系统,最后进行数字系统总体调试。成子系统,最后进行数字系统总体调试。5. 系统仿真与验证系统仿真与验证 在电路设计完成以后必须验证设计是否正确。在电路设计完成以后必须验证设计是否正确。数字电路设计的数字电路设计的EDA软件都具有仿真功能,先通软件都具有仿真功能,先通过系统仿真,当系统仿真结果正确后再进行实际电过系统仿真,当系统仿真结果正确后再进行实际电路的测试。路的测试。 状态机是一种具有指定数目的状态的概念机,它在某个指定的时刻仅处于一个状态,状态的改变是对输入事件的响应。状态机的基本要素有三个:状态、输入

    17、条件和输出。 什么是状态机什么是状态机? ?13.5状态机的设计状态机的设计状态机的优势:状态机的优势: (1)状态机克服了纯硬件数字系统顺序方式控制不灵活 的缺点;(2)状态机的结构相对简单,设计方案相对固定;(3)状态机容易构成性能良好的同步时序逻辑模块;(4)与VHDL的其他描述方式相比,状态机的VHDL表述丰 富多样、程序层次分明,结构清晰,易读易懂;在 排错、修改和模块移植方面也有其独到的好处;(5)在高速运算和控制方面,状态机更有其巨大的优势。 (6)高可靠性。 应用实例1 图图13-5 自动售货机控制系统方框图自动售货机控制系统方框图自动售货机自动售货机 设定逻辑变量: 设投币信

    18、号A、B为输入逻辑变量,投入一枚一元硬币时用A=1表示,未投入时A=0。投入一枚五角硬币用B=1表示,未投入时B=0; 设矿泉水和找钱为两个输出变量,分别用Z和Y表示,给出矿泉水时Z=1,不给时Z=0,找回一枚五角硬币时Y=1,不找时Y=0。 图图13-6 13-6 自动售货机状态转换图自动售货机状态转换图library ieee; use ieee.std_logic_1164.all; entity shj_ctrl is port(a,b:in std_logic; clk:in std_logic; z,y:out std_logic); end shj_ctrl; architect

    19、ure beha of shj_ctrl is type states is (s0,s1,s2); signal state:states; signal x:std_logic_vector(1 downto 0); begin xz=0;y=0; if (x=01) then state=s1; elsif (x=10) then state=s2; else statez=0;y=0; if (x=01) then state=s2; elsif (x=10) then state=s0; z=1;y=0; else statez=0;y=0; if (x=01) then state

    20、=s0; z=1;y=0; elsif (x=10) then state=s0; z=1;y=1; else state=s2; end if; end case; end if; end process; end beha;13.5.1 状态机的基本构成及描述方式状态机的基本构成及描述方式 1. 状态机的基本要素状态机的基本要素u状态:也叫状态变量。在逻辑设计中,使用状态状态:也叫状态变量。在逻辑设计中,使用状态 划分逻辑顺序和时序规律。划分逻辑顺序和时序规律。u输入:指状态机中进入每个状态的条件。输入:指状态机中进入每个状态的条件。u输出:指在某一个状态时特定发生的事件。输出:指在某一个

    21、状态时特定发生的事件。 2. 状态机的基本结构状态机的基本结构n状态寄存器的功能是记忆状态机的内部状态;n次态逻辑的功能是确定状态机的次态;n输出逻辑的功能是确定状态机的输出。 图图13-7 状态机的基本结构框图状态机的基本结构框图3. 状态机的基本描述方式状态机的基本描述方式状态转移图状态转移图 状态转移表状态转移表 HDL语言描述语言描述13.5.2 状态机的分类状态机的分类n根据状态机的状态数是否为有限个: 有限状态机(FSM) 无限状态机(ISM)n根据输出与现态以及输入的关系 : Moore型状态机 Mealy型状态机 13.5.3 状态机的状态编码状态机的状态编码 1. 顺序二进制

    22、编码顺序二进制编码表13-2 顺序二进制编码 2. 格雷码编码格雷码编码 表13-3 格雷码编码 3. One-Hot编码编码表13-4 One-Hot编码13.5.4 状态机的状态机的VHDL设计设计1. 状态机的状态机的VHDL设计步骤设计步骤n分析控制器设计指标,建立系统算法模型图,即分析控制器设计指标,建立系统算法模型图,即状态转移图;状态转移图;n分析被控对象的时序状态,确定控制器状态机的分析被控对象的时序状态,确定控制器状态机的各个状态及输入、输出条件;各个状态及输入、输出条件;n应用应用VHDL语言完成状态机的描述。语言完成状态机的描述。2. 状态机的状态机的VHDL描述方法描述

    23、方法n单进程(一段式)单进程(一段式)FSM描述方法描述方法是将整个状态机的三个是将整个状态机的三个模块合并起来,写到模块合并起来,写到1个进程里面,在该进程中即描述个进程里面,在该进程中即描述状态转移,又描述状态的输入和输出;状态转移,又描述状态的输入和输出;n两进程(二段式)两进程(二段式)FSM描述方法描述方法是用是用2个进程来描述状态个进程来描述状态机,其中当前状态寄存器用一个同步时序进程来描述,机,其中当前状态寄存器用一个同步时序进程来描述,输出逻辑和次态逻辑合并起来,用另一个组合逻辑进程输出逻辑和次态逻辑合并起来,用另一个组合逻辑进程来描述;来描述;n三进程(三段式)三进程(三段式

    24、)FSM描述方法描述方法是将状态机的三个模块是将状态机的三个模块分别用分别用3个进程来描述,一个同步时序进程描述状态寄存个进程来描述,一个同步时序进程描述状态寄存器,一个组合逻辑进程描述次态逻辑,最后输出逻辑单器,一个组合逻辑进程描述次态逻辑,最后输出逻辑单独用一个进程来描述。独用一个进程来描述。 表13-5 三种FSM描述方法比较3. 状态机的状态机的VHDL设计相关语句设计相关语句 TYPE 数据类型名数据类型名 IS 数据类型定义数据类型定义 OF 基本数据类型基本数据类型 ;TYPE 数据类型名数据类型名 IS 数据类型定义数据类型定义 ; type m_state is (st0,s

    25、t1,st2,st3,st4,st5);(1 1)状态定义语句)状态定义语句 signal current_state:m_state; -定义现态定义现态signal next_state:m_state; -定义次态定义次态(2 2)状态变量定义语句)状态变量定义语句 描述状态寄存器的进程:描述状态寄存器的进程:process(reset,clk)beginif reset=1 thencurrent_state=初始状态初始状态;elsif clkevent and clk=1 thencurrent_state=next_state;end if;end process;(3 3)三个

    26、模块进程描述语句)三个模块进程描述语句 描述次态逻辑的进程:描述次态逻辑的进程:process(current_state,其他输入信号其他输入信号)beginnext_statenext_stateend case;end process; 描述输出逻辑的进程:描述输出逻辑的进程:process(current_state,其他输入信号其他输入信号)beginoutputoutput=xxx;end case;end process; (1 1)一段式状态机)一段式状态机library ieee ;use ieee.std_logic_1164.all ;entity statmach is

    27、port(clk: inbit;input : inbit;reset : inbit;output: out bit);end statmach;architecture a of statmach istype state_type is (s0, s1);signal state: state_type;begin4. VHDL状态机实例状态机实例process (clk,reset)beginif reset = 1 thenstate state = s1;output if input = 1 thenstate = s0;elsestate = s1;end if; output

    28、 = 1 ;end case;end if;end process;end a;图图13-10 状态转换图状态转换图-Moore型状态机的二段式描述型状态机的二段式描述: library ieee;use ieee.std_logic_1164.all;entity statmach is port (clock, s1, s2, reset : in std_logic; r1, y1, g1, r2, y2, g2 : out std_logic);end ;architecture exemplar of statmach istype state_t is ( st0, st1, st

    29、2, st3, st4, st5, st6, st7 );signal state, nxstate : state_t;beginprocess (reset, clock)begin if (reset=1) then state = st0 ; elsif clockevent and clock=1 then state = nxstate ; end if ;end process;(2 2)二段式状态机)二段式状态机process (state, s1, s2) begin r1 = 0; y1 = 0; g1 = 0; r2 = 0; y2 = 0; g2 g1 = 1; r2

    30、= 1; if s2 = s1 then nxstate = st1; elsif (s1 = 0 and s2 = 1) then nxstate = st2; else nxstate g1 = 1; r2 = 1; nxstate g1 = 1; r2 = 1; nxstate y1 = 1; r2 = 1; nxstate r1 = 1; g2 = 1; if (s1 = 0 and s2 = 0) then nxstate = st5; elsif (s1 = 1 and s2 = 0) then nxstate = st6; else nxstate r1 = 1; g2 = 1;

    31、 nxstate r1 = 1; g2 = 1; nxstate r1 = 1; y2 = 1; nxstate = st0;end case; end process;end exemplar;图图13-11 状态转换图状态转换图-Mealy型状态机的二段式描述型状态机的二段式描述: library ieee;use ieee.std_logic_1164.all;entity stmch1 is port(clk, in1, rst: in std_logic; out1: out std_logic);end stmch1;architecture behave of stmch1 is

    32、type state_values is (sx, s0, s1);signal state, next_state: state_values;begin process (clk, rst) begin if rst = 1 then state = s0; elsif rising_edge(clk) then state = next_state; end if; end process; process (state, in1) begin out1 = 0; next_state if in1 = 0 then out1 =1; next_state = s1; else out1

    33、 = 0; next_state if in1 = 0 then out1 =0; next_state = s0; else out1 = 1; next_state next_state = sx; end case; end process;end behave;图图13-12 状态转换图状态转换图library ieee;use ieee.std_logic_1164.all;entity moore is port( rst: in std_logic;clock: in std_logic;x: in std_logic;z: out std_logic);end moore;ar

    34、chitecture behavior of moore istype state_type is (s0,s1,s2,s3);signal current_state, next_state : state_type;begin(3 3)三段式状态机)三段式状态机synch : process -状态寄存器的进程beginwait until clockevent and clock = 1;if rst=1 thencurrent_state=s1;elsecurrent_state = next_state;end if;end process;state_trans : process

    35、 (current_state,x) -次态逻辑进程beginnext_stateif x = 0 thennext_state = s0;elsenext_state if x = 0 thennext_state = s0;elsenext_state if x = 0 thennext_state = s2;elsenext_state if x = 0 thennext_state = s3;elsenext_state =s1;end if;end case;end process;out: process (current_state,x) -输出逻辑进程beginzz z z z

    36、 = 0;end case;end process;end behavior;图图13-13 状态转换图状态转换图数字秒表的要求及工作原理数字秒表的要求及工作原理n要求:要求:用用VHDL语言设计数字秒表语言设计数字秒表;n计时单位:计时单位:1秒;秒;(即每秒计时即每秒计时1次次)n计时范围:计时范围:60秒;秒;n显示方式:使用显示方式:使用PLD实验板上的实验板上的8个个LED进行显示;进行显示;n用逻辑电路控制用逻辑电路控制8个个LED灯,左边灯,左边4个代表秒表计数个代表秒表计数的十位,右边的十位,右边4个代表秒表计数的个位,在个代表秒表计数的个位,在脉冲信号脉冲信号CP的作用下,间

    37、接显示秒表的的作用下,间接显示秒表的BCD数值;数值;LED灯表示数字秒表的状态示意图:灯表示数字秒表的状态示意图:1秒2秒9秒10秒19秒20秒59秒上图给出了数字秒表(上图给出了数字秒表(60进制计数器)的效果图;进制计数器)的效果图;灯亮代表逻辑灯亮代表逻辑1,灯灭代表逻辑,灯灭代表逻辑0,即得到秒表的转移图。,即得到秒表的转移图。0秒1、分频器设计(用、分频器设计(用VHDL语言描述)语言描述)nCPCP由实验板上的由实验板上的10MHz10MHz有源晶振有源晶振产生产生(长方形的(长方形的“铁块铁块”);从从PLDPLD器件的专用时钟引脚器件的专用时钟引脚Pin12Pin12输入到器

    38、件内部输入到器件内部(在(在QuartusIIQuartusII下进行引脚锁定下进行引脚锁定),), 为计数器提供时钟信号;为计数器提供时钟信号;n由于实验板上所带的连续脉冲由于实验板上所带的连续脉冲CPCP的频率为的频率为10MHz10MHz;因此,需;因此,需要为秒表的计数器设计分频器,将要为秒表的计数器设计分频器,将10MHz10MHz的连续脉冲分频,的连续脉冲分频,得到得到秒脉冲秒脉冲;n再由秒脉冲作为秒表计数器的再由秒脉冲作为秒表计数器的计数频率计数频率。n本质上就是用本质上就是用VHDLVHDL语言设计模值为语言设计模值为1000000010000000的计数器。的计数器。实验任务

    39、实验任务 2、计数器设计(用、计数器设计(用VHDL语言描述)语言描述)n直接的直接的6060进制计数器所对应的是二进制数值,不便于显示;进制计数器所对应的是二进制数值,不便于显示;n因此,可将秒表看做由个位为因此,可将秒表看做由个位为1010进制的计数器和十位为进制的计数器和十位为6 6进制的计数器进行级联构成,这种计数器也称为进制的计数器进行级联构成,这种计数器也称为BCDBCD计数计数器器;n采用采用VHDLVHDL分别描述分别描述1010进制计数器进制计数器和和6 6进制计数器进制计数器,当计数,当计数值为值为5959时,若再来一个时钟脉冲,计数器回到初值时,若再来一个时钟脉冲,计数器

    40、回到初值0 0重新重新计数。计数。n也可以直接描述也可以直接描述6060进制计数器,然后进制计数器,然后除除1010, ,得到的得到的商为十商为十位位,余数为个位。,余数为个位。采用双进程描述的带分频采用双进程描述的带分频60进制计数器进制计数器采用双进程描述的带分频采用双进程描述的带分频60进制计数器(续)进制计数器(续)设计要求如下:(1)总线结构:数据总线位数8位、地址总线3位;(2)存储器:存储容量58位;(3)操作控制器:实现指令操作码所需的操作控制信号;(4)运算器:一个累加器,实现加法操作;(5)指令系统规模:3条指令。 8位模型计算机VHDL的设计13.6数字系统设计举例数字系

    41、统设计举例13.6.1 设计任务及方案构思设计任务及方案构思模型计算机框图存储器(M)时钟信号源操作控制器DRODRI地址寄存器(MAR)程序计数器(PC)ARIPCICLK地址线ABUS数据寄存器(DR)内部数据总线累加器(A)ALUAOAISUMISUMOIRI指令寄存器(IR)和译码器节拍发生器控制信号外部数据总线DBUSdbus译码显示图图13-1 模型计算机结构框图模型计算机结构框图图图13-14 13-14 模型计算机系统顶层原理图模型计算机系统顶层原理图PC: 程序计数器模块程序计数器模块MAR: 地址寄存器地址寄存器ROM: 存储器存储器DR: 数据寄存器数据寄存器控制信号共有

    42、9个,具体是:程序计数器程序计数器PC的计数控制信号的计数控制信号PCI;地址寄存器;地址寄存器MAR的寄存命令信号的寄存命令信号ARI;数据寄存器;数据寄存器DR的寄存命令的寄存命令信号信号DRI;数据寄存器;数据寄存器DR的输出控制信号的输出控制信号DRO;累加器;累加器A的输人命令信号的输人命令信号AI;累加器;累加器A的输出控制信的输出控制信号号AO;ALU的加法运算控制信号的加法运算控制信号SUMI;ALU的输出控制信号的输出控制信号SUMO;指令寄存器指令寄存器IR的寄存命令信号的寄存命令信号IRI。IR: 指令寄存器指令寄存器+译码器译码器COUNTER: 节拍发生器节拍发生器C

    43、TRL:控制器控制器1. 算术逻辑单元(算术逻辑单元(ALU)的)的VHDL源程序源程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity alu is port(ac,dr:in std_logic_vector(7 downto 0); -累加器累加器ac,数据寄存器数据寄存器drsumi:std_logic; -加法运算控制信号加法运算控制信号sumisumo:std_logic; -输出控制信号输出控制信号sumoalu

    44、_out:out std_logic_vector(7 downto 0) ); -运算结果运算结果 end alu;architecture a of alu issignal alu_temp:std_logic_vector(7 downto 0); beginalu_temp=ac+dr when sumi=0;alu_out=alu_temp when sumo=0 else ZZZZZZZZ;end a;13.6.3 次级模块电路的分析及次级模块电路的分析及VHDL实现实现图图13-15 算术逻辑单元时序仿真波形图算术逻辑单元时序仿真波形图2.累加器模块(累加器模块(ACC)的)的

    45、VHDL源程序源程序 library ieee;use ieee.std_logic_1164.all;entity acc is port(data_in:in std_logic_vector(7 downto 0); -数据输入数据输入ai:in std_logic; -累加器累加器a的输入命令信号的输入命令信号ai ao:in std_logic; -累加器累加器a的输出控制信号的输出控制信号ao clk:in std_logic; -时钟频率输入时钟频率输入data_out:out std_logic_vector(7 downto 0) ); -累加器数据输出累加器数据输出end

    46、acc;architecture a of acc issignal regq:std_logic_vector(7 downto 0); beginprocess(clk,ai,ao) begin if (clkevent and clk=1) then if (ai=0) thenregq=data_in; end if;end if;end process;data_out=regq when ao=0 else ZZZZZZZZ;end a; 图图13-16 累加器模块时序仿真波形图累加器模块时序仿真波形图3.节拍发生器(节拍发生器(COUNTER)的)的VHDL源程序源程序 libr

    47、ary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity counter is port(clk,clr:in std_logic; -系统时钟和异步清零控制信号t0,t1,t2,t3,t4,t5,t6,t7:out std_logic ); -节拍脉冲输出end counter;architecture a of counter issignal temp:std_logic_vector(7 downto 0);begint0=temp(0

    48、);t1=temp(1); t2=temp(2); t3=temp(3); t4=temp(4); t5=temp(5); t6=temp(6); t7=temp(7); process(clk,clr)beginif (clr=0) then temp(0)=1; temp(1)=0; temp(2)=0; temp(3)=0; temp(4)=0; temp(5)=0; temp(6)=0; temp(7)=0; elsif(clkevent and clk=1)thentemp(0)=temp(7); temp(1)=temp(0); temp(2)=temp(1); temp(3)=t

    49、emp(2); temp(4)=temp(3); temp(5)=temp(4); temp(6)=temp(5); temp(7)=temp(6); end if;end process; end a;图图13-18 节拍发生器模块时序仿真波形图节拍发生器模块时序仿真波形图4. 指令寄存器模块(指令寄存器模块(IR)和指令译码器的)和指令译码器的VHDL源程序源程序 library ieee;use ieee.std_logic_1164.all;entity ir is port(data_in:in std_logic_vector(7 downto 0); -数据输入iri:in st

    50、d_logic; -指令寄存器ir的寄存命令信号 clk:in std_logic; -系统时钟频率ld,add,halt:out std_logic ); -译码输出的3条指令信号end ir;architecture a of ir issignal regq:std_logic_vector(7 downto 0); beginprocess (clk,iri) -指令寄存器进程 beginif(clkevent and clk=1)then if(iri=0)thenregqld=1;add=0;haltld=0;add=1;haltld=0;add=0;halt ld=0;add=0

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:三段式状态机课件.ppt
    链接地址:https://www.163wenku.com/p-2973212.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库