EDA技术入门与提高 第二版 教学课件 ppt 作者 王行 全书 第10章

上传人:E**** 文档编号:89347736 上传时间:2019-05-23 格式:PPT 页数:43 大小:1.38MB
返回 下载 相关 举报
EDA技术入门与提高 第二版 教学课件 ppt 作者 王行 全书 第10章_第1页
第1页 / 共43页
EDA技术入门与提高 第二版 教学课件 ppt 作者 王行 全书 第10章_第2页
第2页 / 共43页
EDA技术入门与提高 第二版 教学课件 ppt 作者 王行 全书 第10章_第3页
第3页 / 共43页
EDA技术入门与提高 第二版 教学课件 ppt 作者 王行 全书 第10章_第4页
第4页 / 共43页
EDA技术入门与提高 第二版 教学课件 ppt 作者 王行 全书 第10章_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《EDA技术入门与提高 第二版 教学课件 ppt 作者 王行 全书 第10章》由会员分享,可在线阅读,更多相关《EDA技术入门与提高 第二版 教学课件 ppt 作者 王行 全书 第10章(43页珍藏版)》请在金锄头文库上搜索。

1、第10章 设计中的常见问题,10.1 信号毛刺的产生及消除 10.2 时钟问题 10.3 复位和清零信号,10.1 信号毛刺的产生及消除 10.1.1 信号毛刺的产生 信号在可编程器件内部通过连线和逻辑单元时,会有一定的延时,延时的长短与信号通道上的连线长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面的因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出状态不确定,往往会出现一些不正确的尖峰信号,这些尖峰信号称为“毛刺”。如果一个组合逻辑电路中有“毛刺”出现,就说明该电路存在“冒险”。,由于信号

2、路径长度的不同,多级组合电路、译码器、数值比较器以及状态计数器等器件本身容易出现冒险现象,时钟端口、清零和置位端口对毛刺信号十分敏感,这些端口出现的任何毛刺都可能会使系统出错,因此判断逻辑电路中是否存在冒险以及如何避免冒险是设计人员必须要考虑的问题。 如图10.1所示的电路就是一个会出现冒险的电路,根据电路结构原理,3位计数器对时钟信号“clk”进行计数,计数值通过一个两级与门逻辑,控制一个D触发器的强制置位端,当信号“q0”、“q1”、“q2”均为“1”时,输出端“out”输出为“1”,其余时刻输出端“out”输出为“0”。,图10.1 存在“冒险”的组合逻辑,电路的期望时序如图10.2所示

3、。,图10.2 电路的期望时序,实际上,按照如图10.1所示的电路,使用Quartus进行时序仿真后,获得的实际时序仿真波形如图10.3所示。,图10.3 实际时序仿真波形,当计数器的计数值由“4”变为“5”时,“out”信号产生了意外的脉冲输出,显然此时序无法满足设计要求。对信号线“PROBE1”的时序进行分析,获得如图10.4所示的时序波形。,图10.4 “PROBE1”的时序波形,当信号“q20”的值由“3”变为“4”以及由“5”变为“6”时,在信号“PROBE1”上会出现两个毛刺,从而导致了输出信号“out”的异常脉冲输出,显然毛刺是由信号“q20”与“PROBE1”间的如图10.5所

4、示的组合逻辑电路产生的。,图10.5 产生毛刺的组合逻辑电路,查看编译报告中的“Classic Timing Analyzer”模块,分析如图10.5所示的组合逻辑部分的延时,获得如图10.6所示的延时矩阵。,图10.6 获得的延时矩阵,信号q20由“000”变到“111”的过程如表10.1所示。当信号q20由“011”变为“100”和由“101”变为“110”时,由于器件延时的不同,会出现在某一个时间段内信号“q2”、“q1”和“q0”同时为“1”的情况。 表10.1 信号q20的状态变化表,10.1.2 信号毛刺的解决方法 常用的消除信号毛刺的方法有两种:一是通过对后续电路的改进,避免毛刺

