在嵌入式系統中用FPGA進行開發的幾個發展方向

本文來自http://www.ic37.com/htm_tech/2008-1/7252_774625.htm

顧名思義,嵌入式系統指的是嵌入到系統內部的計算機系統,是面向特定應用設計的專用計算機系統。早期的嵌入式系統一般是以通用處理器或單片機爲核心,在外圍電路中加入存儲器、功率驅動器、通信接口、顯示接口、人機輸入接口等外圍接口,再加上應用軟件,有些還加上了嵌入式操作系統,從而構成完整的系統。

  隨着微電子技術的進步,SoC已經在很多應用中取代了傳統的以單片機爲中心的架構,將很多外設和存儲器集成在一個芯片中,使系統的功耗和體積越來越小,而功能卻越來越強。

  FPGA在嵌入式系統中的應用前景

  現在的MCU和DSP的功能已經非常強了,但處理能力畢竟還是有限的,廠商在推出一款器件的時候,其性能就已經固定了。當某一款產品的性能無法滿足要求時,就必須選用新的處理器,常常意味着重新進行PCB的設計,重新進行各項軟硬件的驗證測試,所導致的工程資源的浪費是非常驚人的。

  FPGA是通過邏輯組合來實現各種功能的器件,幾乎可以進行任何類型的處理;對於常用的數字信號處理,有些FPGA專門還提供了DSP模塊來實現加速;FPGA的並行處理架構非常適合圖像處理、數字信號處理等運算密集的應用;用某款芯

片無法滿足要求時,還可以通過使用同樣封裝且容量更大的FPGA芯片來提供更高的處理能力,這樣就可以保持管腳的兼容性,從而無須對PCB板進行修改;FPGA的可編程性使設計工程師可以隨時對設計進行修改,即使在產品部署後也能對設計錯誤進行更正;FPGA不但可以完成MCU和DSP的各種功能,還可以根據需要生成新的功能,或者調配各項功能之間的資源配比,使同一個硬件電路設計可以滿足不同的應用需求;FPGA還可以利用現成的處理器內核,直接生成軟處理器,並在其上運行操作系統。

  由於FPGA是通過邏輯組合來實現功能的,所以其功耗和成本一般高於MCU和DSP。在幾年前,FPGA給人的印象一直是高高在上的價格,除了通信、航天、軍工、工業等少數行業,FPGA更多地是在扮演原型驗證開發的角色,在消費類電子等更廣大的市場中遲遲未打開局面。

  隨着Xilinx和Altera競相採用新的製造工藝,其單位門電路的價格下降得比ASIC還要快,價格在很多應用中已不再是障礙了。特別是在一些需要特定功能的應用中,設計師在市場上找不到可以滿足要求的器件,他們就必須自己開發ASIC芯片,或者用FPGA進行設計。但開發ASIC的成本和風險在不斷提高,甚至超過了未來的收益,用FPGA就成了一個非常實際的選擇。

  開發流程的演進

  傳統嵌入式系統的開發流程是一般先做好硬件平臺,再在硬件平臺上面應用嵌入式系統開發工具進行軟件開發。這樣做的結果是軟件開發人員必須在硬件設計完成後才能工作,或者是用各種仿真工具在虛擬的硬件平臺上進行開發。

  在用FPGA進行開發時,開發人員首先要設計輸入(FPGA廠商專用工具+語言/原理圖+IP CORE),然後編譯仿真(FPGA廠商工具+仿真工具),再進行板級調試(測試板製作+邏輯分析儀),如果發現問題,再循環進行上面的環節。

  這種設計模式存在諸多問題:設計可移植性差,語言的不足及IP CORE的費用昂貴,系統仿真的可靠性及速度瓶頸,需要製作專用測試板,外接測試儀器的侷限性,測試板的重複製作導致開發週期延長。

  此外,從原理圖設計、邏輯驗證和仿真、電路板設計、嵌入式軟件的開發和調試,到最後的綜合調試,在整個過程中要用到多個廠商的不同工具,不但需要開發人員掌握各個軟件的使用方法和技巧,僅僅從資本投入上就是一筆不小的開支。而且,各個軟件之間還經常要互相調用文件,儘管各個廠商都宣稱自己的軟件可保證兼容性,但軟件日益複雜的功能和不斷增長的代碼讓人難以對兼容性完全放心。

  有沒有一個能完成整個FPGA嵌入式系統設計的一體化開發環境呢?有,這就是Altium Designer6.0,該軟件的前身就是被電子工程師所廣爲熟知的Protel,直到現在,還有大量的工程師在用Protel進行PCB板設計。Altium Designer由三部分組成:Foundation是電子產品設計前端,包含了原理圖輸入、電路仿真和驗證、PCB及CAM文檔資料瀏覽功能;Board Implementation可實現傳統板級電路設計、驗證及CAM文檔編輯功能;Embedded Intelligence Implementation是基於大規模可編程邏輯器件(FPGA/CPLD)的數字電路設計、片上可編程嵌入式系統軟件開發和數字電路實時驗證功能。

  Altium Designer拓寬了板級設計的傳統界限,將FPGA與PCB設計集成在一起,同時支持原理圖輸入和HDL硬件描述輸入模式;同時支持基於VHDL的設計仿真,混合信號電路仿真、佈局前/後信號完整性分析。PCB版圖設計中的佈局佈線採用完全規則驅動模式,並且在PCB佈線中採用了無網格的Situs拓撲邏輯自動佈線功能;同時,將完整的CAM輸出功能的編輯結合在一起。

