硬件描述语言及器件 竞争与冒险学习PPT_第1页
硬件描述语言及器件 竞争与冒险学习PPT_第2页
硬件描述语言及器件 竞争与冒险学习PPT_第3页
硬件描述语言及器件 竞争与冒险学习PPT_第4页
硬件描述语言及器件 竞争与冒险学习PPT_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、竞争与冒险 在组合逻辑电路中,输入到同一个门的一组信号, 或由于来自于不同的路径,或由于通过门的个数 不同,或由于经过不同长度的传输线,或由于各 信号输出门的差异等,致使这些信号到达门电路 输入端的时间有早有晚,这种现象叫做竞争。由 于在门的输入端有竞争而导致在其输出产生了干 扰脉冲,则称为冒险。 竞争冒险举例 有竞争不一定会产生冒险,但有冒险必然是由竞争引起的。 冒险的危害 在计数器电路中, 如果输入有冒险, 就会产生错误的计 数 低速电路常用消抖方法 竞争和冒险在组合逻辑电路中普遍存在,竞争现 象客观存在无法消除。 在输出端对地接一几百pf的小电容c,将输出端的 干扰脉冲抑制到门电路的翻转

2、电平门限之外. 缺点:仅适用于低速电路。 高速电路外部消抖 在高速系统中,对数字信号的延迟及其边 沿的上升、下降时间有严格的限制,如 max7000和74act器件要求输入上升时间和 下降时间的典型值为3ns,加入几百pf的电 容会使其边沿时间大大超过该值,所以对 输出信号滤波是不允许的;但对于74hc系 列器件的边沿时间最长可以到500ns,对输 出信号用小电容滤波是允许的。 同步电路消除冒险 用触发器及同步脉冲cp对输入输出进行同步可以 消除部分竞争与冒险 vhdl程序 architecture a of synand_or is signal qa,qb,y1,y2:std_logic;

3、 begin p1:process(cp) begin if cpevent and cp=1 then qa=a; qb=b; end if; end process p1; y1=qa and qb; y2=qa or qb; p2:process(cp) begin if cpevent and cp=1 then q1=y1; q2=y2; end if; end process p2; end a; 软件消抖举例 process(grst,fosc) variable state_cnt : integer range 0 to 10; variable state_st : int

4、eger range 0 to 1; begin if grst = 0 then state_cnt := 0; state1 if state = 0 and state_cnt 5 then state_cnt := state_cnt + 1; elsif state = 0 and state_cnt = 5 then state1 = 0; state_st := 1; else state1 if state = 1 and state_cnt 5 then state_cnt := state_cnt + 1; elsif state = 1 and state_cnt = 5

5、 then state1 = 1; state_st := 0; else state1 = 0; state_cnt := 0; end if; end case; end if; end process pro4; 状态机的优越性1 有限状态机克服了纯硬件数字系统顺序方 式控制不灵活的缺点。状态机的工作方式是根 据控制信号按照预先设定的状态进行顺序运行 的,状态机是纯硬件数字系统中的顺序控制电 路,因此状态机在其运行方式上类似于控制灵 活和方便的cpu,而在运行速度和工作可靠性方 面都优于cpu。 状态机的优越性2 由于状态机的结构模式相对简单,设计方 案相对固定,特别是可以定义符号化枚举

6、类型 的状态,这一切都为vhdl 综合器尽可能发挥其 强大的优化功能提供了有利条件。而且,性能 良好的综合器都具备许多可控或自动的专门用 于优化状态机的功能。 状态机的优越性3 状态机容易构成性能良好的同步时序逻辑 模块,这对于对付大规模逻辑电路设计中令人 深感棘手的竞争冒险现象无疑是一个上佳的选 择。为了消除电路中的毛刺现象,在状态机设 计中有多种设计方案可供选择。 状态机的优越性4 与vhdl的其他描述方式相比,状态机的 vhdl表述丰富多样、程序层次分明,结构清晰, 易读易懂;在排错、修改和模块移植方面也有 其独到的特点。 状态机的优越性5 就运行速度而言,尽管cpu和状态机都是按照时钟

7、 节拍以顺序时序方式工作的,但cpu是按照指令周期, 以逐条执行指令的方式运行的;每执行一条指令,通常 只能完成一项简单的操作,而一个指令周期须由多个机 器周期构成,一个机器周期又由多个时钟节拍构成;一 个含有运算和控制的完整设计程序往往需要成百上千条 指令。相比之下,状态机状态变换周期只有一个时钟周 期,而且,由于在每一状态中,状态机可以完成许多并 行的运算和控制操作,所以,一个完整的控制程序,即 使由多个并行的状态机构成,其状态数也是十分有限的。 一般由状态机构成的硬件系统比cpu所能完成同样功能 的软件系统的工作速度要高出三至四个数量级。 状态机的优越性6 就可靠性而言,状态机的优势也是

8、十分明显的。 cpu本身的结构特点与执行软件指令的工作方式决定了 任何cpu都不可能获得圆满的容错保障。因此,用于要 求高可靠性的特殊环境中的电子系统中,如果以cpu作 为主控部件,应是一项错误的决策。然而,状态机系统 就不同了,首先它是由纯硬件电路构成,不存在cpu运 行软件过程中许多固有的缺陷;其次是由于状态机的设 计中能使用各种完整的容错技术;再次是当状态机进入 非法状态并从中跳出,进入正常状态所耗的时间十分短 暂,通常只有2、3个时钟周期,约数十个ns,尚不足以 对系统的运行构成损害;而cpu通过复位方式从非法运 行方式中恢复过来,耗时达数十ms,这对于高速高可靠 系统显然是无法容忍的