5、对后续电路的影响;二是在计数过程和组合逻辑中就避免毛刺的产生。 采用第一种方法,使用如图10.7所示的同步电路设计,在信号“PROBE1”与触发器“PRN”端之间添加一个新的D触发器,由“clk”信号下降沿控制触发,保证在触发的时刻组合逻辑输出的信号已经稳定,同时该触发器输出信号Q通过一个延迟门与“PRN”端组成正反馈回路,保证足够的脉宽。,图10.7 添加D触发器的电路,图10.8 改进后的电路的仿真时序,改进后的电路的仿真时序如图10.8所示。,在如图10.8所示的时序过程中,电路毛刺并没有被消除,只是通过添加触发器将毛刺对后续电路的影响消除了。 这种方法也存在不足,即增加了输出信号与时钟

6、信号之间的延时;另外,当系统的时钟频率很高时,毛刺在时钟信号的下降沿时刻可能还没有消失,仍然会影响后续电路。 另一种能完全避免毛刺产生的方法就是使用格雷码计数器,在每次计数状态变化过程中只有一位信号发生变化,如表10.2所示,这样就避免了毛刺产生的可能。,表10.2 信号q20的状态变化表,图10.9 采用格雷码计数器后的电路,采用格雷码计数器后的电路如图10.9所示。,图10.9中的“modcount”是一个自定义的3位格雷码计数器模块,其描述如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.

7、ALL; ENTITY modcount IS PORT(clk:IN STD_LOGIC; reset:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(2 DOWNTO 0) );,END ENTITY modcount; ARCHITECTURE behav OF modcount IS SIGNAL rr:STD_LOGIC_VECTOR(2 DOWNTO 0); -状态变量 CONSTANT st0:STD_LOGIC_VECTOR(2 DOWNTO 0):=“ 101“ ; -状态常数设置 CONSTANT st1:STD_LOGIC_VECTOR(2 DO

8、WNTO 0):=“ 100“ ; CONSTANT st2:STD_LOGIC_VECTOR(2 DOWNTO 0):=“ 000“ ;,CONSTANT st3:STD_LOGIC_VECTOR(2 DOWNTO 0):=“ 001“ ; CONSTANT st4:STD_LOGIC_VECTOR(2 DOWNTO 0):=“ 011“ ; CONSTANT st5:STD_LOGIC_VECTOR(2 DOWNTO 0):=“ 010“ ; CONSTANT st6:STD_LOGIC_VECTOR(2 DOWNTO 0):=“ 110“ ; CONSTANT st7:STD_LOGIC

9、_VECTOR(2 DOWNTO 0):=“ 111“ ; BEGIN PROCESS(clk),BEGIN IF (clk event AND clk= 1 ) THEN CASE rr IS WHEN st0 = rr rr rr rr rr rr rr rr =st0;,END CASE; q= rr; END PROCESS; END behav; 使用格雷码计数器后,系统仿真时序如图10.10所示。,图10.10 使用格雷码计数器后的仿真时序,在如图10.10所示的系统时序中,由于使用了格雷码计数器,每次只改变一位输出值的状态,因此从根本上消除了毛刺的产生,系统更为稳定。 在数字电路

10、中,采用格雷码计数器、同步电路等可以大大减少毛刺,但它并不能完全消除所有的毛刺。毛刺并不是对所有的输入都有危害。例如D触发器的D输入端,只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间,一般不会对系统造成危害。因此,在设计数字电路时,需要综合考虑毛刺的影响,在保证电路稳定的情况下,尽量简化设计。,10.2 时 钟 问 题 在时序电路的设计中,时钟信号常常用来对各类信号进行同步采样,以实现电路的同步,从而保证系统的稳定性。在极限温度、电压或制造工艺存在偏差的情况下,设计不良的时钟将导致系统错误的行为,因此稳定的时钟设计非常关键。在FPGA设计时通常采用全局时钟、门控时钟、多级逻辑时钟和波

11、动式时钟这4种时钟类型。多时钟系统是这4种时钟类型的任意组合。,10.2.1 信号的建立和保持时间 在设计时钟前,设计者需要考虑的第一件事就是信号的建立和保持时间。所谓信号的“建立时间”,是指在时钟的上升沿或下降沿之前数据必须保持稳定(无跳变)的时间。“保持时间”是指在时钟跳变后数据必须保持稳定的时间。建立时间与保持时间的关系如图10.11所示。为了保证在时钟信号翻转时采集数据的正确性,一般在数据信号发生时间的中间段进行采集,这就要求有足够的信号建立和保持时间,所有采用时钟和数据输入的同步数字电路都要求提供这两个时间参数。,图10.11 建立时间与保持时间的关系,要求数据稳定接收就必须满足建立

