目前,越來越多的客戶想在FPGA中設計ASIC原型。GDA Technologies是一家擅長于ASIC設計的專業(yè)工程設計服務公司,最近,他們幫助客戶在FPGA中完成了一個高速CPU設計,本文介紹他們在該設計中積累的經驗,為從事類似開發(fā)的(中國)設計工程師提供借鑒。
在本例中,我們的客戶想將一個經過優(yōu)化的32位RISC處理器置入Xilinx的Vertex XCV 1000 FPGA,要求該處理器運行速度不低于75 MHz,所占空間不得多于FPGA面積的40%。
我們采用Xilinx的Alliance 3.1版工具進行基于分層模塊的布局和布線。在設計過程中,Xilinx公司就如何更好地使用其工具以加快設計速度提出了許多建議,像遞增編輯、多通道運行和分層方法等等。例如,多通道運行可產生不同的結果,我們可從中選取最符合要求的一個。此外,我們還采用了Synplicity公司的RTL底層規(guī)劃工具Amplify及其FPGA綜合工具Synplify。
原來的數(shù)據庫RTL(圖1)是為ASIC設計而編寫的,內核結構也是專為ASIC而定制的,它們都不太適用于FPGA環(huán)境。為解決這些問題,我們通過上述工具來運行LX4189 RTL代碼,以找到合適的設計切入點。此外,還利用Amplify和Synplify工具創(chuàng)建了一個網絡絡表,將之與Xilinx布局工具配合以便在Vertex XCV 1000上生成版圖。
第一次版圖設計獲得了50MHz的時鐘速度,在該版圖的最壞一個路徑上,延遲為20ns。對于FPGA,理想情況是延遲的60%在于邏輯部分,40%在于布線。第一次版圖設計的結果是,30%的延遲在于邏輯部分,而70%在于布線。下一步工作就是將布線延遲縮短到邏輯延遲的范圍內,以便得到12ns或更小的延遲,從而獲得75到80MHz的時鐘速度。
為提高時鐘速度以達到75MHz的原定目標,我們開始對引起最大延遲的路徑予以評估。對內核的分析表明,復雜數(shù)據路徑包含多路復用器鏈MUX(圖2)。當在FPGA上實現(xiàn)這些路徑時,它們會產生很大的網絡延遲。事實上,70%到75%的網絡延遲都是由數(shù)據路徑造成的。
此外,隨著設計的深入,我們在協(xié)處理器的地址路徑上發(fā)現(xiàn)了冗余邏輯部分,還有寄存器文件(如果去除的話,可提高FPGA時鐘速度)。例如,內核帶有一個設計中不需要的MIPS16模塊。盡管Lexra去掉了該模塊及其它不必要的邏輯部分,而且為我們提供了新的RTL數(shù)據庫,我們并未看到時鐘速度有明顯的提高,因為數(shù)據路徑上仍有延遲存在。
我們不得不繼續(xù)尋找其它可能妨礙提高時鐘速度的原因,其中包括MUX實現(xiàn)問題以及三態(tài)MUX是否優(yōu)于其它形式的MUX。我們利用Virtex CLB(可配置邏輯模塊)上常見的三態(tài)緩沖器BUFT來驅動專用的、分段水平布線資源。
扇出是我們發(fā)現(xiàn)的另一個問題。減少扇出數(shù)有助于縮短多個關鍵路徑上的延遲,但當達到一定程度后,進一步減少扇出數(shù)不但不能降低延遲,反而會增加延遲。在為綜合工具提供約束條件以減少扇出數(shù)時,我們意識到這一問題。對綜合工具施加約束需要插入額外的門以減少扇出數(shù),因此增加了延遲。
Amplify底層規(guī)劃工具生成協(xié)處理器CP0和RPA兩大模塊,然后將它們放入FPGA。RPA代表內核的算術邏輯單元和指令執(zhí)行管線邏輯。在設計過程中,我們?yōu)槊總€模塊單獨布局,當兩個模塊都接近或達到75 MHz時,再將它們放到一起。
在這兩個模塊中,CP0的慢速路徑數(shù)最多,其時鐘速度介于48MHz到50MHz之間。借助于Amplify工具,我們將其時鐘速度從50MHz提升至66MHz。達到66MHz后,便很難用Amplify來進一步提高時鐘了。因此,我們將注意力集中在兩個模塊的關鍵路徑上。根據Xilinx的建議,我們用三態(tài)MUX代替了一組關鍵的多路復用器。
通過識別一系列出現(xiàn)時序沖突的路徑,以及用三態(tài)MUX有選擇地替代多路復用器,我們將整個設計的運行速度提高到80MHz。獲得80MHz的速度是一個重要的里程碑,因為它表示我們把ASIC的時鐘速度提高了30%。對于完整的設計,它占用Xilinx XCV 1000中96個BLOCKRAM中的12個(約12%),12,288個SLICE的1505個(約12%),以及12,544個TBU的448個(約3%)。
本文總結
最終設計占用FPGA中200K邏輯門的80K。我們與該客戶的指定IP內核供應商Lexra公司合作,共同完成了這一設計。在兩個月的時間內,我們將Lexra的LX4189處理器置入到XCV 1000 FPGA中。Lexra對IP內核進行了優(yōu)化,以便更好地適應FPGA。最終設計超過了原定的75MHz目標,時鐘速度可達到80MHz。
作者:Yanzhe Liu
設計工程師
GDA Technologies公司
Greg Kahlert
應用工程師
Lexra公司