SOC与SOPC
SOPC
在 SoC FPGA 技術推出之前,各大 FPGA 廠家已經推廣了十多年的 SOPC技術。從架構角度來說,SOPC 和 SoC FPGA 是統一的,都是使用 FPGA 和 CPU共同完成系統的設計。但是與 SoC FPGA 不相同的是,
SOPC 是在單純的 FPGA芯片上使用 FPGA 的可編程邏輯資源和嵌入式存儲器資源搭建一個軟核 CPU 系統,由該軟核 CPU 實現所需處理器的完整功能,該 CPU 是由 FPGA 通用邏輯資源和存儲器通過配置實現的,其本質依舊只是一個復雜的 FPGA 設計模塊。
基于該結構的設計在保證系統性能的同時,增加了系統的靈活性。另外,如果單個軟核 CPU 無法滿足用戶需求,則可以添加多個 CPU 軟核,搭建多核系統,通過多核 CPU 協同工作,讓系統擁有更加靈活便捷的控制和運算能力。
CPU 是使用 FPGA 的通用邏輯資源搭建的,所以相較使用經過
布局布線優化的硬核處理器來說,軟核處理器夠運行的最高時鐘主頻要低一些,而且搭建軟核 CPU 也會消耗較多的 FPGA 邏輯資源以及片上存儲器資源。因此SOPC 方案僅適用于對處理器整體性能要求不高的應用
SoC FPGA 與 SOPC 之間的差異
從架構的角度來說,SOPC 和 SoC FPGA 是統一的,都是由 FPGA 和處理器組成。在 SoC FPGA 中,嵌入的是 ARM 公司 32 位的 Cortex-A9 硬核處理器,簡稱 HPS(Hardware Processor System)。 而 SOPC 技術中,嵌入的是由 Intel 自己開發的 32 位 NIOS II 軟核處理器,兩者指令集與處理器性能均有差異。Cortex-A9硬核處理器性能遠遠高于 NIOS II 軟核處理器。
Cyclone V SoC FPGA 片上的 HPS 部分,不僅集成了雙核的 Cortex-A9 硬核處理器,還集成了各種高性能外設,如 MMU、DDR3 控制器、NAND FLASH控制器等,有這些外設,HPS 部分就可以運行成熟的 Linux 操作系統,提供統一的系統 API,降低開發者的軟件開發難度。而 NIOS II 軟核 CPU 雖然可以通過配置,用邏輯資源來搭建相應的控制器以支持相應功能,但是從性能和開發難度上來說,無法與之媲美。因此,采用基于 SoC FPGA 架構進行設計開發是比較好的選擇。
此外,雖然 SoC FPGA 芯片上既包含了有 ARM,又包含了有FPGA,但是兩者一定程度上是相互獨立的,SoC芯片上的ARM處理器核并非是包含于FPGA邏輯單元內部的,而是與 FPGA 一同封裝到同一個芯片中,JTAG 接口、電源引腳和外設的接口引腳都是獨立的。因此,如果使用 SoC FPGA 芯片進行設計,即使不用片上的 ARM 處理器,ARM 處理器部分占用的芯片資源也無法釋放出來,不能用作通用的 FPGA 資源。而 SOPC 則是使用 FPGA 通用邏輯和存儲器資源搭建的 CPU,當不使用 CPU 時,CPU 占用的資源可以被釋放,重新用作通用FPGA 資源。
SoC FPGA 架構的優勢
在 SoC FPGA 架構出現之前,一般的嵌入式系統通常使用各種處理器或單片機作為系統核心,如基于 ARM 架構的 CPU、基于因特爾 X86 架構的 CPU、基于 IBM PowerPC 架構的 CPU 等。
SoC FPGA 芯片上 FPGA 和 HPS 部分獨特的高速互聯架構,FPGA 側設計的功能電路可以直接連接到 HPS 的總線上,從而映射為 HPS 的一個外設,由 HPS 對其進行讀/寫操作,該操作就像處理器操作本身片上含有的外設一樣簡單方便。
相較于FPGA架構的優勢
單獨的 FPGA 設計的系統也有其不足之處,由于 FPGA 實現功能都
是通過功能固定的邏輯電路實現的,那么當應用中需要靈活的控制和人機交互或者復雜的以太網協議通信時,使用 FPGA 實現就會有較大的難度,即使使用復雜的狀態機能夠勉強實現功能,也面臨著功能固定、修改難度大的問題。例如在上述多路采集系統之中,當需要將多路采集到的數據在液晶顯示屏上繪制為波形,或者使用TCP/IP協議傳輸到遠端服務器時,單純的FPGA就難以勝任了,而ARM處理器,尤其是運行了嵌入式操作系統的 ARM 處理器,在圖形界面顯示和網絡
傳輸方面有較大的優勢,如果將 FPGA 實現的多路高速數據采集系統的采集結果交給 ARM 處理器來實現波形顯示或者網絡傳輸,那么只需要簡單的軟件編程即可實現。
總結
- 上一篇: FB和FF MIC的用途
- 下一篇: java关于方法覆盖的叙述_以下关于方法