使用SpecctraQuest仿真时序问题时要注意
1. Tflightmax + Driver(Tcomax) + Skew + Jitter + Crosstalk + Receiver(Setup)< Clock Period
2. Tflightmin + Driver(Tcomin) - Receiver(Hold) - Skew - Crosstalk > 0
其中Driver的Tco一般可以从器件的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 delay选From library的话,通常计算出的Final settle delay/First switch delay是从零时刻开始到接收端到达最大/小阈值电压的时间,也就是说里面已经包含了缓冲延时(是Tco的一部分),这样,如果我们再使用上面提到的公式1,2来计算时许的时候就会造成Tco中的Buffer delay被重复计算。
解决的方法就是要修正仿真出来的Tflightmax和Tflightmin,减去一个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-fly时Driver只能加Pulse激励)。
2. 如果IBIS模型中没有提供Vms ,Cadence将如何计算?其默认值是多少?
3. 上面对时序以及Cadence工具的理解是否有误?
请大家指正!
[此贴子已经被阿鸣于2002-6-20 18:16:52编辑过]
厉害,毕竟是小编呀,我还没有研究的这么深入~
阿鸣,请教一个问题:
你在上文提到:“Tco其实包括器件的内部逻辑延时和I/O缓冲延时(Buffer delay),一般通过加一个测试负载(通常为50ohm)来测量,即时钟信号到Driver开始至测量点信号上升到测量电平(Vms)的时延。”
“Driver”是否指例如时钟芯片的输入管脚端?“测量点”又是指哪里?
就是你的理解
测量点就是指接测试负载的那点。
Yeah!现在明白了,谢谢阿鸣给的资料!
如果真要测试Tco的话,应该用双踪示波器,一个探头接Driver输入,一个接Driver输出(即负载端)。这两个时间差(Tco-to)才是Tco。一个探头无法测试!如下图:
d:\Tco.jpg
但是对于下图中的Driver Waveform又是什么波形,为什么会位于Buffer Delay Waveform之后呢?
d:\Timing.jpg
怎么图看不出来?
Driver Waveform 是深蓝色曲线
Buffer Delay Waveform 是紫色曲线
不是啊
你图片没有上传好啊,显示的路径是你本机的
别人看不到你的图啊
不会吧!那可能是我没有上传好,再试试!
[upload=jpg]uploadImages/200281611523442999.jpg[/upload]
现在可以了吧!为什么用“图片”按钮输入路径无法上传?
只要记住这点:Buffer delay和driver waveform是在不同条件下测量的波形,放在一起是为了方便说明各种延时的定义。
以下是我新的体会,在某些细节方面和以前理解有所差别:
Buffer delay waveform是通过测量负载测得的波形,严格的测量应该是在IC设计仿真中进行,一般直接在buffer的输出端接一个等效负载电容,然后仿真测量其上升到一定电压(Vmeas)的延时。如果是芯片封装好了之后,通过示波器测量,其结果不是标准的,因为多算入了封装PCB的延时。
而Driver waveform是驱动端在实际系统中的波形,由于等效负载和测量负载不一样,故而上升快慢也不同。上图是Cadence工具仿真的驱动端波形,因为它是器件的输出管脚波形,需要考虑芯片封装中的传输线影响,所以没有从0时刻上升,而是有一段很小的传输延时,所以比buffer delay waveform滞后。理论上说,drive的信号应该是器件buffer缓冲器的输出波形,从0时刻上升,其上升时间和buffer delay波形相比,可能快,也可能慢。
我觉得Cadence的上面这个图例会给人造成误解。
多谢阿鸣!明白了。
对了,上面的第四行“等效负载电容”,应该为“等效负载电阻”吧?
我看到各种资料有的地方是用电阻,有的地方是用电容,都可以作为等效负载啊。
大多数是保证50ohm的测试阻抗(也有空载测试的方法),比如用电容,大概取30pF,这样,频率100MHz左右的时候,利用Z=1/2x3.14xFxC,可算出Z=53欧姆。
看到各位的讨论真是羡慕,我也想学仿真,但不知从何处下手,大家可否教教我?
我和楼上一样,可惜我们公司没人懂,也没有打算用,所以我没地方学!
我也想學,太看不太懂.
管理員可否多提供這方面的資料
謝謝了
顶
顶
说得不错,多谢楼上的精辟讲解
想问小编一个问题,当仿真器接实际负载的时候,是否会自动断开测试负载,而不必手动去把模型文件中的测试负载大小改成实际负载大小?
装精
有几点值得大家注意:
1,Tco和buffer delay的关系有时并不没有相关的联系,有时你会发现buffer delay大于Tco的情况,其主要原因是负载问题;
2,Spectraquest的delay计算注意的只是interconnect delay, pin to pin or die to die or pin to die or die to pin;
3, Spectraquest仿真的报告结果永远是不包含buffer delay的,并不是像小编所说的只有在on-the-fly状态;
4,buffer delay的精确度取决于测试负载,有时甚至需加入传输线等,IBIS只有定义简单的RLC负载,Spectraquest 15.5.1或15.7以上版本可用自定义Spice电路;
5,Vmeasure如没有定义的话,buffer delay为0,没有缺省值。
