时序计算和Cadence仿真结果的运用中兴通讯康讯研究所EDA设计部余昌盛刘忠亮摘要:本文通过对源同步时序公式的推导,结合对SPECCTRAQuest时序仿真方法的分析,推导出了使用SPECCTRAQuest进行时序仿真时的计算公式,并对公式的使用进行了说明。
关键词:时序仿真源同步时序电路时序公式一.前言通常我们在时序仿真中,首先通过时序计算公式得到数据信号与时钟信号的理论关系,在Cadence仿真中,我们也获得了一系列的仿真结果,怎样把仿真结果正确的运用到公式中,仿真结果的具体含义是什么,是我们正确使用Cadence仿真工具的关键。
下面对时序计算公式和仿真结果进行详细分析。
二.时序关系的计算电路设计中的时序计算,就是根据信号驱动器件的输出信号与时钟的关系(Tco——时钟到数据输出有效时间)和信号与时钟在PCB上的传输时间(Tflytime)同时考虑信号驱动的负载效应、时钟的抖动(Tjitter)、共同时钟的相位偏移(Tskew)等,从而在接收端满足接收器件的建立时间(Tsetup)和保持时间(Thold)要求。
通过这些参数,我们可以推导出满足建立时间和保持时间的计算公式。
时序电路根据时钟的同步方式的不同,通常分为源同步时序电路(Source-synchronous timing)和共同时钟同步电路(common-clock timing)。
这两者在时序分析方法上是类似的,下面以源同步电路来说明。
源同步时序电路也就是同步时钟由发送数据或接收数据的芯片提供。
图1中,时钟信号是由CPU驱动到SDRAM方向的单向时钟,数据线Data是双向的。
图1图2是信号由CPU 向SDRAM 驱动时的时序图,也就是数据与时钟的传输方向相同时的情况。
Tsetup ’Thold ’ CPU CLK OUTSDRAM CLK INCPU Signals OUT SDRAM Signals INTco_minTco_max T ft_clkT ft_dataT cycleSDRAM ’S inputs Setup time SDRAM ’S inputs Hold time图2图中参数解释如下:■ Tft_clk :时钟信号在PCB 板上的传输时间;■ Tft_data :数据信号在PCB 板上的传输时间;■ Tcycle :时钟周期■ Tsetup’:数据到达接收缓冲器端口时实际的建立时间;■ Thold’:数据到达接收缓冲器端口时实际的保持时间;■ Tco_max/Tco_min :时钟到数据的输出有效时间。
由图2的时序图,我们可以推导出,为了满足接收芯片的Tsetup 和Thold 时序要求,即Tsetup’>Tsetup 和Thold’>Thold ,所以Tft_clk 和Tft_data 应满足如下等式:Tft_data_min > Thold – Tco_min + Tft_clk (公式1) Tft_data_max < Tcycle - Tsetup – Tco_max + Tft_clk (公式2)当信号与时钟传输方向相反时,也就是图1中数据由SDRAM 向CPU 芯片驱动时,可以推导出类似的公式:Tft_data_min > Thold – Tco_min - Tft_clk (公式3) Tft_data_max < Tcycle - Tsetup – Tco_max - Tft_clk (公式4)如果我们把时钟的传输延时Tft_clk 看成是一个带符号的数,当时钟的驱动方向与数据驱动方向相同时,定义Tft_clk 为正数,当时钟驱动方向与数据驱动方向相反时,定义Tft_clk为负数,则公式3和公式4可以统一到公式1和公式2中。
三.Cadence 的时序仿真在上面推导出了时序的计算公式,在公式中用到了器件手册中的Tco 参数,器件手册中Tco 参数的获得,实际上是在某一种测试条件下的测量值,而在实际使用上,驱动器的实际负载并不是手册上给出的负载条件,因此,我们有必要使用一种工具仿真在实际负载条件下的信号延时。
Cadence 提供了这种工具,它通过仿真提供了实际负载条件下和测试负载条件下的延时相对值。
我们先来回顾一下CADENCE 的仿真报告形式。
仿真报告中涉及到三个参数:FTSmode 、SwitchDelay 和SettleDelay 。
其中Cadence 时序仿真的结果是通过SwitchDelay 和SettleDelay 两个参数反映出来的。
在解释FTSmode 、SwitchDelay 和SwitchDelay 前先解释一下BufferDelay 曲线的含义。
BufferDelay 曲线是Cadence 仿真器断开实际负载,带上驱动芯片器件手册提供的测试负载条件下获得的一条曲线。
测试负载是在IBIS 仿真模型库中设置的。
Cadence 仿真报告中的延时测量是以BufferDelay 为基准曲线,以V Measure 为起始测量点获得的相对延时值。
FTSmode :定义了当前仿真驱动器的特性,分为Fast 、Type 和Slow 。
该三种特性是在IBIS 模型中定义的,Fast 是驱动器沿最快的模式,Slow 是驱动器沿最慢的模式,从而定义了驱动器在正常工作条件下的两种极限特性。
SwitchDelay :定义为SwitchDelayFall 和SwitchDelayRise 两者的最小值。
图3给出了SwitchDelayFall 和SwitchDelayRise 的图形解释。
SwitchDelayFall :是从BufferDelay 下降沿的Vmeasure 点开始到接收波形下降曲线第一次穿过高电平阈值时的延时值。
SwitchDelayRise :是从BufferDelay 上升沿的Vmeasure 点开始到接收波形上升曲线第一次穿过低电平阈值时的延时值。
SettleDelay :是SettleDelayFall 和SettleDelayRise 两者的最大值。
图3给出了SettleDelayFall 和SettleDelayRise 的图形解释。
SettleDelayFall :是从BufferDelay 下降沿的Vmeasure 点开始到接收波形下降曲线最后一次穿过低电平阈值时的延时值。
SettleDelayRise :是从BufferDelay 上升沿的Vmeasure 点开始到接收波形上升曲线最后一次穿过高电平阈值时的延时值。
从SwitchDelay 和SettleDelay 的定义我们可以看出,SettleDelay 是一个与输入端的建立时间(Tsetup )有关的量,SwitchDelay 是一个与输入端保持时间有关的量(Thold )。
V ih minV il maxVmeasureBufferDelay Driver WaveformReceiver WaveformSwitchDelayRise SwitchDelayFallSettleDelayFallSettleDelayRise 图3公式1和公式2中的Tft_data 与Tft_clk 在Cadence 仿真工具中是通过仿真获得的数据,它与Cadence 仿真中fast 和slow 状态下的SwitchDelay 与SettleDelay 参数有关。
为了了解Cadence 仿真中的SwitchDelay 和SettleDelay 与时序公式中参数的关系,我们重新分析一下包含有BufferDelay 曲线的时序图。
Tsetup ’Thold ’ CPU CLK OUTSDRAM CLK IN CPU Signals OUTSDRAM Signals IN(BufferDelay)(BufferDelay)Vmeas1Vmeas2 Vmeas3 VihVil Vih Vil SwitchDelay&SettleDelay Tco_max Tco_min T ft_clk= SwitchDelay= SettleDelayT ft_dataSDRAM ’S inputs Setup time SDRAM ’S inputs Hold timeT cycle图4在图4中,时钟输出和数据输出使用的是BufferDelay 曲线,此时Tco 是时钟BufferDelay 曲线和数据BufferDelay 曲线之间的延时关系,这种定义符合“手册中的Tco 是在特定负载下测得的”说法。
在图4中,CPU CLK OUT (BufferDelay )和CPU Signals OUT(Bufferdelay)是在测试负载条件下的信号输出波形(对应于图3中的BufferDelay 曲线,而不是驱动端输出曲线),SDRAM CLK IN 和SDRAM Signals IN 是在实际负载条件下输入端口的仿真波形。
在器件手册中给出时序关系时,对于时钟信号,通常以某一测量电压为时间测量点,如图4中的Vmeas1和Vmeas2,对于驱动端测量电压点为驱动器件手册中定义的测量点,对于接收端测量电压点为接收器件手册中定义的测量点。
在Cadence 仿真时,对于接收端电压测量点的设置,通常在接收器件模型中,把输入高低门限电平定义成Vmeas2来实现。
对于驱动端电压测量点的设置,是在驱动器件模型参数中设置的。
此时对于时钟仿真的结果是,时钟信号的SettleDelay 和SwitchDelay 值相等。
对于数据信号的测量点就稍微有点复杂了,这要根据手册中Tco 的测量方式来确定,有的器件手册Tco 是从时钟的Vmeas 到数据的Vmeas 来测量的,有的手册是从时钟的Vmeas 到数据的门限电平来测量的。
如果采用从时钟的Vmeas 到数据的门限电平来测量的,则在Cadence 仿真中,要对高低电平门限分别作为测量点仿真,然后取最恶劣的仿真结果。
对于公式中数据的延时Tft_data ,从Cadence 仿真中对SettleDelay 和SwitchDelay 的定义和图4中的时序关系可以看出,Tft_data 就是仿真结果中的SettleDelay 和SwitchDelay 参数,并且SettleDelay 是与建立时间(Tsetup )有关,SwitchDelay 是与保持时间(Thold )有关,因此公式中的Tft_data_min 对应仿真结果中的SwitchDelay ,Tft_data_max 对应仿真结果中的SettleDelay ,考虑到通常Slow 状态的延时比Fast 状态的延时要大,因此,公式中的Tft_data_min 对应仿真结果中Fast 状态的SwitchDelay ,Tft_data_max 对应仿真结果中Slow 状态的SettleDelay 。