SoC FPGA提升蜂巢網(wǎng)絡(luò )設備整合度
為決定什么須要采用硬件或軟件建置方法,首先必須設定哪些部分需要軟件。圖3展示數字預失真演算法中設定需要軟件的部分,以期達到圖2所示的三種功能。根據圖3設定,不難理解數字預失真演算法有97%的時(shí)間用在執行自動(dòng)相關(guān)矩陣運算,所以很自然地加速這項過(guò)程成為首要任務(wù)。
圖2 細分成不同功能區間的數字預失真系統
圖3 數字預失真處理當中的指定軟件運算作業(yè)之軟件設定
ARM Cortex-A9處理器藉由豐富的運算資源可執行更多功能,而這些資源有助提升效能。舉例而言,在硬件處理子系統中,每個(gè)ARM Cortex-A9處理器都內含一個(gè)浮點(diǎn)運算單元和一個(gè)NEON多媒體加速器。NEON單元是一個(gè)128位元的單一指令多重資料(SIMD)向量協(xié)同處理器,可同時(shí)執行兩個(gè)32×32b乘法指令;由于NEON單元皆用于乘法累積(MAC)運算,因此非常符合自動(dòng)相關(guān)矩陣運算功能所需。透過(guò)NEON模組可運用軟件Intrinsics,這可以在系統組裝時(shí)免除編寫(xiě)低階程式的需求。因此,運用硬件處理子系統中更多的功能,可以比Microblaze等軟件處理器或外接式DSP處理器大幅提升效能。
為提升數字預失真效能,設計人員須進(jìn)一步利用可編程邏輯將這些功能移到硬件上。然而,由于軟件是以C/C++編寫(xiě),工程師需要一些時(shí)間將C/C++語(yǔ)言轉換成可在可編程邏輯中運用VHDL或Verilog執行的硬件。
這個(gè)問(wèn)題現在已可藉由各種高階合成(HLS)工具(例如C語(yǔ)言至暫存器轉移層級工具,C-to-RTL工具)得以解決。這些工具讓具備C/C++程式經(jīng)驗的程式設計人員透過(guò)現場(chǎng)可編程門(mén)陣列(FPGA)擁有硬件能力。業(yè)界高階合成工具可讓軟件和系統設計人員更容易將C/C++程式碼對應到可編程邏輯,讓程式碼得以重用,并提供最佳可攜性和自由設計空間,最終達成最高生產(chǎn)力。
圖4展示運用高階合成工具的典型C/C++設計流程。這工具的輸出是暫存器轉移層級(RTL),可輕松與資料路徑預失真器或上游制程等既有的硬件設計進(jìn)行整合,當然也可連至資料轉換器。運用這項工具,演算法可快速轉移至硬件,其中這項工具會(huì )使用AXI界面連至硬件處理子系統,如圖5所示。
圖4 高階合成設計流程
在可編程邏輯中以高時(shí)脈執行自動(dòng)相關(guān)矩陣運算演算法,可對效能產(chǎn)生重大的效益,僅針對這項功能而言,其效能增益就可比軟件建置的功能多七十倍,而且僅用完全可編程SoC元件中3%的邏輯。
從原來(lái)參考的C/C++程式碼進(jìn)行基本最佳化,并運用ARM Cortex-A9處理器更有效地執行運算,結果顯示僅用軟件進(jìn)行最佳化所得的效能則比沒(méi)有變動(dòng)的程式碼高出二至三倍。再使用NEON多媒體協(xié)同處理器就能產(chǎn)生更多的效能增益。圖5為自動(dòng)相關(guān)矩陣運算架構。其中針對相關(guān)矩陣運算功能,其整體效能增益比軟件建置的功能多七十倍。
SoC FPGA提升蜂巢網(wǎng)絡(luò )設備整合度" src="http://www.elecfans.com/uploads/allimg/13
評論