2011年9月16日 星期五

Design Compiler再了解(四十八)

最佳性能的最优化

資料由http://www.61ic.com/code/ 得來

方法二 優化高负载的线


高负载的线常常产生临界路径。你可以用两种方法来减少线上的负载:

1.        如果这个高负载位于一个模块内,而这个模块不包含层次,用命令
balance_buffer修理高负载线。如下,输入:
dc_shell> include constraints.con
dc_shell> compile
dc_shell> balance_buffer -from find(pin, buf1/Z)
    当你的库使用线性延迟模型时,balance_buffer命令提供了最好的结果。如果你的库使用非线性延迟模型,那么第二种方法将提供一个更好的结果。


2.   如果这个高负载穿越几个模块之间的层次,那用设计规则来修复这个问
题,输入:
dc_shell> include constraints.con
dc_shell> compile
dc_shell> set_max_capacitance 3.0
dc_shell> compile -only_design_rule
這個主要在添加Buffer和调整Cell大小,通常可以改善
hold time(min time) violation

另外hold timg也可以用
set_fix_hold [all_clocks] 修正hold time

 
    一个很少见的情况是层次化的结构使Design Compiler失去修复设计规则的能力。
    在图所示的简单事例中,O1负荷过多。为减少负荷,通过group命令或改变HDL使尽可能多的负荷在一个层次上组合。然后再利用其中一个策略。
 

沒有留言: