Timing Analysis
时序问题是电路设计中首要考虑的问题,也就是说并不是说功能仿真正确了,那么就可以Sign-off 了。为什么呢?因为功能仿真对很多时序上的问题已经忽略,因此不能保证我们的设计做出来之后能符合客户的要求。
本文档将从基本的时序错误讲起,逐步讲到我们综合,实现的时候如何添加时序的约束以使电路能达到我们的时序要求。
对于时序问题的分析,我们首先要清楚地理解相关的一些时序参数的具体含义,比如Tco ,缓冲延时,传播延迟,最大/小飞行时间,建立时间,保持时间,建立时间裕量,保持时间裕量,时钟抖动,时钟偏移等等,如果对这些参数的概念理解不深刻,就很容易造成时序设计上的失误。
1. Setup Time 和 Hold Time
建立时间(Setup Time)和保持时间(Hold time),一般产生于数据和时钟异步的情况下。建立时间是指在时钟边沿前,数据信号需要保持不变的时间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。见图1。
如果不满足建立和保持时间的话,那么DFF 将不能正确地采样到数据,将会出现metastability 的情况。
如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
图1 建立时间和保持时间示意图
2. Jitter 和Skew
系统时序设计中对时钟信号的要求是非常严格的,因为我们所有的时序计算都是以恒定的时钟信号为基准。但实际中时钟信号往往不可能总是那么完美,会出现抖动(Jitter)和偏移(Skew )问题。所谓抖动,就是指两个时钟周期之间存在的差值,这个误差是在时钟发生器内部产生的,和晶振或者PLL 内部电路有关,布线对其没有影响,如图1-6-7。除此之外,还有一种由于周期内信号的占空比发生变化而引起的抖动,称之为半周期抖动。总的来说,jitter 可以认为在时钟信号本身在传输过程中的一些偶然和不定的变化之总和。
时钟偏移(skew)是指两个相同的系统时钟之间的偏移。它表现的形式是多种多样的,既包含了时钟驱动器的多个输出之间的偏移,也包含了由于PCB 走线误差造成的接收端和驱动端时钟信号之间的偏移。
信号完整性对时序的影响,比如串扰会影响微带线传播延迟;反射会造成数据信号在逻辑门限附近波动,从而影响最大/最小飞行时间;时钟走线的干扰会造成一定的时钟偏移。有些误差或不确定因素是仿真中无法预见的,设计者只有通过周密的思考和实际经验的积累来逐步提高系统设计的水平。
3. Tco 和缓冲延时(buffer delay)
Tco 是指时钟触发开始到有效数据输出的器件内部所有延时的总和;而缓冲延时是指信
号经过缓冲器达到有效的电压输出所需要的时间。可以看出,Tco 除了包含缓冲延时,还包括逻辑延时。通常,确定Tco 的方法是在缓冲输出的末端直接相连一个测量负载,最常见的是50欧姆的电阻或者30pF 的电容,然后测量负载上的信号电压达到一定电平的时间,这个电平称为测量电压(Vms ),一般是信号高电平的一半。如图2。
4. 传播延迟(propagation delay)
信号在传输线上的传输的延时。
5. 飞行时间(Flight Time)参数。
飞行时间(Flight Time)参数,包括最大飞行时间(Max Flight Time)和最小飞行时间(Min Flight Time)。在Cadence 软件中,就将最大飞行时间称为最终稳定延时(Final Settle Delay ),而将最小飞行时间称为最早开关延时(First Switch Delay)。见下图:1
6. 脉波宽度问题
时钟信号、RESET 信号和SET 信号的脉波宽度问题(PULSE WIDTH)。这三种信号的脉波宽度必须高于某一标准值,才被视为有效,否则即认为是生时序错误。 2
1 系统时序基础理论 http://www.i-tech.com.cntech/list.asp?id=58
2 ASIC 仿真中的时序问题http://www.zyic.com/asic/asicfangshi.htm
Timing Analysis
时序问题是电路设计中首要考虑的问题,也就是说并不是说功能仿真正确了,那么就可以Sign-off 了。为什么呢?因为功能仿真对很多时序上的问题已经忽略,因此不能保证我们的设计做出来之后能符合客户的要求。
本文档将从基本的时序错误讲起,逐步讲到我们综合,实现的时候如何添加时序的约束以使电路能达到我们的时序要求。
对于时序问题的分析,我们首先要清楚地理解相关的一些时序参数的具体含义,比如Tco ,缓冲延时,传播延迟,最大/小飞行时间,建立时间,保持时间,建立时间裕量,保持时间裕量,时钟抖动,时钟偏移等等,如果对这些参数的概念理解不深刻,就很容易造成时序设计上的失误。
1. Setup Time 和 Hold Time
建立时间(Setup Time)和保持时间(Hold time),一般产生于数据和时钟异步的情况下。建立时间是指在时钟边沿前,数据信号需要保持不变的时间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。见图1。
如果不满足建立和保持时间的话,那么DFF 将不能正确地采样到数据,将会出现metastability 的情况。
如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
图1 建立时间和保持时间示意图
2. Jitter 和Skew
系统时序设计中对时钟信号的要求是非常严格的,因为我们所有的时序计算都是以恒定的时钟信号为基准。但实际中时钟信号往往不可能总是那么完美,会出现抖动(Jitter)和偏移(Skew )问题。所谓抖动,就是指两个时钟周期之间存在的差值,这个误差是在时钟发生器内部产生的,和晶振或者PLL 内部电路有关,布线对其没有影响,如图1-6-7。除此之外,还有一种由于周期内信号的占空比发生变化而引起的抖动,称之为半周期抖动。总的来说,jitter 可以认为在时钟信号本身在传输过程中的一些偶然和不定的变化之总和。
时钟偏移(skew)是指两个相同的系统时钟之间的偏移。它表现的形式是多种多样的,既包含了时钟驱动器的多个输出之间的偏移,也包含了由于PCB 走线误差造成的接收端和驱动端时钟信号之间的偏移。
信号完整性对时序的影响,比如串扰会影响微带线传播延迟;反射会造成数据信号在逻辑门限附近波动,从而影响最大/最小飞行时间;时钟走线的干扰会造成一定的时钟偏移。有些误差或不确定因素是仿真中无法预见的,设计者只有通过周密的思考和实际经验的积累来逐步提高系统设计的水平。
3. Tco 和缓冲延时(buffer delay)
Tco 是指时钟触发开始到有效数据输出的器件内部所有延时的总和;而缓冲延时是指信
号经过缓冲器达到有效的电压输出所需要的时间。可以看出,Tco 除了包含缓冲延时,还包括逻辑延时。通常,确定Tco 的方法是在缓冲输出的末端直接相连一个测量负载,最常见的是50欧姆的电阻或者30pF 的电容,然后测量负载上的信号电压达到一定电平的时间,这个电平称为测量电压(Vms ),一般是信号高电平的一半。如图2。
4. 传播延迟(propagation delay)
信号在传输线上的传输的延时。
5. 飞行时间(Flight Time)参数。
飞行时间(Flight Time)参数,包括最大飞行时间(Max Flight Time)和最小飞行时间(Min Flight Time)。在Cadence 软件中,就将最大飞行时间称为最终稳定延时(Final Settle Delay ),而将最小飞行时间称为最早开关延时(First Switch Delay)。见下图:1
6. 脉波宽度问题
时钟信号、RESET 信号和SET 信号的脉波宽度问题(PULSE WIDTH)。这三种信号的脉波宽度必须高于某一标准值,才被视为有效,否则即认为是生时序错误。 2
1 系统时序基础理论 http://www.i-tech.com.cntech/list.asp?id=58
2 ASIC 仿真中的时序问题http://www.zyic.com/asic/asicfangshi.htm