后端在CTS时遇到两个时钟域的时候,怎么办?
LZ, 请先确认这个generated clock 与 master clock 的频率关系是几分频?
如果一分频, 那么就是一个时钟域, master clock 是 generated clock 的 root, CTS会自动 balance skew。 如果是n分频的话, 那才是两个时钟域。
哦。是两分频,3x哈
这种情况下,看你要怎么做了。 一般无特殊要求,可以把generated clock作为一个domain单独balance。
有时,有的design 要求generated clock domain中的每个FF CK 的 rising edge 要和master clock rising edge 做 align,这意味着generated clock要纳入master domain做CTS。此时注意, 要让tool知道“两分频点”的FF的CK pin不是balance sink point,这样tool就会把用做“两分频点”的FF尽量提前放。 如果不这样做, 后面的FF的与master clock的skew会不太好, 原因可以自己揣摩一下。
请问下chris_li:
”此时注意, 要让tool知道“两分频点”的FF的CK pin不是balance sink point,这样tool就会把用做“两分频点”的FF尽量提前放。“
这个是什么意思?没有理解!
给个带脚本的例子看看? 这样一看就明白了.
都可以吧,只要timing过就行
缺省下master 和generated clock都会自动balance的,也就是 整个tree skew比较小
如果要简单做tree,就去除generated clock, 然后在那个点设 non_stop_pin ,
这样就是一个master clock做tree,也简单些
CTS很有难度啊
很好做啊, 只要balance或者设不同的 stop pins/non_stop pins /float pin 就行
以timing结果为主,‘
CTS决定的整个芯片的电路架构,要学的东西,很多的。各个时钟树综合模型必须针对不同的电路结构,例如
并不是所有时钟域电路都需要balance时钟skew,还有些时钟与信号需要添加同步,例如对时钟的选择控制,总之,没有统一之法,还是酌情处理,理解电路结构和算法是必要的。
两个clock domain有数据交互吗? 有数据交互的话,是critical path吗? design 是否留有余量。在知道这些信息之后,我才能判断两个时钟是否需要不做同步。
每个design中,时钟几十上百很正常。我们需要关注的是那些cirtical的路径。其他的没必要,都按照常规做就好了。
有数据交互的,你说的我明白了,3x3x~
大家好,有没有用脚本做过CTS的,我现在要用Perl进行自动的CTS,还没有思路,望大家赐教!
请问下,有没有EDI做CTS的算法和指导么?我想了解下EDI是如何做CTS的?工具的动作是具体如何的?
EDI工具是如何做balance 的呢?还有这些sink是按照什么原则来划分子树的呢?
比如说,他在做CTS的时候,是先对子树进行balance,然后再做子树之间的balance么?
我在做手动usefulskew的时候发现,设置macromodel的sink被单独分到一个子树上面,这个子树的delay+macromodel值差不多等于=其他子树的delay。