這兩天主要對max density存在異常的case進行了除錯分析,有乙個case的max density有乙個位置的density只能收斂到1.24,debug發現在最後幾次的迭代中,處在該點位置的單元梯度較小,而處在邊界位置的單元梯度較大,導致高密度處的單元移動步長很小,和似飛討論後,修改了一些引數,雖然能夠降低max density,但是對其他case測試後發現延時效能下降了,所以又將引數改回原樣。global placement的引數對布局結果有比較大的影響,之後可以做一些調參的工作。
目前的測試結果是pack、global placement後的slack/required time平均提高了1%。
接下來打算修改packedge函式,在pack過程中加入diatance的限制,如果diatance過大,就否決pack,這個閾值可以和critical path的slack相關,slack比較小的path,閾值會相應的增大,pack條件放寬,用來大幅減小該path的slack,而slack比較大的path則不需要過多的優化,只選擇distance小的單元進行pack。
pack的策略是盡量不破壞預布局的情況下進行效能優化,所以我會增加乙個total distance offset的引數來觀測pack對預布局的破壞程度。
ldpack工作日記 2016 4 22
1.發現了乙個packing的bug 在對muxf進行打包時,會將和muxf相連的ff一起打包進來,這時候沒有判斷和ff相連的pin是不是d,所以在乙個group中,乙個muxf和ff的r端相連,這個ff也被一起打包進來,這顯然不符合slice結構。已解決。但是這是不是說明pack的drc有缺陷?沒...
ldpack工作日記 2016 4 27
今天把公式 criticality l 10 1 slack wns 1 l 10 1 dis 中的 l從0.9調小做了資料統計,發現時序在0.9的情況下是最好的,對此我認為,distance在公式中相當於是乙個tie break的引數,因為對於一條critical path上的所有pin的slac...
ldpack工作日記 2016 5 6
關於等價單元無法推開的問題,在前五次迭代中,每次迭代找出座標重疊最多的單元,對這些單元的座標加上乙個隨機的擾動,公式如下 x 0.02 rand 100 即會出現 0,2 之間的座標變化,加上隨機擾動後,大部分case能把最大密度降低到2以下,仍然有case的最大密度保持在2以上,還需要繼續debu...