触发器涉及到的问题的一系列思考.doc

上传人:博****1 文档编号:550854316 上传时间:2024-01-25 格式:DOC 页数:5 大小:47.50KB
返回 下载 相关 举报
触发器涉及到的问题的一系列思考.doc_第1页
第1页 / 共5页
触发器涉及到的问题的一系列思考.doc_第2页
第2页 / 共5页
触发器涉及到的问题的一系列思考.doc_第3页
第3页 / 共5页
触发器涉及到的问题的一系列思考.doc_第4页
第4页 / 共5页
触发器涉及到的问题的一系列思考.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《触发器涉及到的问题的一系列思考.doc》由会员分享,可在线阅读,更多相关《触发器涉及到的问题的一系列思考.doc(5页珍藏版)》请在金锄头文库上搜索。

1、触发器涉及到的问题的一系列思考:建立时间:触发器在时钟沿来到前,其数据输入端的数据必须保持不变的时间保持时间:触发器在时钟沿来到后,其数据输入端的数据必须保持不变的时间 因为触发器内部数据的形成是需要一定的时间的,如果不满足建立和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输出将不稳定,在0和1之间变化,这时需要经过一个恢复时间,其输出才能稳定,但稳定后的值并不一定是你的输入值。这就是为什么要用两级触发器来同步异步输入信号。这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。 两级触发器可防止亚稳态传播的原理:假设

2、第一级触发器的输入不满足其建立保持时间,它在第一个脉冲沿到来后输出的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输出的亚稳态数据在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间,如果都满足了,在下一个脉冲沿到来时,第二级触发器将不会出现亚稳态,因为其输入端的数据满足其建立保持时间。同步器有效的条件:第一级触发器进入亚稳态后的恢复时间 + 第二级触发器的建立时间 Tmax+Tco+Tsetup(这种情况时给定了右边这几个参数之后要你选择时钟频率)如果考虑更细一点呢,即还要考虑时钟延迟Tpd,时钟偏移Tskew,甚至温度,电源带来的影响?那我就无能为力了!哈哈。下面谈谈

3、保持时间,说了这么多,可能又忘记前面的概念了,什么是保持时间:触发器在时钟沿来到后,其数据输入端的数据必须保持不变的时间。首先要声明的是,一般的设计当中,保持时间远没有建立时间来的重要。谈保持时间,就要考虑Tmin了,因为在谈建立时间的时候是讨论怎么样延迟小来满足建立时间。而这里就是如果来得太快,也会出问题。因为,保持时间的含义就是这个数据必须要经过这么长的时间处理,在这个时间段里,不允许输入端有变化的信号,你如果来得太快,那么有可能触发器的输出将可能出错(有可能触发器内部电容没有充放电完全)。这样,因为第一个触发器输出的数据最快也要Tmin到达,所以,保持时间要小于这个时间,也就是你要尽快处

4、理。即TholdTmin。这样,在信号到达第二个触发器的时候,他们允许你到达了(但是不让你进哦,还有一个建立时间)。如果深入探讨一点,我们又来考虑一下Tco,即信号在触发器中的延迟,如果考虑到他,那么上面那个公式要改为:TholdTmin+Tco。下面谈谈在FPGA当中的最大时钟频率的估算问题了解了前面的一些概念以后,我们知道我的系统的时钟周期要有一定的长度,这个长度要覆盖建立时间Tsetup,触发器的输出延迟Tco,组合逻辑延迟Tlogic,现在我么年考虑更细一点,即再包含一个布线延迟,我们必须估算出布线延迟才能更精确的知道所能达到的上限频率,但是xilinx公司没有给出布线延迟的模型,不过

5、业内通过统计分析表明,逻辑延迟与布线延迟的比值约为1:1到1:2由于我们所选用的芯片大量已经进入0.18um和0.13um深亚微米的工艺,因此我们取逻辑延迟与布线延迟比值为1:2,这样我们可以这样计算最大周期时间,Tmax = Tsetup+ Tco+Tlogic+Troute = Tsetup+ Tco+Tlogic+2Tlogic = Tsetup+ Tco+3Tlogic这样,我们的上限频率为Fmax = 1 / Tmax注意:由于针对某一个器件(可能一种特定工艺下的库单元,他的触发器的时序参数时固定的)他的Tsetup和Tco是固定的,因此我们在设计中要考虑的参数只有两个Tlogic和

