【導讀】FPGA的應用越來越廣泛,調查報告顯示,2013年全球FPGA市場將增長至35億美元。從剛開始的簡單的膠合邏輯芯片,到如今使用FPGA作為協處理器,這項技術到底有什么優勢?本文將進行詳細討論。
可編程邏輯器件(PLD) 是嵌入式工業設計的關鍵元器件。在工業設計中,PLD 已經從提供簡單的膠合邏輯發展到使用FPGA 作為協處理器。該技術在通信、電機控制、I/O 模塊以及圖像處理等應用中支持I/O 擴展,替代基本的微控制器(MCU) 或者數字信號處理器(DSP)。
隨著系統復雜度的提高,FPGA 還能夠集成整個芯片系統(SoC),與分立的MCU、DSP、ASSP,以及ASIC 解決方案相比,大幅度降低了成本。不論是用作協處理器還是SoC,FPGA 在工業應用中都具有以下優點:
1. 設計集成——使用FPGA 作為協處理器或者SoC,在一個器件平臺上集成IP 和軟件堆棧,從而降低成本。
2. 可重新編程能力——在一個公共開發平臺的一片FPGA 中,使工業設計能夠適應協議、IP 以及新硬件功能的發展變化。
3. 性能調整——通過FPGA 中的嵌入式處理器、定制指令和IP 模塊,增強性能,滿足系統要求。
4. 過時保護——較長的FPGA 產品生命周期,通過FPGA 新系列的器件移植,延長工業產品的生命周期,保護硬件不會過時。
5. 熟悉的工具——使用熟悉的、功能強大的集成工具,簡化設計和軟件開發、IP 集成以及調試。
以下將詳細討論這些優點。
設計集成
現代工業系統設計人員面臨很多挑戰,包括,系統復雜度、標準的變化、性能需求,以及系統總成本等,如圖1 所示。
圖1:關鍵工業設計挑戰
作為一名工業系統設計人員,您可以確定是否使用FPGA 作為協處理器( 也稱為I/O 輔助或者I/O hub 器件),還是完整的SoC 解決方案。您可以在相同的電路板上組合使用標準主處理器和FPGA,由外部主處理器完成系統處理功能。然而,功能固定的處理器在工業應用中通常缺少關鍵的接口、功能或者性能。您可以將部分處理任務移到FPGA中,從而減輕處理器的工作。或者,您在一個基于FPGA 的SoC 平臺上集成所有處理器功能,降低設計復雜度,減少系統總成本。
很多MCU 或者DSP 解決方案如果要同時運行電機控制任務和通信功能,其帶寬將無法滿足需求。結果,您可能需要增加其他的ASSP、MCU 或者FPGA 器件,如果目前的電路板無法承載這些器件,那么只能將其作為昂貴的置入卡來使用。相似的,不同的現場總線以及發展的工業以太網協議標準也需要針對每一協議采用專用ASSP、MCU 或者FPGA 器件。由于某些標準需要協議專用硬件(MAC) 和協議專用軟件堆棧,因此,這些工作是必須的。FPGA可以在協處理器中集成系統功能,根據需要隨時修改設計。
圖2 顯示了一個運動和電機控制平臺,它發揮了Altera FPGA 的優勢,作為DSP 卸載引擎和工業網絡的協處理器。電機控制器通過控制速度和電流( 轉換為扭矩設置),設置電機的能效和精度。相似的,運動控制則主要完成位置和時序精度控制功能。在很多情況下,電子硬件都是相似的,主要的差別在于控制軟件或者算法,以及I/O 接口。圖2 中的例子顯示了一個典型的控制器,它依靠一個主MCU 或者DSP 器件( 主處理器)來運行算法,驅動電機或者運動控制器的電源級。當主處理器達到其性能極限時,設計人員可以提高器件時鐘速率,以提升處理器性能。但是,對性能增益是有限制的,這種方法可能會帶來其他問題,例如,需要更新到速度更快的存儲器,其他硬件的性能,以及優化軟件需要更多的時間等。
[page]
在這種情況下,將某些主處理器功能卸載到FPGA 協處理器中有助于簡化系統,使用FPGA 進行通信,幫助隨著工業以太網協議等標準的發展進行靈活的修改。然后對FPGA 重新編程,使用相同的硬件平臺來滿足需求。
圖2:FPGA 作為運動/ 電機控制協處理器
在一個SoC FPGA 器件平臺上集成設計元器件,進一步簡化了設計復雜度,降低了系統總成本。圖3 顯示了一個簡單的工業電機控制系統,FPGA 現在起到了SoC 的功能,集成DSP 模塊、存儲器、視頻圖形控制器、電機編碼器以及其他元器件。設計師可以簡單的加入PHY 和其他模擬以及電源器件,從而完成設計。
圖3:FPGA 完成SoC 運動/ 電機控制功能
此外,電機控制應用通常還需要采用反饋機制來計算當前速率和位置。對于FPGA,很多經過優化的數字編碼器接口IP 內核只能用作IP,支持在接口上使用FPGA。在FPGA上集成IP 減小了電路板尺寸,減少了元器件數量,簡化了裝配,降低了存儲要求。這種集成方法減少了電路板上的元器件數量,從而提高了系統可靠性。Altera FPGA 支持很多其他系統功能,例如,嵌入式處理器、DSP 模塊、LCD 顯示屏和視頻處理器等。圖4 顯示了另一應用實例,其FPGA 用作視頻監控應用中的協處理器。視頻監控市場越來越多的采用了寬動態范圍(WDR) 攝像機傳感器,能夠分辨從背景到逆光條件下的目標物體。只有FPGA 具有WDR 圖像傳感器流水線(ISP) 協處理所需的帶寬,將視頻流送入DSP 器件進行視頻編碼,例如,H.264 等。DSP 器件缺少處理WDR ISP 所需的帶寬和接口,不具備運行其他監控功能的性能,例如,視頻分析等。
圖4:FPGA 作為協處理器——WDR IP 監控攝像機
圖5 顯示了FPGA 作為視頻監控應用中的SoC。用作SoC 時,FPGA 支持在一片FPGA 中集成所有的組件——ISP、視頻分析、編碼和聯網功能。這一方法不需要采用后端DSP 器件,支持實現更緊湊的集成設計。
圖5:FPGA 作為SoC——WDR IP 監控攝像機
圖6 顯示了在Cyclone IV 器件上實現的SoC 系統實例的結構圖。
圖6:SoC 結構圖——WDR IP 監控攝像機
可重新編程能力
利用FPGA 的可重新編程能力,很容易適應標準的發展,支持設計重用。即使在工業應用中只采用一個MCU、DSP、ASSP 或者ASIC 解決方案,很多應用還是需要分立器件來處理工業通信等功能,例如,可選的現場總線專用ASIC 或者FPGA,如圖7 所示。當網絡規范或者功能需求出現變化時,通常會集中精力來開發多塊PCB以支持不同的協議和功能,每一平臺都需要額外的軟件導入導出時間。這大大提高了解決方案的總成本。
圖7: 現場總線過渡到工業以太網
或者可以使用FPGA 作為通信協處理器。在一個硬件平臺上設計一個通信子系統,隨時修改網絡協議,支持多種產品。通過在一片FPGA 中更靈活的集成主MCU或者DSP 控制功能、多個處理器和其他IP 以及接口,開發小外形器件,節省空間,降低成本。
由于能夠針對多種產品采用一個平臺,減少了要開發的硬件數量,簡化了軟件的導入導出,因此將獲得幾個月甚至更長的產品及時面市優勢。
[page]
調整性能
任何工業控制系統的關鍵所在是主機/ 主MCU、DSP、ASIC 或者ASSP 器件的處理功能。當性能成為設計難題時,FPGA 提供以下方法來調整處理性能,如圖8 所示。
■使用高性能外部處理器以及FPGA 內置的多個嵌入式處理器之一。可將所有處理功能集成到FPGA 中作為SoC。
■加入定制指令以及您的處理器代碼,從而加速專用處理器指令;浮點就是一個很好的例子。
■通過DSP 模塊等專用硬件加速數據轉換算法。
圖8:FPGA 調整性能方法
1、多核處理
對于靈活的多處理器設計,您可以從多種實現方式中進行選擇。嵌入式工業設計人員通常對非對稱協處理感興趣,把FPGA 作為I/O 輔助芯片或者SoC。非對稱多處理器意味著多功能產品可以采用專用處理器來實現每一主要功能。這尤其適合滿足當今迫切的應用需求,例如,智能電話等。開發人員以前在PCB 上采用多個處理器來開發這類系統。現在,您可以在一片FPGA 中每個分區的專用處理模塊上來完成這一工作,如圖9 所示。
圖9:FPGA 作為SoC 非對稱多核,以及作為協處理器
這類應用的一個例子就是高性能伺服驅動應用,它需要高性能主處理器( 或者多處理器) 來完成每一主要功能。專用處理器執行應用代碼,通信處理器提供現場總線或者以太網鏈路,圖形或者圖像處理器提供顯示功能,包括數字電機編碼器、PWM 功能和電源控制等其他定制邏輯和接口。您還可以將所有這些功能集成到FPGA 中,作為協處理器或者完整的SoC。
[page]
2、定制指令
設計者可以通過增加定制指令以及相應的處理器代碼來調整處理器性能。這一方法加速了專用處理器指令,如圖10 所示。
圖10:增強定制指令的性能
設計者可以在嵌入式處理器指令集中加入定制指令,以加速對時間要求較高的軟件算法。圖10 中的例子顯示了怎樣在Altera Nios II 處理器的算術邏輯單元(ALU) 中加入定制指令邏輯。使用定制指令將復雜的標準指令序列簡化為在硬件中實現的嵌入指令。
這一功能可以在各種應用中使用。例如,可以優化DSP 的軟件內循環、數據包頭處理以及需要大量計算的應用。Quartus II 軟件提供配置GUI,支持Nios II 處理器的256 條定制指令。圖10 中的例子使用了64-Kbyte CRC 緩沖。在Nios II 處理器中,與只采用軟件操作相比,定制指令能夠將CPU 的性能提高27 倍。
Nios II 處理器單精度、浮點定制指令是加速處理器操作的另一個例子。這些指令大幅度提高了除法、乘法、減法和加法函數的FPGA 性能。其他處理器體系結構采用相似的原理進行操作。對定制指令的實際性能加速效果會隨處理器和定制指令的不同而不同。
3、硬件加速
除了定制指令,還可以使用硬件加速器,例如DSP 模塊、視頻模塊以及其他IP,從而消除數據瓶頸。圖11 顯示了與僅采用定制指令的同一Nios II 處理器系統相比,采用同時或者并行數據協處理器功能將系統性能提高了530 倍。在并行數據協處理器期間,處理器的中央處理單元(CPU) 啟動并停止協處理器,協處理器獲取數據,存儲結果,CPU 同時運行應用代碼。這適用于模塊數據操作,例如,電機控制或者運動控制應用中常見的DSP 功能。
圖11: 硬件加速器消除了處理器瓶頸
過時保護
生命周期較長的FPGA 降低了產品過時的風險。Altera FPGA 的產品生命周期非常符合工業設備的長生命周期要求,能夠穩定的供應器件,如圖12 所示。
圖12:Altera FPGA 符合較長的工業產品生命周期要求
大部分MCU、DSP 或者ASSP 器件的產品生命周期比FPGA 短得多,這是因為和Altera相比,其供應商通常會更快的停止供應成熟器件。這類器件設計用于針對大批量用戶在短期內實現特定應用。而且,雖然目前產品中的ASIC 器件可以工作15 年以上,但是很多已經接近壽命終了,迫使設計人員考慮FPGA 等其他長壽命器件。雖然新ASIC設計正在開發中,但是設計人員還不能迅速更新這些產品以跟上標準的發展,或者滿足新功能的要求。
相反,FPGA 涵蓋了多種應用和市場,與大批量產品的特殊應用無關。因此,Altera 在很長時間內生產的FPGA 是您的高性價比選擇。用戶可以更好的管理穩定的供應鏈,它會含有很多其他半導體元器件。在設計中使用FPGA 平臺時,能夠隨時更新并修改設計。用戶可以重復使用IP,在很短的時間內將設計導入到新系列FPGA 中,這要比設計新MCU、DSP、ASSP 或者ASIC 快得多。隨著時間的推移,可以提高多條產品線的商業價值,降低產品過時的成本。
熟悉的工具
Altera 為嵌入式工業設計人員提供功能強大而又使用方便的開發工具,例如,Quartus II 設計軟件、MegaCore IP 庫、SOPC Builder 系統集成工具以及基于Eclipse 的Nios II 嵌入式設計套裝,完善了FPGA 硬件設計,讓您的設計流程更加流暢。
1、Quartus II 設計軟件
基于GUI 的Quartus II 軟件有免費的網絡版和擁有完全許可的版本,其設計流程包括系統設計和時序收斂方法、在系統驗證以及第三方EDA 工具支持,滿足了效能和性能需求,如圖13 所示。
圖13:Quartus II 設計流程
Quartus II 軟件支持各種設計輸入方法、腳本、漸進式編譯、系統級集成、IP 參數賦值、I/O 引腳分析以及綜合選項,從而加速了您的設計流程。在驗證和電路板級,Quartus II 軟件提供TimeQuest 時序分析器、功耗分析器工具、平面布局芯片規劃器、SignalTap II 邏輯分析器、RTL 查看器,以及第三方驗證支持。
[page]
按照下面的三個簡單步驟,很容易采用Quartus II 軟件開始設計:
1. 運行新工程向導,迅速設定工程名稱、位置、頂層實體、設計文件、目標器件,以及工程使用的可選第三方EDA 工具。
2. 完成設計,運行時序分析和綜合,構建網表。
3. 編譯設計,生成器件編程文件。
圖14 顯示了Quartus II 主應用窗口。
圖14:Quartus II 主應用窗口
MegaCore IP 庫Altera 及其第三方IP 合作伙伴提供針對Altera 器件進行了優化的多種商用可配置IP內核。這些IP 包括Altera 的Nios II 嵌入式處理器、DSP 模塊、視頻IP 套裝等組件,以及很多標準和流行的接口,例如,存儲器控制器、CAN、USB 和以太網等。隨Quartus II 設計軟件一起提供并安裝許可和不需要許可的IP。可以直接從Altera 網站申請合作伙伴IP。IP 是模塊化的,可以重復使用,通過SOPC Builder 很容易使用并編程到FPGA 中。SOPC Builder 還支持您自己IP 和接口的開發和使用。
此外,Altera 及其合作伙伴開發并提供的參考設計能夠有效解決常見系統設計問題。用戶可以直接從Altera 網站下載這些參考設計,也可以使用自動申請表,或者直接聯系合作伙伴IP 供應商。
2、SOPC Builder
SOPC Builder 是功能強大的系統集成工具,它含在Quartus II 軟件中,與使用傳統的手動集成方法相比,能夠以更快的速度生成完整的SoC 設計。SOPC Builder 很容易建立IP,在設計中自動生成并集成IP 組件。您可以通過用戶友好的GUI 而不是代碼HDL來管理這一過程,如圖15 所示。
圖15:SOPC Builder 系統集成工具
使用SOPC Builder 中的配置向導,為每一IP 組件選擇合適的配置選項。完成配置后,IP 被加入到系統中,如圖15 所示。以后您可以在SOPC Builder GUI 中簡單的修改選項,從而改變組件基本地址、中斷級以及系統互聯。這樣,您能夠靈活方便的迅速修改、優化并設計您的FPGA 系統。
[page]
3、標準Eclipse 軟件工具
一般而言,需要進行一定控制處理的任何系統都需要采用嵌入式處理器,特別是處理器必須含在SoC 設計中的情況。對于已經熟悉這些軟件工具的設計人員,Altera 提供基于Eclipse 的Nios II 嵌入式設計套裝,Nios II 嵌入式處理器,支持標準操作系統(OS) 以及來自多家流行供應商的實時操作系統(RTOS)。
采用這些熟悉的基于GUI 的開發工具,軟件團隊在設計流程中能夠很好的合作。硬件和軟件團隊可以在標準操作系統上采用電路板支持包(BSP),利用他們的應用軟件專業知識導入導出應用軟件,在一個FPGA 平臺上運行這些軟件,而不是在多個MCU 或者DSP 器件上。可以把以前的MCU 或者DSP 編程軟件經驗應用到可編程嵌入式處理器上,例如,Nios II 嵌入式處理器( 使用基于Eclipsed 的工具)、ARM Cortex M1和Freescale ColdFire V1 內核,這些都可以與Altera FPGA 一起使用。開發工具流程和操作系統( 例如,Linux) 與開發分立處理器代碼所使用的非常相似。基于FPGA的處理器支持Linux 和eCOS 等流行的開放源代碼操作系統,具有活躍的開發人員社區這一優勢,幫助不斷開發新的應用程序和功能。在產品生命周期中進行開發和提供支持時,這些改進和功能有可能節省大量的投入。
而且,可以在處理器體系結構上移植C 程序。例如,面向Eclipse 的Nios II 軟件開發工具(SBT) 含有一組基于流行的Eclipse 工作臺的插件,以及Eclipse C/C++ 開發工具包(CDT) 插件。面向Eclipse 的Nios II SBT 為所有Nios II 處理器系統提供相同的開發平臺。這些Eclipse 工具提高了大型應用軟件和團隊軟件設計的效能。用戶可以在Eclipse 中完成所有Nios II 軟件開發任務,包括建立、編輯、構建、運行、調試和修改程序。
結論
FPGA 能夠靈活的適應工業設計多變的各種需求,降低解決方案總成本。采用一片FPGA就可以將設計的各個部分集成到一個器件中,在本地或者遠程,隨時對基于FPGA 的設計重新編程。這一方法使設計能夠隨著標準的變化而進行修改,同時減少了支持每一協議標準或者每一額外功能所需要的電路板設計。
FPGA 是并行信號處理的理想選擇,也適用于需要通過硬件加速來提高性能的系統。FPGA 中的并行硬件處理意味著不需要增加更多的控制器和功能來提高性能。設計師可以在設計中把FPGA 嵌入式處理器和IP 模塊用作協處理器或者SoC,從而增強性能。軟件團隊可以在標準操作系統(OS) 上采用電路板支持包(BSP),利用他們的應用軟件專業知識導入導出應用軟件,在一個FPGA 平臺上運行這些軟件,而不是在多個MCU 或者DSP 器件上。可以在處理器體系結構上移植C 程序。
一個FPGA 平臺能夠支持多條產品線,提供具有商業價值的途徑,以高性價比方式向市場迅速推出實施方案。利用Cyclone IV 器件等FPGA 的集成和靈活性優勢,與其他技術相比,您能夠更迅速的將產品推向市場,從而占據更大的市場份額,延長工業設計的生命周期。
相關閱讀:
Altera推出10代FPGA和SoC,最高節省70%功耗
http://hdh-sz.com/gptech-art/80021003
Mouser備貨Altera低功耗FPGA
http://ep.cntronics.com/voice/274
臺積16FinFET工藝助力Xilinx打造最高性能FPGA器件
http://hdh-sz.com/power-art/80020971