Altium Designer支持PCB與FPGA引腳的雙向同步,提供完善的混合信號仿真、佈線前後的信號完整性分析功能,提供了對高密度封裝(如BGA)的交互佈線功能。

  在原理圖部分,Altium Designer新增的特性包括:文件管理功能,多層次、多通道的原理設計,可自動標註元器件,FPGA引腳配置導入,原理圖環境中的PCB規則定義,豐富的集成庫,改善的編輯、查詢和可視化。

  FPGA引腳配置導入功能允許管腳約束文件,管腳定義可以直接來源於FPGA器件商的引腳約束文件,同時提供對引腳名稱和電氣類型定義的支持;不再強調必須在Altium Designer環境下完成包括FPGA內部邏輯電路設計在內的一體化系統設計。

  在PCB部分提供了完整的由規則驅動的PCB設計環境;支持高速設計,具有成熟的佈線後信號完整性分析工具;支持差分對佈線;支持BGA封裝器件的逃溢式扇出功能;支持漢字輸入;支持任意可配置引腳定義器件的網絡優化功能;Orc

ad、PADS、AutoCAD和其他軟件的文件導入和導出功能;完整的ODB++/Gerber CAM-系統使得用戶可以重新設計原有的設計,彌補設計和製造之間的差異。PCB部分還支持佈局優化、佈線功能優化、PCB板的3D顯示、FPGA的全面協同、CAM輸出。

  Altium Desigenr內嵌的仿真軟件兼容XSPICE/PSPICE電路仿真模型,它能將仿真結果以波形的方式顯示,可進行混合電路仿真和仿真波形顯示,支持多種仿真模型。在信號完整性分析部分,提供了消除反射和串擾分析功能,

  在Altium Designer中,用戶可以用圖形化的方式來完成整個設計流程,系統自動調用FPGA廠商提供的工具進行佈局佈線,設計環境中的集中過程控制和監測功能使得信息能夠得到及時反饋從而實現交互式設計與調試。

  使用“虛擬儀器”元件,工程師可以在原理圖級將“虛擬儀器”連入設計;FPGA編程後,可以從外部控制;可以實時觀察FPGA發生的情況;調試時使用JTAG 邊界掃描檢驗FPGA的信號;用Nexus協議和虛擬儀器進行通信並對設計進行調試。

  Altium Designer還提供了大量通用的預驗證的IP Core,支持通用IP Core 的設計,並且支持第三方提供的IP Core 。通過與Nanoboard NB1系統驗證板的結合,可進行實時設計,從而實現獨立於目標器件的FPGA設計。

  Altium公司的這種設計方法,將硬件、軟件和可編程硬件等領域均被統一在單一的開發系統內,可以完全控制和同步從概念構想到完成實施的整個設計流程。

  這種一體化開發流程的缺點是,儘管非常方便易用,但軟件的各個部分在性能和功能上無法全部做到領先,在驗證、功能設計、PCB設計等方面要弱於一些專業性的或FPGA廠商自己的軟件,在需要針對器件進行非常細緻的優化以取得最佳性能時,Altium Designer就未必是最佳選擇了。

  定位不同的硬件開發板

  同軟件定位不同一樣,目前衆多的硬件開發電路板的市場定位也是不同的。主流的FPGA廠商均推出了自己的開發板,爲了市場推廣和銷售的需要,他們也和一些大的經銷商合作推出開發板,更容易利用經銷商在價格和渠道上的優勢。

  Xilinx公司的主要經銷商安富利公司開發了很多FPGA開發板,在功能上更加豐富,在定價和促銷上也更靈活。如,安富利推出的Virtex-4 FX PCI Express開發工具套件和Virtex-5 LX開發工具套件。


  找到精確滿足開發人員需求的FPGA開發基板是非常困難的,在基板上添加子板是一個不錯的方法。安富利推出的EXP擴展標準使設計人員在原型設計時候可以通過子卡添加多種功能,滿足FPGA開發板的不同要求,免費提供給設計工程師用於定製基本板和擴展模塊。使用EXP模塊的好處是成本低、靈活性高、易於製作原型。在結構上,半長EXP模塊可提供84個用戶I/O、32個單端信號、22個差分信號、單端時鐘輸入和輸出、差分時鐘輸入和輸出,單端和差分信號的最高頻率分別是200MHz和700MHz。

  安富利提供的EXP模塊包括:視頻預處理模塊、高速ADC模塊、高速DAC模塊、ADI公司的EXP適配器模塊。有全長(126mm×80mm)和半長(108mm×80mm)兩種尺寸,採用Samtec公司高性能的QTE/QSE連接器。

  視頻預處理模塊的輸入兼容DVI、VGA、S-Video,輸出支持DVI、VGA、LCD,具有圖像傳感器、音頻輸入和輸出。高速ADC EXP模塊採用TI的12位、50MS/s ADC,帶有14位的LVDS接口,用兩塊卡可以支持雙通道。高速DAC模塊採用TI的雙通道、16位分辨率、採樣率爲1GS/s、帶16位LVDS接口的DAC。還有支持ADI公司器件的EXP適配器模塊,可以很方便地連接到90多種ADC評估板上,支持LVDS和並行接口評估板,可連到Virtex-4、Virtex-5和Spartan-DSP基板上。

