通常認為,SOPC是FPGA設計中的雞肋,“棄之可惜,食之無味”。誠然,SOPC一直不是FPGA的主流應用設計,制約主要因素則是性能,因為作為處理器使用時,處理器主頻是其應用范圍的瓶頸(SOPC的軟核處理器一般運行幾十兆到百兆,而一般的嵌入式處理器系統在幾百兆到Ghz的主頻)。但是若因此說成“雞肋”,也確實夸張。廠家推出SOPC的設計,其優點主要有一下幾點,其一:是差異化競爭的需要。其二,擴大應用范圍,爭取更多的軟件工程師能夠從事FPGA設計。其三,可以替代低性能處理器,減少板級的面積和BOM成本。 那么,那么FPGA內部基于軟核處理器的系統的主要應用場景有哪些,總結如下: (1) 管理配置:對于性能無要求的管理配置功能。如某外接芯片或FPGA內部IP在其工作之前,需進行初始化和管理配置,而初始化的模塊較多或者管理配置較為復雜,此種情況下,用軟件處理更為方便合理。因此,假如FPGA內部資源較為充足,通過內部建立SOPC系統,利用片內的軟件給多個外圍模塊或者內部IP進行初始化的配置管理,即省去配置CPU,減少板級面積,也能便于配置的修改,同時還可以作為前面講的可測性設計的一部分,用于內部各模塊計數統計,功能測試等。 (2) 配合專用硬件加速單元使用: SOPC系統可以通過總線擴展專用協處理單元。即將關鍵模塊硬件化實現,實現高速的處理。舉例說,如實現圖像處理功能,而SOPC的軟件性能不能支持高分辨率圖像的處理能力,則可以通過邏輯實現專用的圖像處理算法,通過總線接口與SOPC系統連接。,SOPC只作為數據的管理和調度使用。 此外廠商還這么提供了SOPC優化手段,例如通過算法指令分析,確定最多的操作,通過專用指令硬件實現,通過在程序中調用專用指令,也是能夠提升性能的方式之一。 (3) 多核并行:這里多核并行通常意義不同,指通過多個SOPC系統,并行執行,可以提升系統的性能。對于單指令集多數據流的業務,通過將業務流分配到多個SOPC上,通過多個SOPC系統并行處理的方式,來提升整個系統的性能。此種情況下,通過多個SOPC系統并行處理,需滿足幾個條件:(1)即業務之間沒有關聯性,不需要再多個SOPC之間進行數據的交互,否則會影響整個系統的性能。(2)程序區不能太大,最好全部存儲在片內RAM中。而不用占用外部存儲區(DDR或者SRAM),否則,多個片上存儲系統爭搶外部存儲區,可能會造成系統性能的瓶頸,如需存儲在片外,則接口競爭部分則是關鍵設計。 FPGA的主要應用場景 SOPC就像一個偏科生,其優點和缺點都是那么明顯,即其強大的靈活性和可編程性,配置其可憐的主頻。但是通過一系列提升性能的手段,SOPC在某些業務中也可以大顯身手,尤其是需求頻繁變更的業務,將變化部分通過軟件實現,而不變部分硬件化實現,可以更快的滿足市場的需求。 最后,軟核CPU處理能力的瓶頸,也促使現有FPGA廠商提供了基于硬核CPU的SOC+FPGA的解決方案,而這些的努力將促進FPGA應用場景的擴展。FPGA廣闊天地,大有可為。 |