值得信赖的PCB&PCBA制造服务平台

SpecctraQuest仿真的时序计算

2013
05/02
本篇文章来自
捷多邦

通常我们在计算时序问题时,一般重点遵循以下两个条件以保证足够的Timing Margin

1. Tflightmax + Driver(Tcomax) + Skew + Jitter + Crosstalk + Receiver(Setup)< Clock Period

2. Tflightmin + Driver(Tcomin) - Receiver(Hold) - Skew - Crosstalk > 0

 

其中DriverTco一般可以从器件的Datasheet上查到。

Tco其实包括器件的内部逻辑延时和I/O缓冲延时(Buffer delay),一般通过加一个测试负载(通常为50ohm)来测量,即时钟信号到Driver开始至测量点信号上升到测量电平(Vms)的时延。[器件datasheet上查到的Tco就是这个值]

我们通常想通过仿真工具,是得到最大/最小 Flight time. Cadence SpecctraQuest里面:

Tflightmax一般被称为 Final settle delay

 Tflightmin 也称为 First switch delay

分别指器件经过Buffer的输出波形达到Vms开始到接收端到达最大/小阈值电压的时间。

尽管Cadence也是这样定义的,但是在实际仿真中,如果默认仿真参数Buffer delayFrom library的话,通常计算出的Final settle delay/First switch delay是从零时刻开始到接收端到达最大/小阈值电压的时间,也就是说里面已经包含了缓冲延时(是Tco的一部分),这样,如果我们再使用上面提到的公式1,2来计算时许的时候就会造成Tco中的Buffer delay被重复计算。

解决的方法就是要修正仿真出来的TflightmaxTflightmin,减去一个Buffer delay.

有两种可能:

1.如果IBIS的测试负载和器件手册上注明的Tco的测试负载相同的话,我们可以通过Cadence工具直接计算出来,只要将Buffer delay设置为On-the-Fly模式下,这时仿真结果会自动计算出减去Buffer delay后的真正的最大/最小Flight Time,也可以在其模型编辑器直接看器件的上升波形,测量其上升到Vms的时间,就可以大致确定Buffer Delay的时间,经过试验,发现两者计算出来的偏差在0.01ns左右。

2.如果IBIS的测试负载和器件手册上注明的Tco的测试负载不同的话,则可以用Cadence模型编辑器修改IBIS的端接负载和测量Tco的一致,然后从仿真出来的波形中得出Tco中的测量Buffer delay

 

几点疑问:

1.        选用On-the-fly模式除了在计算buffer delay上,其他方面和选From Library有何不同?好像对仿真结果没有什么影响(除了Help文档上说的On-the-flyDriver只能加Pulse激励)。

2.       如果IBIS模型中没有提供Vms Cadence将如何计算?其默认值是多少?

3.       上面对时序以及Cadence工具的理解是否有误?

 

the end