12、和保持时间的要求,否则在时钟上升沿或下降沿读取的数据就可能有错误,从而使电路变得不稳定。在FPGA设计中,应该尽量避免在数据建立时间内或其附近读取数据。对于级联的功能模块或者数字逻辑器件,后一模块或器件的工作时钟一般取前一模块或器件工作时钟的反相信号,这样就可以保证时钟的边沿位于数据的保持时间内。,10.2.2 全局时钟 在一个数字系统中,如果每一个顺序逻辑单元(Sequential Logic Element)都是用同一个参考时钟脉冲来驱动的,则可称该系统为同步系统,驱动同步系统的参考时钟就是全局时钟。全局时钟驱动的同步系统可以小到一个简单的逻辑芯片,大到一个多插槽式模组,其包含的顺序逻辑单

13、元可以是寄存器(Register)、先进先出(FIFO)缓冲器、同步内存(Memory) 等。,对于一个设计项目来说,全局时钟是最简单和最可预测的时钟。在FPGA设计中,最好的时钟方案是:由专用的全局时钟输入引脚驱动单个主时钟去控制设计项目中的每一个触发器。FPGA芯片一般都具有专用的全局时钟引脚,在设计项目时应尽量采用全局时钟,它能够提供器件中最短的时钟到输出的延时。 图10.12所示的是全局时钟的一个典型实例。 图10.12中的全局时钟控制三级组合电路的运行,每次得到的结果被全局时钟控制的D触发器锁存,使运行过程与全局时钟同步。,图10.12 全局时钟实例,10.2.3 门控时钟 在许多应

14、用中,整个设计项目都采用外部的全局时钟是不可能的,所以通常用阵列时钟构成门控时钟。门控时钟常常同微处理器接口有关,例如用地址线去控制写脉冲。每当用组合逻辑来控制触发器时,通常都存在着门控时钟。在使用门控时钟时,应仔细分析时钟函数,以避免毛刺的影响。如果设计满足下述两个条件,则可以保证时钟信号不出现危险的毛刺,门控时钟就可以像全局时钟一样可靠工作:,(1) 直接驱动时钟的逻辑中只允许包含一个“与门”或一个“或门”,如果采用其他的附加逻辑,就会在某些工作状态下出现由于逻辑竞争而产生的毛刺。 (2) 逻辑门的一个输入作为实际的时钟,而该逻辑门的所有其他输入必须当成地址或控制线,它们遵守相对于时钟的建

15、立和保持时间的约束。 图10.13所示为一个使用与门的门控时钟电路。 将门控时钟与全局时钟同步能改善设计项目的可靠性。使用带有使能端的D触发器可以实现门控时钟与全局时钟的同步。带有使能端的D触发器的符号如图10.14所示。,图10.13 使用与门的门控时钟电路,图10.14 带有使能端的D触发器的符号,使用时,将门控时钟接D触发器的使能端,全局时钟接D触发器的时钟输入端,这样就能保持门控时钟与全局时钟的同步。 当产生门控时钟的组合逻辑超过一级,即超过单个的“与门”或“或门”时,该设计项目的可靠性将变得很差。在这种情况下,即使样机或仿真结果没有显示出静态险象,但实际上仍然可能存在危险,所以我们不

16、应该用多级组合逻辑去作为触发器的时钟端。多级逻辑的险象可以通过插入“冗余逻辑”到设计项目中去除,但是FPGA编译器在逻辑综合时会去掉这些冗余逻辑,这就使得验证险象是否真正被去除变得十分困难。为此,设计人员应寻求其他方法来实现电路的功能,尽量避免使用多级门控时钟。,10.2.4 多时钟系统 在设计中常常会碰到多时钟系统,即在一个系统中存在多个时钟信号,例如异步通信接口或者两个不同时钟信号驱动的微处理器之间的接口。由于两个时钟信号之间要求一定的建立和保持时间,因此上述应用引进了附加的定时约束条件,要求接口系统将某些异步信号同步化。,如图10.15所示即为一个双时钟系统的实例。该系统有两路彼此独立的时钟信号:clk_a信号为3 MHz,用于驱动触发器A;clk_b信号为6 MHz,用于驱动触发器B。两个触发器的输出信号要进行逻辑与

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号