原创 Timing Base in SQ

2010-2-10 17:14 3277 4 4 分类: PCB



Tco,顾名思义,clock开始到buffer输出到Vmeas电平这段时间,如下图所示它包括两部分的时间,一部分是器件内部的logic延时,而另一部分则是buffer延时。当然了我们对于logic的延时不那么关心,因为这和IC的工艺有关,已经脱离我们的研究范围,而我们最关心的还是这里的buffer延时。


 



点击看大图


 


 


在数据手册中通常都有给定的Tco,而且我们在时序计算的时候也经常用到这个Tco,那么数据手册里的这个Tco是否可以拿来直接代入公式使用呢?Buffer延时和什么因素有关呢?SQ仿真时是否要添加Tcom进行补偿?


带着这几个问题,下面做进一步的探讨:


既然这个Tco由两部分组成,我们撇开内部的logic,单纯地考察Buffer延时,数据手册上都会有一个AC test load(有些数据手册中称之为AC test condition),如下图所示。意思就是:数据手册中的Tco值是基于这个测试负载而测量出来的。


 


ce0019ab-661c-41f8-8686-39b2c1ed8635.GIF


 


再来看一下IBIS模型中对应的Buffer信息,从关键字[model]中可以看到VmeasCrefRrefVref等值,这里的参数和数据手册中的AC test load是对应的。若是想修改测试负载,比如要在接受端并联一个50pF电容,则可以在IBIS文件里修改这里的Cref=50pF


 


391b694d-f84d-42dc-a7e4-bc1f9cb8f01a.GIF


 


似乎说到这里,还是不那么令人信服,那么我们下面就来仿真一下,验证buffer的延时是和负载相关的,并且Buffer的波形是基于数据手册中的AC test load而得到的。


SigX中搭建拓扑结构如下,与数据手册中的AC test load等效。


 


8af2b6c9-fabe-4e7a-a6e0-aa58dd6a1daa.GIF


 


 


设置驱动源,设置仿真参数,选择buffer delaysOn-the-flyFrom LibraryOn-the-fly的区别后面会讲解)


 


d306c13d-87b6-456c-aaeb-d58ec852518b.GIF


 


 


仿真波形如下,从图中很容易看出蓝线(驱动端波形)和红线(buffer输出)重合


 



点击看大图


这两个波形都上述拓扑结构中A3点的波形,那么就有点怪异了,都是同一点的波形,他们当然会重合!这个论点是成立的么?下面我们就来修改一下负载值,同时为了最大限度的抑制反射,设定传输线特性阻抗值与负载值相同,均为80ohm,修改后的拓扑结构如下


 


3fde04f2-3cc1-47b6-b4c8-535a72b58c04.GIF


 


其它的所有设置均保持与之前的拓扑设置一致,再来看一下波形


点击看大图


 



很明显这里的Buffer波形与驱动端的波形没有重合,并且与Vmeas的交点也不在同一点。我们把上面两次的仿真结果中的Buffer波形放到一起显示,发现这两个波形是重合的。无论负载怎么改变,仿真波形中的buffdly波形都是IBISmodel下的负载参数所对应的buffer输出波形。


 



点击看大图


 


根据上述仿真验证结果,似乎还没有得出SQ仿真时是否要加入补偿时间Tcom这一项,有些资料上通过仿真得出波形,经过测量得出这个补偿值。我们也来看一下这里所谓的补偿时间Tcom具体是指波形的哪一段时间。


前辈把它定义为:测试负载的驱动端波形与实际负载的驱动端波形在Vmeas电压点的时间差,如下图所示:


 



点击看大图


 


对于数据手册中的Tco,我们知道它的起点是时钟开始,终点是Test LoadBuffer输出(也可以说是驱动端,之前讨论了,因为测试负载时,驱动端波形和Buffer输出的波形是重合的)到Vmeas电平的那个时间点。


而仿真结果中的Min/Max Flight Time又是怎么样定义的呢?它们和Fist Switch Delay/Final Settle Delay之间又有怎样的对应关系呢?


SQ里对这几个概念定义得非常明确,并且很多文档都借鉴Cadence网站的那两个上升沿和下降沿的波形图来讲解,这里为了避免重合,我就拿我们的仿真图来定义一下。为了便于说明,建立拓扑结构如下,图示下方为仿真结果


 


b072baaa-57a7-45ee-881c-a16ca22a0b13.GIF


 


上述图示中仿真结果的最后两个参数Switch DelaySettle Delay,接收端对应的值分别为0.505103ns0.699296ns,看一下对应的仿真波形。


 



