B设计-徐向民-第四章同步时序电路设计解析.ppt_第1页
B设计-徐向民-第四章同步时序电路设计解析.ppt_第2页
B设计-徐向民-第四章同步时序电路设计解析.ppt_第3页
B设计-徐向民-第四章同步时序电路设计解析.ppt_第4页
B设计-徐向民-第四章同步时序电路设计解析.ppt_第5页
免费预览已结束,剩余40页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章同步时序电路设计 主讲人 蔡剑华单位 电子技术教研组 数字系统设计及VHDL实践 内容纲要 时序电路的特点与组成时序电路的描述方法 ASM图 ASM图的硬件实现 计数器法 有限状态机的VHDL实现关联状态机数字系统控制器 数据处理器模型 1 时序电路的特点与组成 概念 在组合电路中 任一时刻的稳定输出只取决于当时的输入 而在时序电路中任一时刻的稳定输出 不仅取决于当时的输入 还取决于电路原来的状态 即与过去的输入情况有关 逻辑关系 输出方程 驱动方程 状态方程 时序电路的分类 没有统一的时钟脉冲信号 各触发器状态的变化不是同时发生 而是有先有后 按照触发器的动作特点 同步时序逻辑电路 异步时序逻辑电路 所有触发器的状态变化都是在同一时钟信号作用下同时发生的 输出状态仅与存储电路的状态Q有关 而与输入X无直接关系 或者没有单独的输出 按照输出信号的特点 米里 Mealy 型 摩尔 Moore 型 输出状态不仅与存储电路的状态Q有关 而且与外部输入X也有关 1 时序电路的特点与组成 同步时序逻辑电路 异步时序逻辑电路 所有的CP是接在一起的 所以同时动作 时序脉冲只接入了第一块触发器 异步动作 1 时序电路的特点与组成 Moore机模型 Mealy机模型 状态寄存器 次态逻辑 输出逻辑 输出 输入 时钟 这里就是Moore状态机和Mealy的不同所在 Mealy机模型的输出与输入有关 1 时序电路的特点与组成 Mealy 输出状态不仅与存储电路的状态Q有关 而且与外部输入X也有关 Moore 输出状态仅与存储电路的状态Q有关 而与输入X无直接关系 或者没有单独的输出 竞争与冒险 产生次态的电路是组合逻辑电路 组合逻辑电路存在竞争与冒险 可能导致时序系统进入不正确的状态 所谓竞争与冒险 就是在在组合电路中 信号经不同途径传输后 达到电路中某一会合点的时间有先有后 这种现象称为竞争 由于竞争而使电路输出发生瞬间错误的现象 称为冒险 使用同步时序逻辑电路可以克服次态逻辑存在竞争冒险的问题 本章后面主要围绕同步时序电路展开 1 时序电路的特点与组成 竞争与冒险的例子 1 时序电路的特点与组成 当C变化时会引起竞争冒险 使用同步时序逻辑电路可以克服次态逻辑存在竞争冒险的问题 本章后面主要围绕同步时序电路展开 时序电路的常用描述方法 状态机 statemachinediagram ASM图 Algorithmicstatemachine 算法状态机ASM的介绍 ASM本质上是一个有限状态机 主要用于同步系统 ASM精确地表示出状态转换的时间关系 从形式上看 这种流程图类似于描述软件程序的流程图 但它能和实现它的硬件很好的对应起来 2 时序电路的描述方法 ASM图的组成 状态框 用一个矩形框来表示一个状态 状态的名称写在左上角 状态的二进制编码写在右上角 操作内容写在矩形框内 在同步系统中 状态经历的时间至少是一个时钟周期 也可以是几个周期 2 时序电路的描述方法 ASM图的组成 判断框 用单入口双出口的菱形或单入口多出口的多边形符号表示 在菱形和多边形框内写检测条件 在分支出口处注明各分支所满足的条件 判断框必须跟着状态框 判断框的执行与状态框在同一时钟周期内 2 时序电路的描述方法 ASM图的组成 条件框 用椭圆框表示 条件框一定是与判断框的一个转移分支相连接 仅当判断框中判断变量满足相应的转移条件时 才进行条件框中表明的操作和信号输出 虽然条件框和状态框都能执行操作和输出信号 但二者有很大区别 2 时序电路的描述方法 ASM图的组成 2 时序电路的描述方法 状态框 判断框 条件框 ASM图的组成 状态单元 状态单元由一个状态框和若干判断框或条件框组成 状态单元的入口必须是状态框的入口 出口可以有几个 但必须指向状态框 仅包含一个状态框 无判断框和条件框的ASM块是一个简单块 每个状态单元表示一个时钟周期内系统所处的状态 在该状态下完成块内的若干操作 虚线框部分就是一个状态单元 条件框中R 0也在这个状态内执行 2 时序电路的描述方法 3 ASM图的硬件实现 用计数器实现ASM图用多路选择器实现ASM图每个状态一个触发器 定序型 基于ROM法实现ASM图 微程序型 用ASM图描述一个系统控制器时 实际上是描述了该控制器的硬件结构和时序工作过程 因此ASM图与硬件有很好的对应关系 ASM图的硬件实现有以下几种方法 ASM图的硬件实现一共有4种方法 我们在这里重点讲解用计数器实现ASM图 3 ASM图的硬件实现 用计数器法实现ASM图的流程 ASM图的状态分配 n个状态变量可以描述2的n次方个状态 该ASM图中有3个状态 所以需要两个状态变量 设两个状态变量为Q2Q1 我们选用2个D触发器 用二进制计数序列依次表示状态 用计数器法实现ASM图的流程 状态转换表 因为10和11状态与输入X无关 所以X值可作任意值处理 表中01未指定状态 采用计数器实现 因此需考虑因偶然因素出现01状态时 应强迫其次态为00 所以一旦出现01状态后 经过一个时钟周期就可以自动回到有用状态循环 3 ASM图的硬件实现 用计数器法实现ASM图的流程 由状态转换表推导触发器的驱动方程 对于复杂的ASM图和相应的状态表可用卡诺图对次态进行化简 得到简化的驱动方程 ASM图除了可以得到状态表和驱动方程外 还可得到输出方程 3 ASM图的硬件实现 ASM图的硬件实现 采用计数器法实现ASM图 一旦ASM图有很小的改动 就需重新设计与次态相关的组合电路部分 此外 当系统的状态超过8个时 ASM图的硬件实现也很复杂 3 ASM图的硬件实现 学习ASM图的硬件实现有助于我们更好的理解后续的内容 下面我们将学习如何用VHDL实现ASM图 4 有限状态机的VHDL实现 用VHDL设计的状态机有多种形式 1 从状态机的信号输出方式上分有Mealy型和Moore型 2 从结构上分 有单进程和多进程状态机 3 从表达方式上分有符号化状态机和确定状态编码的状态机 符号化的状态机 所谓符号化的状态机 就是在程序的说明部分使用TYPE语句定义枚举类型 其元素用状态机的状态名来定义 状态变量 如状态机的现态和次态 定义为变量或信号 并将状态变量的数据类型定义为含有既定状态元素的枚举类型 当使用多进程结构时 便于信息的传递 要将状态变量定义为信号 Architecture isTypeFSM STis S0 S1 S2 S3 Signalcurrent state next state FSM ST 4 有限状态机的VHDL实现 符号化的状态机 本章重点介绍单进程 双进程和三进程的状态机 单进程 把状态类型和状态变量的定义放在进程的说明部分 将状态变量定义为变量类型 双进程 将组合逻辑部分和时序逻辑部分分开描述 放在结构体的说明部分 三进程 将组合逻辑部分再分为产生次态的组合逻辑部分和产生输出的组合逻辑部分 与时序逻辑部分一起放在结构体的说明部分 4 有限状态机的VHDL实现 要求设计一套交叉路口交通信号灯 该路口有一条交通干线与支线 支线上装有传感器 当支线有车通过时 传感器输出信号CAR 1 正常的工作状态是干线亮绿灯 支线亮红灯 当CAR 1时 干线亮红灯 支线亮绿灯 并开始计时 START TIMER 1 当计时结束 即信号TIMED 1时 重新回到正常工作状态 干线亮绿灯 支线亮红灯 我们用下面的例子来说明符号化的状态机 4 有限状态机的VHDL实现 根据设计要求 我们先确定系统的输入 clock car timed 2 然后确定系统的输出 start timer major green minor green 枚举类型 3 分析系统所有可能出现的状态 state G major green 1 minor green 0 state R major green 0 minor green 1 4 根据题意 画出ASM图 设计步骤 4 有限状态机的VHDL实现 1 单进程状态机 Process clock timed car typestate typeis G R variablestate state type Beginif rising edge clock thencasestateiswhenG major green 1 minor green 0 if car 1 thenstart timer 1 state R endif whenR major green 0 minor green 1 if timed 1 thenstate G endif endcase endif Endprocess 1 单进程状态机 单进程中状态变量可以定义为变量类型 放在进程的说明部分 一般在进程的开头写上时钟有效边沿的检测语句 注意在这里进程敏感参数表中的car和timed可省去 Rising edge clock 也可以写成clock eventandclock 1 条件涵盖不完整的if语句会产生寄存器 这是将时序电路和组合电路混合的系统 有时会引入不必要的寄存器 如果将描述时序的部分放在具有边沿检测条件的IF语句或wait语句的进程中 而将描述组合电路的语句放在普通的进程中 这样可以有效控制寄存器的引入 1 单进程状态机 2 双进程状态机 描述一个状态机用两个进程 一个用于产生状态寄存器 另一个用于产生次态和输出逻辑 4 有限状态机的VHDL实现 状态寄存器 输入 输出 次态 现态 次态逻辑部分 输出逻辑部分 Architectureasm2oftrafficistypestate typeis G R signalpresent state next state state type Beginseq process clock beginif rising edge clock thenpresent state next state 次态是寄存器的输入endif 条件涵盖不完整的if语句产生状态寄存器endprocessseq 产生状态寄存器的进程 仍以交通灯为例 com process present state car timed beginstart timermajor green 1 minor green 0 if car 1 thenstart timer 1 next state R elsenext state G endif whenR major green 0 minor green 1 if timed 1 thennext state G elsenext state R endif endcase endprocesscom Endasm2 产生次态和输出逻辑的进程 2 双进程状态机 双进程中状态变量要定义为信号类型 用于进程间信息传递 可以在产生寄存器的进程中加上异步复位语句 用于确定初始状态 注意在com进程中if语句要写完整if else Seq process reset clock Beginifreset 1 thenpresent state G elsif clock 1 andclock event thenpresent state next state endif Endprocessseq 4 有限状态机的VHDL实现 3 三进程状态机 用三个进程来描述一个状态机 第一个进程用于产生状态寄存器 和双进程的类似 第二个用于产生次态逻辑 第三个用于产生输出逻辑 如Moore机和Mealy机模型 Moore机的输出在时钟的有效边沿后n个门时延后 输出达到稳定并在一个完整的周期内保持不变 即输出比输入晚一个时钟周期达到稳定 并可以将输出与输入隔开 这是Moore机的重要特点 P100 5 1 4 有限状态机的VHDL实现 3 三进程状态机 用三个进程来描述一个状态机 第一个进程用于产生状态寄存器 和双进程的类似 第二个用于产生次态逻辑 第三个用于产生输出逻辑 如Moore机和Mealy机模型 Mealy机的输出受输入影响 因为输入可能在一个时钟周期的任何时刻发生变化 输出在输入变化后几个门延时后发生变化 所以输入的噪声也会影响到输出 在实际应用中 要慎重选择状态机的类型 4 有限状态机的VHDL实现 仍以交通灯为例 ns process car timed present state Begincasepresent stateiswhenG if car 1 thennext stateif timed 1 thennext state G elsenext state R endif endcase Endprocessns 产生次态逻辑的进程 op process car present state MealyBeginstart timer 0 if present state G thenmajor green 1 minor green 0 if car 1 thenstart timer 1 endif elsemajor green 0 minor green 1 Endif Endprocessop 产生输出逻辑的进程 Op进程也可以用并行语句改写 Start timer 1 when present state Gandcar 1 else 0 Major green 1 when present state G else 0 Minor green 1 when present state R else 0 注意 用并行语句改写 不能再使用进程 4 有限状态机的VHDL实现 举例 序列检测器 序列检测器是用来检测一组或多组序列信号的电路 要求当检测器连续收到一组串行码1110010后 输出为1 否则输出位0 序列检测器的I O口设计如下 x是串行输入端 z是输出端 当x连续输入1110010时z输出为1 电路需要记忆8种初始状态 1 11 111 1110 11100 111001 1110010 ASM图见课本P 78图4 24 注意 并不是在任何状态下 一旦接受到的x不满足要求 就立即回到初始状态 如 当x输入为 11110010 时 根据ASM图可知在S3状态接收到1 则仍然保持在S3状态 然后又接收到0 在跳到s4状态 没有必要在从S0状态开始 具体的VHDL描述参见课本P 78例4 5 举例 序列检测器 5 关联状态机 通过信号互相连接的两个或两个以上的状态级称为关联状态机 要求设计一套交叉路口交通信号灯 该路口有一条交通干线与支线 支线上装有传感器 当支线有车通过时 传感器输出信号CAR 1 正常的工作状态是干线亮绿灯 支线亮红灯 当CAR 1时 干线亮红灯 支线亮绿灯 并开始计时 START TIMER 1 当计时结束 即信号TIMED 1时 重新回到正常工作状态 干线亮绿灯 支线亮红灯 5 关联状态机 仍以交通灯为例 根据题意可知 系统可以分为信号控制器和定时器两个部分 定时器 当接收到信号CAR 1 时 定时器启动计时 计数结束后输出信号给控制器 信号控制器 控制器的状态机共有G R两种状态 输入信号为CAR TIMED 输出信号为计数使能信号ENABLE 5 关联状态机 ENABLE CAR TIMED ENABLE ENABLE TIMED G 0 R 0 1 0 0 1 1 1 S255 S0 交通灯例子的ASM图 使用关联状态机 6 数字系统控制器 数据处理器模型 控制器 数据处理器 控制信号 状态信号 输入 输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论