当综合后的timing 出现较大的violation,而且发现都是相同的start point(register) , 且从gui 上看其fanout 较多,且分布较散,这个时候可以考虑对这个register进行duplication
cmd:set_register_replication -max_fanout XX [get_cells XXXXXXXX]
对register 复制的数量选择要看其Q端的真实fanout ,这样要去掉综合时解决drc 插入的buf 等cell。
若不这样做的话,register 的Q 真实的fanout 其实只有2个,这时你将-max_fanout 设置成4或者8的话,那样register 是不可能复制成功。
这时需要使用clean_buffer_tree 来将register Q 端的真实fanout 报告出来。
cmd:
clean_buffer_tree -from [ get_pins register/Q] -hierarchy --> clean buffer tree
all_connected [get_pins register/Q] --> get Q端的net name
report_nets -connections -verbose net_name -->得到真实fanout 数量