点击看大图


 


波形中有四个数值,黑体数值对应上升沿和下降沿的Switch Delay,红色字体数值代表的是上升沿和下降沿的Settle Delay,不必再多解释什么,细细体会一下就可以感受到SQ对这两个值的定义是多么的形象。从四个数值中不难发现,仿真结果中的Switch Delay值对应上升沿和下降沿中较小Switch值,反过来,Settle Delay值对应上升沿和下降沿中的较大Settle值。至于为什么暂不讨论!


而著名的Min Flight TimeMax Flight Time就是仿真结果里的Switch DelaySettle Delay。到这里暂告一段落。


 


 


说到这不得不提SQ的仿真设置----Buffer Delays,之前也有提过,本文中所有的仿真结果与仿真图形都是在On-the-fly模式下测量得出的。它和From library之间究竟有什么不同呢?


Cadence官方解释如下:


From Library: Specifies that the simulator obtain buffer delays stored with the model in the library. This is the default.


On-the-fly: Specifies that the simulator measure buffer delays during circuit simulation and use these delays in the remaining                           calculations.


 


先不着急下结论,没理解透官方的解释也没有关系,下面我们通过实例来对这两个值进一步地解析


仿真验证的拓扑结构如下:


 


2c65e6a0-ab2c-46cf-af6b-e87052afa969.GIF


 


 


On-the-fly下的仿真结果与波形


 



点击看大图


 


From Library下的仿真结果与波形,仿真波形并没有Buffer的波形。


 


 



点击看大图


 


从仿真结果来看,两者之间相差很大,达到ns级别。From Library模式下的Min/Max Flight Time是从Buffer上电那一刻作为测量的起始点。所以它得出的结果与On-the-fly模式下得出的仿真结果之间相差一个Buffer的延时(测试负载的buffer延时)。


 


 


下面是一个简易的示意图,我把BufferLogic两块分割开来了,蓝色框内的总的时间是From Library模式下的仿真结果,这样就引发一个计算的矛盾,即仿真结果里包括了Buffer Delay,而Tco里也包括了Buffer Delay。如果还按照公式计算,显然Buffer Delay被重复计算。


 


点击看大图



 


是否可以减去一个Buffer的时间呢?如果这样做的话岂不是又回到了起点,采用On-the-fly模式下计算时序,Tco和仿真结果的Switch/Settle Delay就可以直接相加了。


所以,选择On-the-fly模式便于计算。当然,在满足一定的条件下----即驱动端和接收端的Buffer Delay相同,选择From LibraryOn-the-fly所得出的结果是一样的,这里我们以后有机会再讨论,暂时以On-the-fly模式为准。


开头提到的一个问题----仿真结果中是否要加入补偿时间Tcom?其实看到这已经不言而喻,如果我们取值时采用SigX中的仿真结果SwitchSettle,则不需要添加Tcom值,因为他们都已经包括了Tcom。什么情况下才需要添加呢?


我们得到了仿真波形,用手动去量出Driving波形和Receiving波形之间的时间,这时才需要Tcom(这种情况一般不会发生,除非你不相信软件只相信自己的眼睛目测)


 


点击看大图



 


首先,我们关注一个参数DelayMeasurement中的V Measure
一般在Model中会有Vmeas这一个参数定义,它就是用来定义测量参考点的
当它缺省时,仿真结果如下


点击看大图


 


4afcc8be-0ccd-41e3-8baf-be335b3c9a6c.GIF


 


当它定义为1.5V时,仿真结果如下


点击看大图


 


00e3cfa0-b81e-4f13-9efe-cbb706a9c044.GIF


 


但是它的定义与否和Buffer的波形是不相关的
Buffer的波形和测试负载有关
测试负载定义就是Delaymeasurement中的Resistor Capacitor和Termination Voltage三个参数


 


当Measure值缺省时
仿真时候会跳出一个警告框


 


点击看大图


 


告知用户没有定义V Measurement值
这时候软件会怎么测量呢?

我们把V Measurement值设定为1.5V
然后定义Buffer Delay的模式为from library
7ca1a6cc-1482-4871-95b8-418a9a824b19.GIF


 


得到测量结果如下
33b37103-e18d-457a-9958-ef1f5805f386.GIF


 


发现测量结果与Measure值缺省时测量结果是一致的
其实当缺省值时,无论选择on-the-fly还是from library其结果都是一致的

这里可以得到这样一个结论:当Measure值缺省时,软件(相当于)自动选择from library模式进行测量

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条