<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設計應用 > FPGA進入嵌入式領域,處理器內核成關鍵

          FPGA進入嵌入式領域,處理器內核成關鍵

          ——
          作者: 時間:2006-12-10 來源:電子產品世界 收藏

          全球整體市場最近幾年迅速擴大,其中與嵌入式處理器相關的Design Win數量正在迅速增長,潛力巨大。就像打開潘多拉的盒子,有了可以運行操作系統(tǒng)或實時操作系統(tǒng)的處理器內核,相信正在真正意義上大規(guī)模進入嵌入式設計領域。



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

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

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

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

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

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

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

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

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

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

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



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();