6、Troute,通过良好的设计和诸如流水线技术我们可以把这两个指标控制在一个合理的范围之内。现在来讨论设计建立时间和保持时间的一些工程问题:流水线技术;为什么要用两级触发器来同步异步输入信号见最前面的讨论,这里还不是非常清楚,留待以后再分析。接着讨论,一般工程中,都有速度要求,也就是要处理速度越快越好,这就要求时钟频率更快,但是频率快也将带来一系列的问题,首先是如果频率加大,那么周期减少(呵呵,废话),那么,根据前面对建立时间的讨论,允许我们的组合逻辑的延迟就越来越小。这给设计也带来了复杂性。由于组合逻辑的延迟是一个关键数据(一般他的级别比触发器内部延迟如Tco要大很多),所以他就是提升速度的一

7、个瓶颈,怎么解决呢?在同步设计中,我们是通过在延迟比较大的组合逻辑中插入触发器,他他们分成几个独立的更小一点的组合逻辑块,这样,系统地频率就能加快。但是注意,这样就在原来的数据通路上加入延时。而且,原来设计受限制的部分只要一个周期完成,现在由于加入了触发器,所以,加多少个触发器就需要多几个时钟周期把数据从一段送到另一端。也许我们会疑惑为什么?这样好像更慢了,我觉得应该从大局着想,这样的话系统地频率上去了,那么原来的一个周期和改变后的一周期不是一个概念了(周期变短了)。再就是整个系统因此而提升了速度,这样才是不为一粒老鼠屎,坏了一锅粥阿,实在是何乐而不为。这也就是所谓的“流水线技术”附:到底什么

8、情况下我们使用流水线技术?如果某个设计的处理流程分为若干步骤,而且整个数据处理时“单向的”,即没有反馈和迭代,前一个的输出是下一个的输入 就行下面讨论亚稳态问题了,呵呵,当然也和触发器相关。首先要清楚,什么是亚稳态?亚稳态是指触发器无法在一个规定的时间内达到一个可确认的状态。我们可以来打个比方:假想两个触发器为两个相邻的交通灯,这两个交通灯必须要步调一致,也就是说如果第一个交通灯绿灯亮了之后车开始行驶,然后到达第二个交通灯处,那么,如果这个时候第二个交通灯还没有从红灯转到绿灯,也就是说这里的车还在等,那么从第一个交通灯驶来的车将会与其发生碰撞。这里,我们就可以将交通灯当作时钟,而汽车当作要传递

9、的信号。也就是说这两个交通灯必须同时(或者相差很近)的改变,从而使得从第一个交通灯的驶来的车到达第二个交通灯的时候,这里的车已经离开。两个交通灯发生改变也就是时钟触发时刻,如果一致就是时钟没有发生偏移,否则时钟偏移。这个偏移发生的原因是时钟布线相关的延时。如果时钟偏移过大就可能会发生交通事故,也就是会产生亚稳态。其次,什么时候会出现亚稳态呢?如果锁存器的一个输入脉冲太窄,或两个输入同时有效,或两个输入相互间隔足够小,那么硬件锁存器可能进入亚稳态。如果异步信号(所谓异步信号就是:如果信号不能由时钟控制,或者如果他是由不同域(时钟域)中的时钟同步,那么它就是异步信号)恰巧在触发器的初始化期间来到,

10、那么他们可能造成触发器进入亚稳态。如果数据输入在时钟跳变之前或之后的有限时间间隔中发生变化,那么触发器可能进入亚稳态。(摘自Verilog 高级数字设计)注:这里涉及到同步异步信号的问题当一个信号跨越某个时钟域(如,低俗向高速域传输数据)时,对新时钟的电路来说,他就是一个异步信号,接受该信号的电路需要对他进行同步处理,同步可以防止第一级存储单元(触发器)的亚稳态在新的时钟域里传播蔓延。(这就是同步的目的)那么怎样避免亚稳态,也就是怎样同步呢?简单的同步器有两个触发器串联组成,中间没有其他任何电路(而且要尽量贴得近,以确保两者间有最小的时滞(clock skew),这种设计可以保证后一个触发器获得前一个触发器的输出时,前一个触发器已退出了亚稳态,并且输出已经稳定。同步器典型有三种:电平同步器,边沿检测和脉冲。摘自:http:/www.guangdongdz.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

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