max_transition violations.
比如下面的这个:
max_transition
RequiredActual
PinTransitionTransitionSlack
-----------------------------------------------------------------
u_io_pad/clk_bypass_pad/PAD
3.0010.00-7.00(VIOLATED)
这是一个输入pad上的,PAD为这个pad的输入pin,设计时设有如下约束,set_max_transition 10 [get_ports ...],在库里面,这个pad上,pin PAD上没有max_transition的属性,在其输出pin上有max_transition 5的属性,现对这个违例有以下两点问题:
1.如果是有问题的话,为什么会在这个输入pin上报,那也应该是在这个pad的输出pin上去报,因为所设的10的约束,超过了库里面5的属性值,不是这样吗?
2.这个required transition 3是怎么来的?,库里面,对这个pin没有max_transition的属性值,而且设计中也没有对current_design 设置全局的约束,
先行谢过各位了.
是不是你constraint中设置了该个pad的input pin的transition为10;和design的max transition 为3;
看起来是这样的;明显的这两个值都是ideal的,应该是有设定的。
多谢1359784773回复哈.
上面给出的这个report很好解释,是因为设了一个10的约束,库里面有有个3的default约束,所以有个7的违例,可以不管.
上面没有表述出来,有另外一个问题:
除去这个不管,我在做signoff STA的时候,在worst case下面,有许多max_transition的问题,并且许多都是在输入pin上边,我去看过库文件,并且常规情况下面,一般是在cell的输出pin上有max_transition的属性的,也就是说报违例的话也会在输出pin上,为什么会有好多是在输入pin上呢?并且报的时候都是用的库的一个全局的default值.
敬请帮忙,多谢.
约束的是input pin上的max transition, output pin有不有violation有什么关系呢,只要input pin上的满足就可以了。
多谢哈,这个问题我已经解决了,没有violation,但是有个不明白的地方:
不是说的input上的,input上的我们现在已经确定可以waive的了,是说的current_design的output_transition,这个大部分的库都是在cell的输出pin上去查的,但是现在很奇怪的是我在做signoff STA的时候,工具也查了输入上的max_transition,
你是如何做的?
看看啊
pad上的drc violation可以忽略,pad是固定死的,没法修的