9、。 状态机分类 从状态机的信号输出方式上分有mealy型和moore型 两种状态机; 从结构上分,有单进程状态机和多进程状态机; 从状态表达方式上分有符号化状态机和确定状态编 码的状态机; 从编码方式上分有顺序编码状态机、一位热码编码 状态机或其他编码方式状态机。 然而最一般和最常用的状态机通常包含说明部分、 主控时序进程、主控组合进程、辅助进程几个部 分。 某状态机举例 说明部分 说明部分中使用type语句定义新的数据类型,此 数据类型为枚举型,其元素通常都用状态机的状 态名来定义。状态变量 (如现态和次态) 应定义 为信号,便于信息传递;并将状态变量的数据类 型定义为含有既定状态元素的新定

10、义的数据类型。 说明部分一般放在结构体的architecture和begin 之间,例如: architecture is type fsm_st is (s0,s1,s2,s3); signal current_state,next_state: fsm_st; 主控时序进程 所谓主控时序进程是指负责状态机运转和在时钟驱动下负 责状态转换的进程。状态机是随外部时钟信号,以同步时 序方式工作的。因此,状态机中必须包含一个对工作时钟 信号敏感的进程,作为状态机的“驱动泵” 。当时钟发 生有效跳变时,状态机的状态才发生变化。状态机向下一 状态(包括再次进入本状态)转换的实现仅仅取决于时钟信 号的到

11、来。一般地,主控时序进程可以不负责下一状态的 具体状态取值,如s0、s1、s2、s3中的某一状态值。当时 钟的有效跳变到来时,时序进程只是机械地将代表次态的 信号nextstate中的内容送入现态的信号current state中,而信号nextstate中的内容完全由其他的进程 根据实际情况来决定,当然此进程中也可以放置一些同步 或异步清零或置位方面的控制信号。总体来说,主控时序 进程的设计比较固定、单一和简单。 主控组合进程 主控组合进程的任务是根据外部输入的控制信号 (包括来自状态机外部的信号和来自状态机内部其 他非主控的组合或时序进程的信号),或(和)当前 状态的状态值确定下一状态(n

12、ext_ state)的取向, 即next_state的取值内容,以及确定对外输出或 对内部其他组合或时序进程输出控制信号的内容。 辅助进程 如用于配合状态机工作的组合进程或时序进程, 例如为了完成某种算法的进程;或用于配合状态 机工作的其他时序进程,例如为了稳定输出设置 的数据锁存器等。 实体及说明部分(枚举类型) library ieee; use ieeestd_logic_164all; entity s_ machine is port (clk,reset :in std_logic; state_inputs:in std_logic_ vector (0 to 1); comb

13、_outputs : out integer 0 to 15 ); end s_ machine; architecture behv of s_ machine is type fsm_st is (s0, s1, s2, s3); signal current_state, next_state: fsm_st; 结构体中主控时序进程 begin reg: process (reset,clk) begin if reset =1 then current_state =s0; elsif clk=1 and clkevent then current_state comb_ output

14、s= 5; if state_ inputs = ”00” then next_ state=s0; else next_ state comb_ outputs= 8; if state_ inputs = ”00” then next state=s1; else next_ state comb_ outputs= 12; if state_ inputs = “11” then next _state = s0; else next _state comb_ outputs = 14; if state_ inputs =”11” then next _state =s3; else

15、next_ state = s0; end if; end case; end process; end behv; 仿真结果 moore输出只是状态机当前状态的函数 mealy输出为有限状态机当前值和输入值的函数 某moore状态机举例 设计要求:设计一个存储控制器状态机。能够根据微处理 器的读写周期,分别对存储器输出写使能we和读使能oe信 号。 工作过程:存储控制器的输入信号为微处理器的就绪 ready及读写read_write信号。当上电复位后,或read有 效时,存储控制器开始工作,并在下一个时钟周期判断本 次作业任务是读存储器还是写存储器。 判断的依据是,当read_write有效

16、时为读操作,否则为写 操作。也就是说非读即写。读操作时,oe信号有效,写操 作时,we信号有效。当ready信号有效时,表示读本次作 业处理完成,并使控制器恢复到初始状态。 library ieee; use ieee.std_logic_1164.all; entity moore is port(clk,ready,read_write: in std_logic; oe,we : out std_logic); end moore; architecture state_machine of moore is type state_type is (idle,decision,read,

17、write); signal present_state,next_state: state_type; begin state_clocked:process(clk) begin if(rising_edge(clk) then present_state oe=0; we=0; if(ready=1) then next_state=decision; else next_state oe=0; we=0; if(read_write=1) then next_state=read; else next_state oe=1; we=0; if(ready=1) then next_st

18、ate=idle; else next_state oe=0; we=1; if(ready=1) then next_state=idle; else next_state=write; end if; end case; end process state_comb; end state_machine; 某mealy状态机举例 与moore型状态机相比,mealy机的输出变化要领 先一个周期,即一旦输入信号或状态发生变化, 输出信号即刻发生变化。moore机和mealy机在设 计上基本相同,稍有不同之处是,mealy机的组合 进程中的输出信号是当前状态和当前输入的函数。 某mealy状态机举例 枚举型数据类型,定义四个状态 library ieee; use ieee.std_logic_11

温馨提示

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

评论

0/150

提交评论