资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1 第第 7 7 章章 高速电路的高速电路的时序时序分析分析 电路中,数据的传输一般都是在时钟对数据信号进行有序的收发控制下进行的。芯片只 能按规定的时序发送和接收数据, 过长的信号延迟或信号延时匹配不当都会影响芯片的建立 和保持时间,导致芯片无法正确收发数据,从而使系统不能正常工作。随着系统时钟频率的 不断提高和信号边沿不断变陡, 系统对时序有更高的要求, 一方面留给数据传输的有效读写 窗口越来越小,另一方面,传输延时要考虑的因素增多,要想在很短的时间限制里,让数据 信号从驱动端完整地传送到接收端,就必须进行精确的时序计算和分析。 由于高速系统对时序的要求越来越严格,要保证好的时序,就必须有好的时钟器件;这 其中包括时钟发生器和时钟缓冲器。首先要求时钟发生器提供低抖动、高质量的时钟信号, 在设计时序系统时,要求选择合适的时钟缓冲器进行设计,从而保证尽量大的时序余量。时 钟器件是电路板上的重要器件之一, 它决定着经过电路板的信号的节奏和精度, 它在电子产 品中无所不在,形状、尺寸和种类也多种多样,如高速、低速、低功率、低歪斜、多输出、 单输出、单电压、多电压、零延迟、可编程等等。 在讨论时钟器件的同时,本章还讨论了时钟设计中要考虑的一个关键因素时钟抖 动。时钟抖动是时钟脉冲的输出跃迁与其理想位置的偏差。本章最后探讨了抖动的产生、影 响、测量方法以及解决方案。 7.1 时序系统 按照不同的时钟策略将信号的传输方式分为以下几类: 1. 异步方式;信号靠握手传输。 2. 外时钟同步方式;两块芯片均使用外部时钟。 3. 内时钟同步方式;两块通讯芯片中,一块芯片给另一块芯片提供时钟。 4. 源同步方式;时钟、数据输出时固定相位同时传输。 5. 时钟数据恢复方式;从信号中同时提取数据与时钟。 本章将主要介绍高速数字互连设计中两种常用的同步时序系统(共同时钟同步和源时钟 同步) ,并分析其工作原理,然后来讨论影响时序的因素,给出其解决方案。 7 7.1.1.1.1 公共时钟同步的时序分析公共时钟同步的时序分析 7.1.1.1 公共时钟同步原理 公共时钟同步, 是指在数据的传输过程中, 总线上的驱动端和接收端共享同一个时钟源, 2 在同一个时钟缓冲器(clock buffer)发出同相时钟作用下完成数据的正确的发送和接收。 图 7-1 所示为一个典型的公共时钟同步数据收发工作示意图。在该例子中,驱动端(处 理器)向接收端(芯片组)传送数据,我们可以将整个数据传送的过程考虑为三个步骤: 1.核心处理器提供数据; 2.在第一个系统时钟的上升沿到达时,处理器将数据 Dp 锁存至 Qp 输出; 3.Qp 沿传输线传送到接收端触发器的 Dc,并在第二个时钟上升沿到达时,将数据传送 到芯片组内部。 图 7-1 公共时钟同步数据收发工作示意图 一般来说,标准普通时钟系统的时钟信号到各个模块是同步的,即图 71 中的 Tflight clka 和 Tflight clkb 延时相同。通过分析不难看出,整个数据从发送到接收的过程需要经历 连续的两个时钟沿,也就是说,如果要使系统能正常工作,就必须在一个时钟周期内让信号 从发送端传输到接收端。 如果信号的传输延迟大于一个时钟周期, 那么当接收端的第二个时 钟沿触发时,就会造成数据的错误读取,因为正确的数据还在传输的过程中,这就是建立时 间不足带来的时序问题。 目前普通时序系统的频率无法得到进一步提升的原因就在于此, 频 率越高,时钟周期越短,允许在传输线上的延时也就越小,200-300MHz 已经几乎成为普通 时序系统的频率极限。 图 7-1 中,时钟发生器产生输出信号 clk_in 到达时钟缓冲器,经时钟缓冲器分配缓冲后 发出两路同相时钟,一路是 clkb,用于 driver 的数据输出;另一路是 clka,用于采样锁存由 driver 发往 receiver 的数据。 时钟 clkb 经 Tfltclkb 一段飞行时间 (flight time) 后到达 diver, diver 内部数据由 clkb 锁存经过 Tco_data 时间后出现在 driver 的输出端口上,输出的数据然 后再经过一段飞行时间 Tflt_data 到达 receiver 的输入端口;在 receiver 的输入端口上,利用 clock buffer 产生的另一个时钟 clka(经过的延时就是 clka 时钟飞行时间,即 Tfltclka)采 样锁存这批来自 driver 的数据,从而完成 common clock 一个时钟周期的数据传送过程。 以上过程表明,到达 receiver 的数据是利用时钟下一个周期的上升沿采样的,据此可得 到数据传送所应满足的两个必要条件: 1)receiver 输入端的数据一般都有所要求的建立时间 Tsetup,它表示数据有效必须先于 3 时钟有效的最小时间值, 数据信号到达输入端的时间应该足够早于时钟信号, 由此可得出建 立时间所满足的不等式; 2)为了成功地将数据锁存到器件内部,数据信号必须在接收芯片的输入端保持足够长 时间有效以确保信号正确无误地被时钟采样锁存,这段时间称为保持时间,clka 的延时必须 小于数据的无效时间。 系统时序的基本要求就是: 在下一个时钟周期到达之前, 前一个数据要能稳定的被读取。 图 7-1 中,时钟是同时到达 driver 和 receiver 的,也就是说驱动端时钟触发新的数据发送的 同时,接受器正好读取前一个数据。如果接收器的下一个时钟脉冲来了,但新的数据还没有 传到,就会出现时序紊乱,这就是建立时间不够的情况,所以数据线长不能太长(而且负载 不能太重) ,这就是目前正常时序系统设计中最关键的制约因素之一;同时,数据不能来的 太快,因为数据必须稳定存在一定的时间才能被正确接收,如果过早的传输到接收端,等时 钟触发的之后,数据稳定存在的时间不足以让器件读取,这就是保持时间不够的问题。所以 数据信号传输延时不能过大也不能过小,这就是时序设计要求。 7.1.1.2 公共时钟同步系统实例 图 7-2 存储器控制器和同步 SRAM 这是一个采用普通时钟同步的系统。该图示出了一个与 SRAM 相连的存储器控制器。 这两个器件从相同的时钟脉冲源接收时钟信号。 7.1.1.3 时序参数的确定 对于时序问题的分析,我们首先要清楚地理解相关的一些时序参数的具体含义,比如 Tco,缓冲延时,传播延迟,最大/小飞行时间,建立时间,保持时间,建立时间裕量,保持 时间裕量,时钟抖动,时钟偏斜等等,如果对这些参数的概念理解不深刻,就很容易造成时 序设计上的失误。 首先要阐明的是 Tco 和缓冲延时(buffer delay)的区别。从定义上来说,Tco 是指时钟 触发开始到有效数据输出的器件内部所有延时的总和; 而缓冲延时是指信号经过缓冲器达到 有效的电压输出所需要的时间。可以看出,Tco 除了包含缓冲延时,还包括逻辑延时。通常, 确定 Tco 的方法是在缓冲输出的末端直接相连一个测量负载,最常见的是 50 欧姆的电阻或 4 者 30pF 的电容,然后测量负载上的信号电压达到一定电平的时间,这个电平称为测量电压 (Vms) ,一般是信号高电平的一半。如 Tco 和缓冲延时的确定如下图 7-3 所示: 图 7-3 Tco 和缓冲延时的确定 信号从缓冲器出来之后, 就要经过传输线到接收终端, 信号在传输线上的传输的延时我 们称为传播延迟(propagation delay) ,它只和信号的传播速度和线长有关。然而我们在大多 数时序设计里面,最关键的却不是传播延迟这个参数,而是飞行时间(Flight Time)参数, 包括最大飞行时间(Max Flight Time)和最小飞行时间(Min Flight Time) 。传输线延传迟表 示的是信号在传输线上的绝对延迟, 而飞行时间表示参考波形与接收器实际波形之差。 这个 差别是微弱的,但它们是计算方法截然不同,因为飞向时间需要仿真参考负载来计算。 图 7-4(a) 标准飞行时间计算 飞行时间是指驱动器分别驱动一个参考负载和驱动一个实际系统接收器时, 在接收端信 号幅度上升到阈值电压时所用的时间之差。图 7-4(a)描述了飞行时间的定义。飞行时间是 在 Vil,Vthreshold和 Vih处估算的。须注意的是,飞行时间的最差状况值,有时是最大值,有时 是最小值。 例如, 在同步时钟信号的 setup 余量计算式中用的最差状况飞行时间是其最大值, 而在 hold 余量计算式中用的是最小值。 关于飞行时间的一个通常易犯的错误是: 在驱动器的 Vil和接收器的 Vih之间测量飞行时 5 间(或反之测量 Vih与 Vil之间的飞行时间) 。其原因是它把信号通过阈值范围的时间都当作 延迟时间了。其实这个延迟时间已经在时序等式的 Tco中考虑进去了。 图 7-4(b) 最大飞行时间和最小飞行时间 在较轻的负载 (如单负载) 情况下, 驱动端的上升沿几乎和接收端的信号的上升沿平行, 所以这时候平均飞行时间和传播延迟相差不大;但如果在重负载(如多负载)的情况下,接 收信号的上升沿明显变缓, 这时候平均飞行时间就会远远大于信号的传播延迟。 这里说的平 均飞行时间是指 Buffer 波形的 Vms 到接收端波形 Vms 之间的延时, 这个参数只能用于时序 的估算,准确的时序分析一定要通过仿真测量最大/最小飞行时间来计算。 上面只是对信号上升沿的分析,对于下降沿来说,同样存在着最大/最小飞行时间的参 数, 如下图。 在时序计算时我们实际取的最大飞行时间是在上升沿和下降沿中取最长的那个 飞行时间,而最小飞行时间则是取上升和下降沿中最短的那个飞行时间。 图 7-5 下降沿的飞行时间参数 也有些时候,人们对信号的最大/最小飞行时间还有其它称谓,比如在 Cadence 软件中, 就将最大飞行时间称为最终稳定延时(Final Settle Delay) ,而将最小飞行时间称为最早开关 延时(First Switch Delay) ,如下图 7-6: 6 图 7-6 Cadence 软件里对时序参数的确定 信号经过传输线到达接收端之后, 就牵涉到建立时间和保持时间这两个时序参数, 它们 是接收器本身的特性, 表征了时钟边沿触发时数据需要在锁存器的输入端持续的时间。 通俗 地说,时钟信号来的时候,要求数据必须已经存在一段时间,这就是器件需要的建立时间 (Setup Time) ;而时钟边沿触发之后,数据还必须要继续保持一段时间,以便能稳定的读 取,这就是器件需要的保持时间(Hold Time) 。如果数据信号在时钟沿触发前后持续的时间 均超过建立和保持时间, 那么超过量就分别被称为建立时间裕量和保持时间裕量。 见图 7-7, 其中还考虑了时钟误差的因素。 图 7-7 建立和保持时间及其裕量定义 许多设计者的目标是正的建立时间裕量大约等于一个门电路的延时。 按照这个经验规则 分配建立时间裕量时, 采用低速逻辑电路系列要比快速逻辑电路系列分配得要多一些。 这样 就可以在一个很宽的设计范围内,保持建立时间裕量与延时有一个固定的百分比。但是,必 须确定可以接受的建立时间裕量是多少。 7 建立时间裕量取决于逻辑路径的延时和时钟周期。 延时太长或者时钟周期太短, 都可能 导致建立时间裕量失效。图 7-1 中时钟信号 CLKC 和 CLKP 之间的不同延时,也会导致建 立时间裕量的失效,下一节将对此进行详细解释。 (换位) 为什么要建立和保持时间参数?每个器件的建立和保持时间参数, 一般都可以 在相应的数据手册查到, 对于设计者来说最大的目的是提高时序的裕量, 这样即使信号完整 性上出现一点问题,或者外界环境发生一定的变化,系统仍然能正常工作,这就是一个设计 优良的系统应该体现出的超强的稳定性。 建立时间裕量可以防止由于信号串扰、 逻辑延时计 算中的错误、后期布线中的小变更造成的对电路的影响。 系统时序设计中对时钟信号的要求是非常严格的, 因为我们所有
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号