请教高手Clock Skew问题
你用了-balance_inter_clock_delay吧,
再说了,如果之间是false path,还在乎skew干啥
cts的时候不看timing的, 工具只是做tree而已,
没有用就是默认设置,就是Blance了两条不用Balance的clock产生了skew,就是想问如何能让它不balance,设置了exclude pin但不起作用
是icc还是edi, cts具体命令是啥,
edi,就是生成SPEC文件
你要想办法让这两个时钟不看到相同的Leaf Pin,比如同一个寄存器的CK不要同时属于这两个时钟树。你的exclude pin应该是没设对地方,没有完全“打断”它们交汇的路径。
举个例子:
CLK1有以下Leaf:RegCommon/CK、RegA/CK、RegB/CK、RegC/CK...
CLK2有以下Leaf:RegCommon/CK、Reg1/CK、Reg2/CK、Reg3/CK...
由于RegCommon的存在,在CLK1中RegA/B/C要跟RegCommon平衡,CLK2中Reg1/2/3也要跟RegCommon平衡,结果就是CLK1和CLK2所有的Leaf都被平衡了。
SDC里的false path在createClockTreeSpec的时候是不会考虑的。SDC只需要考虑逻辑关系,而CTS Spec只考虑物理连接关系。
Group语句看看,是不是2个clock写在同一个group里面, 去掉即可
那请问下,对
CLK1有以下Leaf:RegCommon/CK、RegA/CK、RegB/CK、RegC/CK...
CLK2有以下Leaf:RegCommon/CK、Reg1/CK、Reg2/CK、Reg3/CK...
这种情况,该如何设置exclude pin 才对呢?
把{RegCommon}、{Reg A/B/C}、{Reg 1/2/3}这三组寄存器中最不重要的那一组归到一个LeafPinGroup
具体的寄存器可以用all_fanouts抓出来
您好,由于是新手!
(1) 能否告知下如何做呢,用什么命令将 {Reg1/2/3} 归到leafpingroup呢?
(2) 比如我将 Reg1/2/3 归到leafpingroup了,那regcommon还是存在你之前说的那个问题吧?
(1)
用 all_fanouts -from $ROOT_OF_CLK2 -endpoints_only 得到 RegCommon/CK、Reg1/CK、Reg2/CK、Reg3/CK... 的Colletion;
用 all_fanouts -from $ROOT_OF_CLK1 -endpoints_only 得到 RegCommon/CK、RegA/CK、RegB/CK、RegC/CK... 的Colletion;
用remove_from_collection相减得到 Reg1/CK、Reg2/CK、Reg3/CK... 的Colletion;
用get_object_name可以得到 Reg1/CK、Reg2/CK、Reg3/CK... 的文本;
然后用脚本转化成符合CTS Spec LeafPinGroup格式的文本即可。懒的话可以手动...
LeafPinGroup语法很简单,可参考EDI Help
(2)将 {Reg1/2/3} 归到leafpingroup后相当于CLK1包含CLK2的主树。CLK2的LeafPinGroup不会与CLK2的主树平衡。
哦 我在理解理解吧
(1) 我用的是ICC,应该有和edi中leafpingroup 相似的命令,我再找找看吧 ,你用过icc吗
(2) CLK2的LeafPinGroup不会与CLK2的主树平衡;这个有点拗口啊,主树和LeafPinGroup什么关系呢?