FPGA進(jìn)入嵌入式領(lǐng)域,處理器內核成關(guān)鍵
全球FPGA整體市場(chǎng)最近幾年迅速擴大,其中與嵌入式FPGA處理器相關(guān)的Design Win數量正在迅速增長(cháng),潛力巨大。就像打開(kāi)潘多拉的盒子,有了可以運行操作系統或實(shí)時(shí)操作系統的處理器內核,相信FPGA正在真正意義上大規模進(jìn)入嵌入式設計領(lǐng)域。
從Xilinx、Altera到Actel、Lattice,FPGA提供商都已經(jīng)有可在FPGA邏輯模塊旁實(shí)現的“硬”核,或者可以直接在FPGA結構中運行的“軟” 核處理器。硬核的好處是能夠提供更快的數據處理能力,所謂軟核需要FPGA廠(chǎng)商提供的PLD軟件進(jìn)行配置,然后固化到FPGA中。與硬核相比,軟核具有更好的靈活性,在目標器件中可以進(jìn)行任意配置,根據具體設計需要靈活選擇IP模塊和外設。
Xilinx除了32位的嵌入式PowerPC硬核之外,還支持8位的PicoBlaze和32位的MicroBlaze兩個(gè)軟內核。Xilinx亞太區高端產(chǎn)品市場(chǎng)經(jīng)理梁曉明先生表示, 高端和低端FPGA嵌入式市場(chǎng)都在迅速成長(cháng),所以Xilinx會(huì )持續兼顧發(fā)展這三種嵌入式處理器。Altera只提供軟核,其32位Nios II軟核處理器與Xilinx的MicroBlaze旗鼓相當,同樣都是目前市場(chǎng)上最通用的嵌入式FPGA處理器。
最近Nios II和MicroBlaze都增加了對新的IEEE754兼容浮點(diǎn)單元的支持。Altera公司亞太區產(chǎn)品和渠道營(yíng)銷(xiāo)工程師王冬剛先生解釋說(shuō),IEEE754標準定義了在計算機中表示浮點(diǎn)的一套格式。這一特性的優(yōu)點(diǎn)在于能夠更精確地表達數字,只要是需要高精度計算的場(chǎng)合都可以考慮用浮點(diǎn)處理單元改善計算精度。就像浮點(diǎn)表示在Intel的Pentium系列CPU中成為標準一樣,越來(lái)越多的嵌入式應用需要這一特性,比如進(jìn)程控制,圖像處理,汽車(chē)中電機轉速的精確表示等等。
另一家FPGA供應商Actel期望在不同市場(chǎng)層面上與Altera和Xilinx展開(kāi)競爭。Actel在其FPGA中嵌入了32位的ARM7微處理器內核CoreMP7。傳統的嵌入式處理器,例如ARM和MIPS,其處理器IP在基于軟核的設計流程中很難得到保護,所以ARM或MIPS內核一直無(wú)法以軟IP的形式提供給FPGA廠(chǎng)商,但是不同于主流的基于SRAM的FPGA, Actel基于Flash技術(shù)的FPGA可以保證商用IP在器件中安全的運行。
Actel 公司IP 市場(chǎng)經(jīng)理Mike Thompson表示,較之于所有其它同類(lèi)處理器使用的總和,ARM處理器在設計中獲采納的比例為5比1。CoreMP7與ARM7TDMI-S完全兼容,大多數客戶(hù)以往用過(guò)ARM處理器核。進(jìn)一步說(shuō)都擁有現成的ARM代碼,以及所熟悉的開(kāi)發(fā)工具。對ARM架構的熟悉,可以節省Actel客戶(hù)的開(kāi)發(fā)時(shí)間。
與Actel選擇不同結構的產(chǎn)品進(jìn)而轉戰其它市場(chǎng)不同,Lattice希望可以與Altera和Xilinx展開(kāi)直接競爭,在不斷擴充產(chǎn)品的同時(shí)尋求差異化。在嵌入式處理器方面,Lattice也在延續這種競爭的策略,與MicroBlaze和Nios II一樣,Lattice的LatticeMico32軟核處理器也很容易嵌入到FPGA中,Lattice IP及應用設計經(jīng)理謝征帆先生強調,與前兩者有所不同的是,Lattice開(kāi)放了LatticeMico32以及外圍元件的HDL源代碼,用戶(hù)能更好地理解微處理器核的結構和工作的內部細節,同時(shí)可以自行修改代碼,增加設計的移植性。軟件的開(kāi)發(fā)工具,包括基于GNU的編譯器、匯編器、連接器和調試器也都是開(kāi)放源碼的。甚至LatticeMico32軟核處理器可以用在Lattice公司以外的產(chǎn)品中,包括ASIC、結構化ASIC以及其他廠(chǎng)商的FPGA中。
絕大多數的嵌入式系統只需一個(gè)內核,比如消費類(lèi)產(chǎn)品、網(wǎng)絡(luò )通訊以及工業(yè)系統。多處理器常用于高端數據處理的情況,比如對于一些視頻處理比較復雜的算法或者有大量復雜協(xié)議處理的應用,可能需要兩個(gè)以上的嵌入式處理器。在一個(gè)FPGA中可以實(shí)現多個(gè)處理器,比如說(shuō)兩個(gè)MicroBlaze或Nios II,或者更多數目。這之中沒(méi)有定式,完全取決于客戶(hù)期望的目標來(lái)靈活實(shí)現不同的應用模式,例如一個(gè)MicroBlaze作為主控制器,另一個(gè)做特殊任務(wù)處理器;或者兩個(gè)MicroBlaze相互獨立的執行各自的任務(wù)。正因為如此,這個(gè)優(yōu)勢是一般已經(jīng)固化了外設和定制功能的ASSP和ASIC無(wú)法比擬的。為此,針對多核應用的調試工具也已經(jīng)應運而生,Altera和Xilinx都獲得了德國知名的微處理器開(kāi)發(fā)工具的供應商Lauterbach的支持,Lauterbach的TRACE32 ICD-Debugger 和TRACE32 PowerTools調試工具支持多核的PowerPC、MicroBlaze以及Nios II系統的開(kāi)發(fā)。
軟核處理器的主要限制在于處理器的性能,但是在FPGA中嵌入式處理器的性能并不是很大的問(wèn)題,原因在于關(guān)鍵的功能,比如各種復雜的DSP算法,可以通過(guò)硬件加速來(lái)實(shí)現,如今許多FPGA中都有大量的硬連線(xiàn)乘法器或乘累加單元,可用來(lái)定制硬件加速器。對于需要提高嵌入式軟件性能的軟件工程師而言,硬件加速器是非常重要的工具,與運行在軟核中的代碼相比,FPGA加速的代碼的運行速度可以快幾個(gè)數量級,消耗的功率則大大降低。
挑戰在于硬件加速器的設計屬于FPGA硬件設計范疇,需要開(kāi)發(fā)人員熟練的掌握HDL,邏輯綜合以及復雜的時(shí)序設計,同時(shí)要花費大量的時(shí)間,因此硬件加速器的設計就成為了瓶頸。
Altera最近開(kāi)發(fā)了C2H(C語(yǔ)言至硬件加速)編譯器,能夠自動(dòng)生成硬件加速器,將關(guān)鍵的,特別是包含復雜的數學(xué)邏輯算法的C代碼轉換成硬件加速器并在FPGA中運行,簡(jiǎn)單的說(shuō),C2H編譯器所需要做的工作就是:
*分析軟件代碼,確定出現性能瓶頸的函數
*在Nios II IDE中高亮顯示所需的函數,右鍵單擊加速
*查看Nios II C2H編譯器結果,根據需要修改C代碼,進(jìn)行優(yōu)化
C2H編譯器屬于ESL工具,按照Synopsys 對ESL工具的定義,ESL工具提供了C語(yǔ)言到硬件描述語(yǔ)言的轉換。ESL有兩個(gè)主要的設計流程:高級語(yǔ)言綜合和系統建模,高級語(yǔ)言綜合中包括模塊生成和硬件加速,模塊生成的方法可以將C代碼直接綜合成RTL代碼,在FPGA中直接實(shí)現DSP模塊,這種方法可以在很大程度上提高設計效率,但需要對C綜合工具有透徹的理解;如果選用嵌入式處理器,可以利用FPGA資源為其創(chuàng )建一個(gè)硬件加速器,這種方式只是將關(guān)鍵的操作以硬件加速器的形式放置到FPGA邏輯中去執行,相比生成DSP模塊的方式更加簡(jiǎn)單,C2H編譯器即屬于硬件加速工具。系統建模是指用C++來(lái)編寫(xiě)仿真模型,從而加速系統的仿真速度。
Altera和Xilinx最近都啟動(dòng)了相關(guān)的ESL計劃,與主要的ESL廠(chǎng)商合作開(kāi)發(fā)設計工具,這些工具對嵌入式處理器內核的支持也包含在其中。通過(guò)使用ESL工具,以往并不擅長(cháng)FPGA硬件設計的軟件或系統工程師也可以進(jìn)入FPGA領(lǐng)域,與FPGA相關(guān)的嵌入式設計的數量還會(huì )進(jìn)一步增加。
評論