关于max_capacitance和min_capacitance的问题?
1)、为什么“set_max_capacitance”约束在输入端口,而不是输出端口呢?(我以前一直认为是约束在输出端口,看了ICC的command_reference,上面说约束在输入端口)
2)、为什么要设置min_capacitance的约束呢?如果负载电容值小于此值会出现什么问题呢?
谢谢!
我也认为在INput 设置max——inputCap,是Cell Pin的cap值
在OutPut 设置的是能驱动的Max_cap 能力,才是约束。
回去再好好学习了。
同问,有人回答吗?
set_max_capacitance 主要是对内部output pin和output port来说的吧,
综合的时候是一种约束,对input port我想没啥用,
-min 对应于 hold分析, -max是setup分析,
通常的用法是max cap/trans/fanout一起用,防止工具给出一个奇怪的结果
max_capacitance不是设置在input_port上的吗?output Port好像是set_load和set_fanout_load吧!
陈小编这里说的是防止计算延时或者功耗时使用一个lut中找不到的点吧?那么这个具体的意义是什么呢,为什么是设置在input port,还有它的设置一般是依据什么呢?是依据.lib库中还是依据什么?
set_max_capacitance 主要作用于 内部 output pin , net load
设在input port上也可以,我是说后端的sdc,
这里的max_capacitance是设置在整个design中吗?
内部output pin以及net load它们的值应该根据lib库中每个cell上的pin就有了吧。不是很清楚内部怎么设?
对,
比如set_max_capacitance 0.3 [current_design]
一般PR工具看约束看几个: .lib 里的, sdc定义的, 看哪个更紧用哪个
比如 .lib 里面对某个output pin的 max_cap 是0.2, 那么 PR工具以这个为准,
signoff PT也是这么看的,哪个更紧用哪个
set_max_capacitance 0.3 [current_design]
这种是大致的约束, 就是约束下net的slew , load 等,
具体.lib 还有另外一级约束,
这里的另外一级约束指?
还有如果我在sdc中设置了set_max_capacitance 0.3 [current_design]
同时又需要设置端口上的set_max_capacitance 1 [get_ports input_port_name]
那么这里是不是这个input_port_name上面的max_capacitance没有设置成功?因为这里的set_max_capacitance 0.3 [current_design] 比set_max_capacitance 1 [get_ports input_port_name]更紧。同事current_design应该也包括这个输入端口的吧。我是这么认为的,不知道是不是这样?如果有这种情况,比如输入端口上的max_capacitance需要比内部的net和pin上的capacitance大些的话,这种情况应该怎么设置呢?听起来好像是我上面的那种设置,但是经过分析,这里好像输入端口又使用了那个更紧的约束?这应该怎么理解呢?
一般来说端口设紧点也没什么问题因为一般子模块端口输入都会接1级buffer当然如果你要从理论上研究设的顺序倒一下应该就可以了
先设current design 后设port
哪个更紧用哪个的意思应该是对于不同的约束方式,同一种约束方式是可以覆盖的
谢谢大家的解答。
Use the set_max_capacitance command to specify a capacitance value on input ports or
designs. This value should be less than or equal to the max_capacitance of the pin driving
the net.
这是手册里的原话,意思应该是set_max_capacitance不是用来约束输入端口的,只是来计算输入端口的电容或者load的大小,对吧
那我的问题是 max_capacitance of the pin driving the net 指的是什么,max_capacitance指的是此cell上一级cell输出端口的(max_fanout)吗
lz你理解了吗 我还是不太理解为什么 set_max_capacitance为什么是针对 input ports的;set_max_capacitance和set_fanout_load的区别是什么呢,我知道 set_fanout_load是约束 output ports的
那 set_max_capacitance怎么就成了约束input ports的啦
我也有这个疑问,综合的时候工具是根据什么来计算输入端口实际的电容的?
我现在设定 set_max_capacitance 1 $all_inputs_ex_clk
结果report_constraint –all_violators
出现了:
max_capacitance
RequiredActual
NetCapacitanceCapacitanceSlack
-----------------------------------------------------------------
rst_n1.001.39-0.39(VIOLATED)
sig_i1.001.39-0.39(VIOLATED)
-----------------------------------------------------------------
Total2-0.78
超出了我设定的1,现在是1.39,这个1.39是如何计算的,根据WLM来算?
我也有这个疑问,综合的时候工具是根据什么来计算输入端口实际的电容的?
我现在设定 set_max_capacitance 1 $all_inputs_ex_clk
结果report_constraint –all_violators
出现了:
max_capacitance
RequiredActual
NetCapacitanceCapacitanceSlack
-----------------------------------------------------------------
rst_n1.001.39-0.39(VIOLATED)
sig_i1.001.39-0.39(VIOLATED)
-----------------------------------------------------------------
Total2-0.78
超出了我设定的1,现在是1.39,这个1.39是如何计算的,根据WLM来算?
好问题,好问题,给你顶起来