新聞中心

EEPW首頁(yè) > 汽車電子 > 設(shè)計(jì)應(yīng)用 > FPGA進(jìn)入嵌入式領(lǐng)域,處理器內(nèi)核成關(guān)鍵

FPGA進(jìn)入嵌入式領(lǐng)域,處理器內(nèi)核成關(guān)鍵

——
作者: 時(shí)間:2006-12-10 來(lái)源:電子產(chǎn)品世界 收藏

全球整體市場(chǎng)最近幾年迅速擴(kuò)大,其中與嵌入式處理器相關(guān)的Design Win數(shù)量正在迅速增長(zhǎng),潛力巨大。就像打開(kāi)潘多拉的盒子,有了可以運(yùn)行操作系統(tǒng)或?qū)崟r(shí)操作系統(tǒng)的處理器內(nèi)核,相信正在真正意義上大規(guī)模進(jìn)入嵌入式設(shè)計(jì)領(lǐng)域。



從Xilinx、Altera到Actel、Lattice,F(xiàn)PGA提供商都已經(jīng)有可在FPGA邏輯模塊旁實(shí)現(xiàn)的“硬”核,或者可以直接在FPGA結(jié)構(gòu)中運(yùn)行的“軟” 核處理器。硬核的好處是能夠提供更快的數(shù)據(jù)處理能力,所謂軟核需要FPGA廠商提供的PLD軟件進(jìn)行配置,然后固化到FPGA中。與硬核相比,軟核具有更好的靈活性,在目標(biāo)器件中可以進(jìn)行任意配置,根據(jù)具體設(shè)計(jì)需要靈活選擇IP模塊和外設(shè)。

Xilinx除了32位的嵌入式PowerPC硬核之外,還支持8位的PicoBlaze和32位的MicroBlaze兩個(gè)軟內(nèi)核。Xilinx亞太區(qū)高端產(chǎn)品市場(chǎng)經(jīng)理梁曉明先生表示, 高端和低端FPGA嵌入式市場(chǎng)都在迅速成長(zhǎng),所以Xilinx會(huì)持續(xù)兼顧發(fā)展這三種嵌入式處理器。Altera只提供軟核,其32位Nios II軟核處理器與Xilinx的MicroBlaze旗鼓相當(dāng),同樣都是目前市場(chǎng)上最通用的嵌入式FPGA處理器。

最近Nios II和MicroBlaze都增加了對(duì)新的IEEE754兼容浮點(diǎn)單元的支持。Altera公司亞太區(qū)產(chǎn)品和渠道營(yíng)銷工程師王冬剛先生解釋說(shuō),IEEE754標(biāo)準(zhǔn)定義了在計(jì)算機(jī)中表示浮點(diǎn)的一套格式。這一特性的優(yōu)點(diǎn)在于能夠更精確地表達(dá)數(shù)字,只要是需要高精度計(jì)算的場(chǎng)合都可以考慮用浮點(diǎn)處理單元改善計(jì)算精度。就像浮點(diǎn)表示在Intel的Pentium系列CPU中成為標(biāo)準(zhǔn)一樣,越來(lái)越多的嵌入式應(yīng)用需要這一特性,比如進(jìn)程控制,圖像處理,汽車中電機(jī)轉(zhuǎn)速的精確表示等等。

另一家FPGA供應(yīng)商Actel期望在不同市場(chǎng)層面上與Altera和Xilinx展開(kāi)競(jìng)爭(zhēng)。Actel在其FPGA中嵌入了32位的ARM7微處理器內(nèi)核CoreMP7。傳統(tǒng)的嵌入式處理器,例如ARM和MIPS,其處理器IP在基于軟核的設(shè)計(jì)流程中很難得到保護(hù),所以ARM或MIPS內(nèi)核一直無(wú)法以軟IP的形式提供給FPGA廠商,但是不同于主流的基于SRAM的FPGA, Actel基于Flash技術(shù)的FPGA可以保證商用IP在器件中安全的運(yùn)行。

Actel 公司IP 市場(chǎng)經(jīng)理Mike Thompson表示,較之于所有其它同類處理器使用的總和,ARM處理器在設(shè)計(jì)中獲采納的比例為5比1。CoreMP7與ARM7TDMI-S完全兼容,大多數(shù)客戶以往用過(guò)ARM處理器核。進(jìn)一步說(shuō)都擁有現(xiàn)成的ARM代碼,以及所熟悉的開(kāi)發(fā)工具。對(duì)ARM架構(gòu)的熟悉,可以節(jié)省Actel客戶的開(kāi)發(fā)時(shí)間。

與Actel選擇不同結(jié)構(gòu)的產(chǎn)品進(jìn)而轉(zhuǎn)戰(zhàn)其它市場(chǎng)不同,Lattice希望可以與Altera和Xilinx展開(kāi)直接競(jìng)爭(zhēng),在不斷擴(kuò)充產(chǎn)品的同時(shí)尋求差異化。在嵌入式處理器方面,Lattice也在延續(xù)這種競(jìng)爭(zhēng)的策略,與MicroBlaze和Nios II一樣,Lattice的LatticeMico32軟核處理器也很容易嵌入到FPGA中,Lattice IP及應(yīng)用設(shè)計(jì)經(jīng)理謝征帆先生強(qiáng)調(diào),與前兩者有所不同的是,Lattice開(kāi)放了LatticeMico32以及外圍元件的HDL源代碼,用戶能更好地理解微處理器核的結(jié)構(gòu)和工作的內(nèi)部細(xì)節(jié),同時(shí)可以自行修改代碼,增加設(shè)計(jì)的移植性。軟件的開(kāi)發(fā)工具,包括基于GNU的編譯器、匯編器、連接器和調(diào)試器也都是開(kāi)放源碼的。甚至LatticeMico32軟核處理器可以用在Lattice公司以外的產(chǎn)品中,包括ASIC、結(jié)構(gòu)化ASIC以及其他廠商的FPGA中。

