Prime Time中进行STA 时,analysis_coverage低的问题
从图上可以看出untest覆盖率很高,这是什么原因造成的。进行STA脚本如下:
set_operating_conditions -analysis_type on_chip_variation -max_library IC035os142_max -max WORST -min_library IC035os142_min_-40 -min BEST_-40
read_parasitics NO_PAD/chip.spef.max
#read_parasitics NO_PAD/chip.spef.min
create_clock -period 100 -waveform {0 50} [get_ports clk_in]
create_generated_clock -divide_by 64 -source clk_in [get_pins uut_filter/M2/clk_64]
set_case_analysis 1 [get_pins uut_clk_pol/POL]
set_propagated_clock [all_clocks]
set_clock_uncertainty -hold 0.01 [all_clocks]
set_input_delay -max 20 -clock clk_in [remove_from_collection [all_inputs] [get_ports clk_in]]
set_input_delay -min 1 -clock clk_in [remove_from_collection [all_inputs] [get_ports clk_in]]
set_output_delay -max 20 -clock clk_in [all_outputs]
set_output_delay -min 1 -clock clk_in [all_outputs]
set_driving_cell -lib_cell buffd1 -pin Z -library IC035os142_max [remove_from_collection [all_inputs] [get_ports clk_in]]
set_load 1 [all_outputs]
问题原因已找到,是因为生成时钟约束问题。但为何后仿跑过了呢?
这么高的untest,肯定是clock没设置好。
你们的芯片频率很低,所有没约束到setup时序也满足了
现在考虑hold的问题:STA是hold余量为0,未设置clock_uncertainty -hold ,这个值设多大合理?问了工艺厂,那边说一般是客户自己定。
uncertainty 没有统一的标准,按工艺和经验来设置了,
你们是35nm工艺,按频率的10%来设置好了,
是350nm工艺,10%是10ns,这个余量太大了,会造成我面积加大
10%是为了安全,像你们这个设计,估计uncertaint 还是要有3~5ns才安全
不是工艺越先进,寄生影响越大,uncertainty越大吗?我们这个工艺0.35um几乎不用考虑寄生的影响,PR之后留那么大余量我觉得是不合理的
你们都把时序看得太恐怖了。哪里需要那么大的余量。
setup 和hold的uncertainty设置150ps足矣~
前提是你其他的约束都是正确的和足够的,如果其他约束不正确,再大的余量也是建立在沙土上的建筑。
不要总是将这些余量搞成时钟周期的百分之多少,那就太死板和教条了。
150ps太小了,.35 的实现不了这么小的
谢谢
实现不了这么小的是指150ps的余量不够吗?
余量小了,我记得以前做.18都设置比这高
我觉得这个是不是工艺越先进越高
我觉得9楼说的对,其他的设置正确的话,uncertainty不需要设置的那么大,我一般都是只设置0.2ns左右
那你们设置set_timing_derate -early/late的值是多少呢?如果是在110nm工艺或350nm工艺下