中國工程師已經(jīng)開始采用百萬閘級FPGA設(shè)計產(chǎn)品,那么什么樣的PC系統(tǒng)才能滿足百萬閘級FPGA的綜合和布線對計算能力的需求,看完本文后你將會有一個較清晰的概念。
James Lee
首席顧問工程師
Intrinsix公司
Bob Peterson
自由撰稿人
在FPGA的設(shè)計平臺的測試過程中,標(biāo)準(zhǔn)測試電路包括太陽微系統(tǒng)(Sun Microsystems)公司的picoJava處理器,利用Synplicity公司的Synplify綜合工具和賽靈思(Xilinx)公司的Alliance布線工具,可以將picoJava處理器嵌入Virtex 1000 FPGA之中。此外,還可采用ASIC設(shè)計中常用的Talisman源代碼(hod)設(shè)計作為測試基準(zhǔn)。
測試源代碼
這些測試代碼的規(guī)模和復(fù)雜度必須與待測試的平臺相適應(yīng)。藉由Sun公司的網(wǎng)站www.sun.com申請許可,就可下載各種測試代碼。各種IP的許可條款有所不同,但通常情況下,SCSL(Sun小區(qū)源代碼許可)允許在最初的評估和開發(fā)階段免費使用源代碼。
測試之前,要從網(wǎng)站上下載picoJava內(nèi)核,它由一個小型微處理器構(gòu)成,可直接執(zhí)行由Java虛擬機(jī)定義的Java字節(jié)碼指令,picoJava的原始字節(jié)碼能提高執(zhí)行效率。我們選擇picoJava-II作為EDA平臺測試,它包括picoJava-II編程參考手冊、軟件開發(fā)環(huán)境、仿真環(huán)境、RTL設(shè)計文件、驗證測試套件、代碼范例和包含177Mb源代碼和文檔的RTL文檔。部份文檔是HTML文件,可用Web瀏覽器來瀏覽設(shè)計中的Verilog層。通常,picoJava內(nèi)核代碼很大,直接應(yīng)用到FPGA中比較困難,要將代碼適當(dāng)簡化。太陽公司將FPU和緩存指定為可配置的模塊,如圖1所示為picoJava模塊圖修改后的結(jié)果,最終的picoJava基準(zhǔn)包含649,770個門。
經(jīng)驗證明,EDA工具的性能和硬件平臺對設(shè)計有很大的影響。因此,盡管picoJava是FPGA設(shè)計流程的理想測試基準(zhǔn),我們還要從ASIC標(biāo)準(zhǔn)鏈接庫中選擇Talisman源代碼。Talisman是微軟和Cirrus Logic共同開發(fā)的一個圖形引擎,微軟免費提供大部份關(guān)鍵源代碼(hod)用于基準(zhǔn)測試項目?,F(xiàn)有的Talisman 源代碼的規(guī)模太大,難以嵌入到FPGA中,首先將門數(shù)減到946,400,進(jìn)一步再減到396,800,它們的Verilog代碼可從www.isdmag.com/edabenchmark下載。
946,400門的Talisman源代碼需要利用100%的FPGA資源,稱其為Talisman_100,相比較而言,396,800門只需要利用60%的FPGA資源,因此稱為Talisman_60,它代表更為現(xiàn)實的設(shè)計。
我們選擇的目標(biāo)FPGA是賽靈思公司Virtex系列XCV1000,它包含1,124,022個系統(tǒng)門(27,648個邏輯單元)、512個用戶I/O引腳以及4個可提供準(zhǔn)確時鐘分配的數(shù)字延遲鎖相環(huán)(DLL)。據(jù)稱其時鐘-輸出延遲小于3ns。
在Virtex結(jié)構(gòu)中,F(xiàn)PGA的可配置邏輯塊(CLB)位于芯片的中央,周圍是RAM模塊、I/O互連區(qū)(VersaRing)、可配置邏輯和I/O模塊。在Virtex的CLB中,查找表、多路再使用器、觸發(fā)器和其它組成部份在每個CLB中復(fù)制4次。為了便于布線,每一個CLB有兩部份。
利用這種結(jié)構(gòu)的FPGA資源實現(xiàn)通用電路,需要專門的綜合和版圖設(shè)計支持。如前所述,可以采用Synplicity公司的Synplify工具進(jìn)行綜合,而用Xilinx公司的Alliance布局和布線工具進(jìn)行版圖設(shè)計。Alliance工具的獨特功能包括代碼翻譯、映射、時序分析、布局和布線以及最終的時序分析。
GUI的考慮
相對于ASIC設(shè)計來說,F(xiàn)PGA設(shè)計工具稍微不同。FPGA工具更加著重于圖形用戶界面(GUI)的使用。因此,Synplify和Alliance工具的使用比大多數(shù)ASIC工具都容易,但是批處理工作模式并不總具備無縫連接的特性。
例如,以批處理方式進(jìn)行試驗時,發(fā)現(xiàn)Synplify工具不能從網(wǎng)絡(luò)服務(wù)器上導(dǎo)入設(shè)計文件。Synplify工具的GUI在交互運行時,不存在檢索文件問題,并且從本地磁盤上導(dǎo)入設(shè)計文件也不存在問題。因為我們總是從計算機(jī)的磁盤上運行基準(zhǔn)測試程序以避免網(wǎng)絡(luò)阻塞造成的故障,此外,當(dāng)藉由鍵盤從Synplify工具退出時,NT的任務(wù)監(jiān)視進(jìn)程表仍然顯示該任務(wù)持續(xù)執(zhí)行了幾分鐘,表明系統(tǒng)難以退出運行狀態(tài)??墒牵?dāng)Synplify完成一次正常運行后,程序就會立刻退出,因而能記錄精確的運行時間。
讓Alliance自動運行存在一些問題,因為現(xiàn)在還不能以批處理命令控制所有功能。然而,可以藉由宏來實現(xiàn)這些功能,并用腳本初始化該宏。在標(biāo)準(zhǔn)測試程序中,無法實現(xiàn)Alliance的時序分析器功能,因為在退出時該工具彈出一個對話框,詢問是否確認(rèn)退出,而批處理文件卻不知道如何選擇“是或否”。
腳本對基準(zhǔn)測試過程十分重要,我們仔細(xì)嵌套的各種腳本還具備一致測試工具執(zhí)行時間的基礎(chǔ)。如果設(shè)計工具不能及時退出,我們就無法精確計時,于是只能把時序分析器放在基準(zhǔn)測試程序之外。
如果不進(jìn)行基準(zhǔn)測試,當(dāng)設(shè)計過程很短且迭代次數(shù)較少時,就可更多地依賴GUI。開發(fā)只使用幾次的腳本之目的在于,以工程師期望的方式設(shè)置FPGA工具,其運行也只是幾次而已。
傳統(tǒng)的FPGA比較小,足以實現(xiàn)快速的設(shè)計流程,但是,隨著FPGA容量的提高,特別是百萬閘FPGA的出現(xiàn),要求廣泛采用依賴于批處理模式的計算機(jī)農(nóng)場(computer farm)。
桌面計算機(jī)的配置
為了完成FPGA設(shè)計任務(wù),桌面計算機(jī)要做如下標(biāo)準(zhǔn)配置: 550MHz Compaq SP700、單Pentium III Xeon和1Gb的DRAM;550MHz IBM Intellistation Z Pro、雙Pentium III Xeon處理器和2Gb的DRAM;400MHz雙Pentium III Xeon PC、512Gb的DRAM;300MHz Pentium II PC、512Gb的DRAM。
所有這些系統(tǒng)均運行Windows NT4,且具有100MHz的總線(300MHz的計算機(jī)除外,它具有66MHz總線)。400MHz PC代表另一種典型配置。Compaq和IBM允許我們使用其計算機(jī)進(jìn)行測試。
實際上,這些PC完成綜合和版圖設(shè)計任務(wù)的速度很快,但是,128MB的DRAM還是不足以處理百萬閘級FPGA設(shè)計。
我們只測試了一臺內(nèi)存較小的400MHz PC,這臺機(jī)器綜合較小的Talisman代碼基準(zhǔn)程序耗時約23分鐘,而其它擁有512MB DRAM的400MHz PC只需14分鐘。128MB的計算機(jī)布局和布線要花費63小時,而512MB的計算機(jī)在4小時內(nèi)就完成了版圖設(shè)計。
本文總結(jié)
具有適當(dāng)容量DRAM的PC(根據(jù)ASIC設(shè)計標(biāo)準(zhǔn))可很好地處理FPGA設(shè)計任務(wù),這個結(jié)論具備極好的可預(yù)測性。實際上,這標(biāo)志著系統(tǒng)配置和基準(zhǔn)測試之間存在一定的關(guān)系。
在綜合過程中,兩臺550MHz PC的性能基本相同。象通常的基準(zhǔn)測試一樣,在每一個測試平臺上將程序運行3次,然后取平均。IBM和Compaq 550MHz機(jī)器的實際運行時間僅相差1/10秒,在測試精度范圍之內(nèi)。
400MHz和300MHz基本配置的PC性能卓越,非常接近于其處理器速度。400MHz PC比550MHz PC慢27%,且基準(zhǔn)測試性能降低了26%到23%,類似地,300MHz比550MHz約慢45%,基準(zhǔn)測試性能降低了41%到37%。如圖2所示。
實際上,即使在最慢的計算機(jī)上運行最大的設(shè)計(如在300MHz PC上運行picoJava),Synplify工具只需運行81分鐘就可綜合1百萬閘的FPGA,在最快的機(jī)器上時間可縮短到47分鐘。無論何種方法,都可以在1天之內(nèi)完成百萬閘級FPGA綜合。
作者James Lee是Intrinsix公司的首席顧問工程師,他具有12年的Verilog工作經(jīng)驗。Bob Peterson是自由撰稿人,在過去的17年間曾為許多雜志和公司撰寫各種技術(shù)專題.