絕大多數(shù)的只需一個(gè)內(nèi)核,比如消費(fèi)類產(chǎn)品、網(wǎng)絡(luò)通訊以及工業(yè)系統(tǒng)。多處理器常用于高端數(shù)據(jù)處理的情況,比如對(duì)于一些視頻處理比較復(fù)雜的算法或者有大量復(fù)雜協(xié)議處理的應(yīng)用,可能需要兩個(gè)以上的嵌入式處理器。在一個(gè)FPGA中可以實(shí)現(xiàn)多個(gè)處理器,比如說(shuō)兩個(gè)MicroBlaze或Nios II,或者更多數(shù)目。這之中沒(méi)有定式,完全取決于客戶期望的目標(biāo)來(lái)靈活實(shí)現(xiàn)不同的應(yīng)用模式,例如一個(gè)MicroBlaze作為主控制器,另一個(gè)做特殊任務(wù)處理器;或者兩個(gè)MicroBlaze相互獨(dú)立的執(zhí)行各自的任務(wù)。正因?yàn)槿绱?,這個(gè)優(yōu)勢(shì)是一般已經(jīng)固化了外設(shè)和定制功能的ASSP和ASIC無(wú)法比擬的。為此,針對(duì)多核應(yīng)用的調(diào)試工具也已經(jīng)應(yīng)運(yùn)而生,Altera和Xilinx都獲得了德國(guó)知名的微處理器開(kāi)發(fā)工具的供應(yīng)商Lauterbach的支持,Lauterbach的TRACE32 ICD-Debugger 和TRACE32 PowerTools調(diào)試工具支持多核的PowerPC、MicroBlaze以及Nios II系統(tǒng)的開(kāi)發(fā)。

軟核處理器的主要限制在于處理器的性能,但是在FPGA中嵌入式處理器的性能并不是很大的問(wèn)題,原因在于關(guān)鍵的功能,比如各種復(fù)雜的DSP算法,可以通過(guò)硬件加速來(lái)實(shí)現(xiàn),如今許多FPGA中都有大量的硬連線乘法器或乘累加單元,可用來(lái)定制硬件加速器。對(duì)于需要提高嵌入式軟件性能的軟件工程師而言,硬件加速器是非常重要的工具,與運(yùn)行在軟核中的代碼相比,F(xiàn)PGA加速的代碼的運(yùn)行速度可以快幾個(gè)數(shù)量級(jí),消耗的功率則大大降低。

挑戰(zhàn)在于硬件加速器的設(shè)計(jì)屬于FPGA硬件設(shè)計(jì)范疇,需要開(kāi)發(fā)人員熟練的掌握HDL,邏輯綜合以及復(fù)雜的時(shí)序設(shè)計(jì),同時(shí)要花費(fèi)大量的時(shí)間,因此硬件加速器的設(shè)計(jì)就成為了瓶頸。

Altera最近開(kāi)發(fā)了C2H(C語(yǔ)言至硬件加速)編譯器,能夠自動(dòng)生成硬件加速器,將關(guān)鍵的,特別是包含復(fù)雜的數(shù)學(xué)邏輯算法的C代碼轉(zhuǎn)換成硬件加速器并在FPGA中運(yùn)行,簡(jiǎn)單的說(shuō),C2H編譯器所需要做的工作就是:
*分析軟件代碼,確定出現(xiàn)性能瓶頸的函數(shù)
*在Nios II IDE中高亮顯示所需的函數(shù),右鍵單擊加速
*查看Nios II C2H編譯器結(jié)果,根據(jù)需要修改C代碼,進(jìn)行優(yōu)化
 
C2H編譯器屬于ESL工具,按照Synopsys 對(duì)ESL工具的定義,ESL工具提供了C語(yǔ)言到硬件描述語(yǔ)言的轉(zhuǎn)換。ESL有兩個(gè)主要的設(shè)計(jì)流程:高級(jí)語(yǔ)言綜合和系統(tǒng)建模,高級(jí)語(yǔ)言綜合中包括模塊生成和硬件加速,模塊生成的方法可以將C代碼直接綜合成RTL代碼,在FPGA中直接實(shí)現(xiàn)DSP模塊,這種方法可以在很大程度上提高設(shè)計(jì)效率,但需要對(duì)C綜合工具有透徹的理解;如果選用嵌入式處理器,可以利用FPGA資源為其創(chuàng)建一個(gè)硬件加速器,這種方式只是將關(guān)鍵的操作以硬件加速器的形式放置到FPGA邏輯中去執(zhí)行,相比生成DSP模塊的方式更加簡(jiǎn)單,C2H編譯器即屬于硬件加速工具。系統(tǒng)建模是指用C++來(lái)編寫(xiě)仿真模型,從而加速系統(tǒng)的仿真速度。

Altera和Xilinx最近都啟動(dòng)了相關(guān)的ESL計(jì)劃,與主要的ESL廠商合作開(kāi)發(fā)設(shè)計(jì)工具,這些工具對(duì)嵌入式處理器內(nèi)核的支持也包含在其中。通過(guò)使用ESL工具,以往并不擅長(zhǎng)FPGA硬件設(shè)計(jì)的軟件或系統(tǒng)工程師也可以進(jìn)入FPGA領(lǐng)域,與FPGA相關(guān)的嵌入式設(shè)計(jì)的數(shù)量還會(huì)進(jìn)一步增加。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