如何加速Altera的EDA工具? (IC Design) (Quartus II) (Nios II) (SOPC Builder)

Abstract
Altera的EDA工具速度都很慢,本文提出一些具體的建議加速Altera工具。

Introduction
整個Altera產品,有幾個地方速度很慢:

1.Quartus II的編譯時間。
2.Nios II的編譯時間。
3.SOPC Builder的載入時間。

要加快Quartus II和Nios II編譯時間,有幾個建議

1.使用最快的CPU
編譯程式,拼的就是CPU的速度,加RAM加HD並沒有用。

2.勿使用低電壓和超低電壓的CPU
如你用的是NB,日系機種或平板電腦常會選擇低電壓(如L7500,功率約17w)或超低電壓(U7500,功率約10w)的CPU,優點是省電且溫度低,但缺點就是速度較慢,若你常需編譯程式,請選擇標準電壓的CPU(如T7500,功率約35w)。

3.使用Quartus II最新版本
我知道還有很多人還在使用Quartus II 6.x,不過Quartus II 7.x對編譯速度改進不少,根據我的經驗,原來在Quartus II 6.1要編譯2分鐘的專案,到Quartus II 7.2 SP1只需1分鐘30秒,速度明顯增進不少。

若要加快SOPC Builder啟動時間,這是屬於I/O的問題,和CPU關係較少,主要是硬碟速度。

1.使用較快的硬碟
如7200轉、10000轉的硬碟,或使用SSD。很多NB配備的仍是5400硬碟,若嫌SSD價格太高,7200轉硬碟個好選擇。

2.使用SuperCache II
SuperCache II是個cache軟體,若你有大量的RAM,如4G以上,則建議開1G給SuperCache II,這樣第一次執行SOPC Builder後,那些controller都會被SuperCache II快取到RAM中,第二次以後執行SOPC Builder,由於controller都在RAM中,啟動時間就縮短了。

3.減少SOPC Builder搜尋路徑
SOPC Builder載入時,會搜尋以下四個路徑[1]:
1.C:\altera\72\ip\sopc_builder_ip\ ,Altera所提供的controller預設都放在此目錄下。
2.C:\Documents and Settings\oomusou\.altera.quartus\ 目錄下的altera_ip.ini,其中oomusou為user名稱,這個檔案紀錄了SOPC Builder載入時所搜尋的路徑,可以在SOPC Builder下Tools -> Options的IP Search Path中修改。

sopc_builder_optimize01 

Fig.1 SOPC Builder IP Search Path

3.搜尋專案目錄下ip目錄。
4.搜尋ALTERA_IP_SEARCH_PATH系統變數所記載的路徑。

若有同名的controller,則優先權1 > 2 > 3 > 4。

若要加速SOPC Builder啟動,若能減少1到4的搜尋路徑,就能加速SOPC Builder的啟動。

1是SOPC Builder預設controller的安裝路徑,就沒什麼能最佳化了。3是專案使用到的ip,這也沒話說。關鍵在於2和4。

請檢察你的ALTERA_IP_SEARCH_PATH系統變數,是否記載了不需要蒐尋的路徑,一般來說,若你只安裝Quartus II 7.2,則不會有此系統變數,若你安裝過舊版本的Quartus II,就可能有此變數,這個系統變數為了相容Quartus II舊版本而留下的。

altera_ip.ini是拖慢SOPC Builder載入時間的最大元凶
C:\Documents and Settings\oomusou\.altera.quartus\altera_ip.ini的原先目的,是為了讓你設定自己的component library,讓不同的project都能重複使用這個component,以軟體工程的角度,將可大幅縮短開發時間,不用每次再重新製造輪子,而且經過驗證的component,品質也較可信。

問題是每當你使用component editor建立新的component後,便會自動的在altera_ip.ini加上搜尋路徑,如下圖所示:

 sopc_builder_optimize00 

Fig.2 SOPC Builder IP Search Path 2

若你開發了很多測試用的程式,並非component library,altera_ip.ini仍會留下這些路徑,導致SOPC Builder在載入時必須花時間蒐尋並載入之,這就是SOPC Builder越用越慢的原因。

解決方式是好好管理你的altera_ip.ini這個檔案,只將component library路徑放在altera_ip.ini內,將不必要的路徑刪除,若是專案自己用的component,請放在專案的ip目錄下即可,不須紀錄在altera_ip.ini中,這樣做還有幾個好處:

1.SOPC Builder不會載入和本專案不相關的component。
2.若要修改component,也不會不小心改到其他專案的component。
3.若要將專案複製到其他電腦,也不需再設定altera_ip.ini,SOPC Builder可以自動載入。

Conclusion
這是我使用Altera EDA工具的一點心得,若你也對Altera工具執行速度感到很頭痛,這些建議對你應該有些幫助。

Remark
其實Altera對這些EDA工具,仍然有改進的空間,現在雙核心CPU這麼普及,不過Altera的工具在雙核心下,CPU使用率都只有50%,顯然還沒對雙核心作最佳化,看看7Zip這個工具,由於支援了雙核心,每個核心的CPU使用率都接近100%,速度當然大幅提升,但是目前Altera的EDA工具目前都還沒做到。

See Also
(原創) SuperCache II對於Quartus II的加速心得報告 (IC Design) (Quartus II)

Reference
[1] Quartus II Help Version 7.2 : About SOPC Builder

你可能感兴趣的:(builder)