随路时钟如何构建?
问过同事,他说在Astro里面设置sync pin就可以实现。但是我现在用encounter实现,是不是leafpin来as sync pin呢?
请大侠指点!
啥叫 随路时钟,icc的 stop pin( sync pin in Astro) 就是 edi的 Leaf Pin
随路时钟就是在A芯片内部的一个clock 做一堆的dff的时钟 ,同时这个clock通过pad 到外面B芯片里面了。
做B芯片的clock,B芯片反馈一些数据再回到A芯片。这些返回的A芯片的数据同时还是在用这个clock来check。
大致是这样!等问的再详细些就再更新!
做随路时钟首先还是定义好output delay的timing window, 确定不会太over-constraint;
其次是把output ref clock和相对应的output data register单独拉出来做时钟树,并估计好ref clock的latency补偿;
再次是对齐所有output data register到output port之间的timing path;
最终目标就是让ref clock edge刚好落在output delay控制的min-max timing window,我平时遇到的情况就是这样, 不知道是不是LZ碰到的问题。
感谢5楼回复!
我明白你说的意思,但是感觉很麻烦的方法。同事用Astro实现,听起来很简单。
我用encounter实现,暂时还没有找到合适的方法。
hawkz说的方法可行
这种情况比较保险的解决方法是用PLL的de-skew功能,这样可以大大减少AB两个芯片之间信号时钟连线的不确定性。
如果不想用PLL的话,尽量用时钟的下降沿来采集数据(的中间位置)
我不太熟悉Astro,不过还是觉得随路时钟是很难仅仅依靠Tool的一个设置就能搞定的。
陈老大的解决方法是治本的,用DLL或PLL从根本上解决Reference clock的相移问题,这样后端修起来就有把握多了。不过有很多小项目都不舍得花这个代价,所以就只能靠小技巧来解决。
感谢各位回复!
按照各位的提示今天也试了几个方法,但是都没有很好的效果。
Hawkz说的对,看来靠简单的设置是不能解决的;准备试一下你说的方法。
这个随路的时钟解决了。方法是将这个要出去的时钟从source端到PAD端做的尽量短;然后将这个source端开始到dff的支路时钟按照setup slack的值推后一些,这里我接近推了4.5ns 。这样就可以通过timing分析了。
当然随路时钟有不同,具体情况要具体分析!
也就是用useful skew来调整clock latency吧, 这样的