Xilinx ISE Map過程時間過長的解決

最近在Kintex 7上開發新的項目,驟然發現曾經在Virtex 5和Spartan 6上移植過來的成熟算法,綜合佈線時出現Map時間非常漫長的現象。

這個漫長不是一般的長,打個比方,以前在Virtex 5下同一個算法完成全部綜合佈線僅用10分鐘,在Kintex 7下卻耗時長達7~8個小時。從console窗看,常常卡在7.8 或8.8 global placement這一步,後面有很多..................,不知什麼時候是個頭,常常電腦跑通宵,第二天早上看結果,但這樣幾乎一天只能跑兩次,太可怕了。

沒法兒了,算法代碼上沒有可改動的可能(很成熟了,且不是他的問題),只能從屬性設置上入手,進行一些修改。調整之前都是默認設置,調整後結果還是很明顯的,時間大大縮短了,這才鬆了一口氣。

可嘗試的方法有幾種,下面慢慢道來:

1、effort level

在map上點右鍵屬性Process Properties,advance高級設置第一條就是這個,這個默認是high,這種情況下完成耗時是7~8個鐘頭。這裏可以修改成standard,實際測試情況,時序穩定性沒有出現影響,綜合佈線時間縮短到了2小時。已經有很大進步了,不過還能更快。

2、smart guide

這個叫做“增量編譯”,也就是在以前綜合佈線的基礎上,ISE在佈線時只新增加或修改的部分,這樣時間勢必減少。(可以按C/C++語言的增量編譯原理來理解)

這個設置在你的頂層文件(比如top.v)上點“右鍵”,菜單欄中會有“Smart Guide ...”,單擊,出來的對話框有一個勾選框,勾上即可。

詳細介紹可參考這篇博客

http://www.eetop.cn/blog/html/01/7901-46470.html

設置完後,第一次的綜合佈線還是要很長時間的,但第二次起,神奇的事情就發生了,以後小改代碼,整個佈線過程只需要10分鐘!!!這就是福音所在

3、其他

還是Process Properties屬性中的一些修改,這裏原理我也暫時說不清,嘗試中發現好使就記錄下來了,供大家借鑑試一試。

有一次,很簡單的程序調試中,加了一個divider的IP核,map耗時突然從原來的幾分鐘,增長到很長(具體多長我沒有等待了,果斷終止了,總之是趴着睡了一個大覺醒來還在global placement  。。。)

Process Properties-Map Properties

Register Duplication 由off改成on

Register Ordering 由4改成8

Enable Multi-Treading 由off改成2

改完之後,又恢復到10分鐘左右完成佈線了,欣喜!


先寫這麼多,希望能對有過同樣苦惱的同仁有幫助


2016年8月補充

經過一年的嘗試,百試不爽,此修改不會引起什麼額外時序問題(當然代碼風格一定要好),事半功倍,工作效率大大提高。

補充截圖以便大家配置:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章