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