微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > skew太大

skew太大

时间:10-02 整理:3721RD 点击:
design中有两个reg,reg1和reg2,-from reg1 -to reg2有非常大的setup violation,检查timing report发现reg1的ck pin工具当作sink pin,而reg2的ck pin被工具当作implicit non-stop pin,所以两个reg cell出现非常大的local skew,如果把reg1设置为non-stop pin,reg1和reg2的clock应该是不做balance,如果把reg2设置为stop pin,clock tree又会做的比较长,而且还会引入其他violation,请问应该怎么处理比较好呢?

你把reg2 设成stop pin不就可以了

因为有很多是non-stop的,如果设置为stop pin就会出现hold violation

你现在的问题是,因为把reg2 ck 当成了 non-stop pin ,导致tree 不齐,setup 不 meet ,那肯定先解这个问题啊,考虑hold 干嘛

你不会问问谁写的sdc。为什么要设为non-stop Pin?

学习一下

1. “如果把reg1设置为non-stop pin,reg1和reg2的clock应该是不做balance”,这种方法应该是不行的,如果把reg1当成non-stop pin,那么CTS或者timing 分析会穿过它,这与原来的功能一致吗?
2. “如果把reg2设置为stop pin,clock tree又会做的比较长,而且还会引入其他violation”,如果reg2是non-stop pin,那么它是有自己的用途的,把它设置成为stop pin,如果后续你还是用原来的sdc,分析timing会有很大的问题的
一般来说,non-stop pin与stop pin之前的timig检查是比较少的,要与前端确认

是icc自己识别的

设置stop pin应该是不行的,后面会接generate clock的产生电路。
今天看了下结构,我再具体描述下我的问题,有一个master clock clock_a,它有两个generate clock,clock_g1,clock_g2,这两个generate clock之间是由timing path的,所以希望他们之间作balance,所以有些master clock clocked的regs(比如reg2...)我希望clock能穿过去,但这些由master clock clocked的regs之间也要做balance,怎么能实现clock既能穿过这些regs,又和其他stop的regs之间做balance呢?
设置float值可能是一种方法,但是如果regs太多会比较麻烦,有什么比较方便的方法吗?
不知道我的描述是否清楚

我能想到的办法:1.设置float值2.设置-exclude_pins,然后根据skew手动调整
这两个方法都很麻烦,而且已经设置non-stop的regs很难保证,有更好的方法吗?



generate_clock跟master clock本来就是默认会balance的,只要约束没有问题,不会出现你说的情况.

分步做1. 先在gen后定义2个时钟clka/clkb,先完成clka/clkb的CTS
2. 再设置成dontouch subtree,再完成master clk的CTS,如果master后面结构比较简单,可以手工完成,如果比较复杂,就交给工具吧

就因为balance,所以才有问题

设置skew group呢?
将reg1,reg2设为一组,reg2后面的寄存器设为另一组。ICC skew group 对这种结构的时钟设置skew group 好像有时会设不上,可以试试。

明白,这个方法方便很多,非常感谢

你的意思我理解,但是具体方法不是很清楚,可否有相关的参考文献呢

set_skew_group/commit_skew_group 去看ICC manual 吧。

好的,谢谢

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top