Altium公司的NanoBoard開發板支持的範圍更廣,包括Xilinx、Altera、Actel等公司的衆多FPGA型號,與FPGA組成了可重新配置的系統設計驗證平臺;NanoBoard通過打印電纜接口與用戶PC進行通信,支持硬件設計的下載和實現Live設計驗證功能。NanoBoard還支持可插拔的FPGA子板,可以通過更換子板來調試不同的FPGA。

  圖 NanoBoard-NB2開發板

  NanoBoard的板上資源包括:CAN總線接口、串行口、VGA接口、顯示鏈輸入輸出、外部存儲器、I2C接口、連接用戶開發板接口、連接FPGA子板的插座、系統時鐘、JTAG接口、PS2鍵盤和鼠標鼠標接口、多用戶I

/O接口。用戶在一塊板子上就可以完成整個系統的開發和驗證,通過更換子卡,可以試用各廠商的不同器件,找到性價比最佳的器件,而不必重複購買開發板。

  隨着FPGA的製造工藝向65nm、45nm和更先進的工藝發展,FPGA的器件成本會越來越低。爲了取得差異化的競爭優勢,系統廠商必須開發出獨特的產品功能,但採用ASSP和ASIC都只能提供固定的有限功能,而開發ASIC的巨大成本和風險又使得ASIC只能成爲少數大公司的選擇。成本不斷下降的FPGA已經成爲大多數系統廠商的不二之選,但在傳統設計流程中軟硬件的不同步、需要交叉使用多個軟件、硬件開發板的支持範圍有限,可能成爲阻礙更多采用FPGA的問題。Altium公司的Altium Designer是業界首個提供了一體化設計環境的開發工具,如果有更多的廠商參與開發類似的軟件工具,並不斷提高易用性和性能,才能真正將這種設計理念推廣到更廣的應用領域。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章