在嵌入式系統中用FPGA進(jìn)行開(kāi)發(fā)的幾個(gè)發(fā)展方向
——
早期的嵌入式系統一般是以通用處理器或單片機為核心,在外圍電路中加入存儲器、功率驅動(dòng)器、通信接口、顯示接口、人機輸入接口等外圍接口,再加上應用軟件,有些還加上了嵌入式操作系統,從而構成完整的系統。
隨著(zhù)微電子技術(shù)的進(jìn)步,SoC已經(jīng)在很多應用中取代了傳統的以單片機為中心的架構,將很多外設和存儲器集成在一個(gè)芯片中,使系統的功耗和體積越來(lái)越小,而功能卻越來(lái)越強。
FPGA在嵌入式系統中的應用前景
現在的MCU和DSP的功能已經(jīng)非常強了,但處理能力畢竟還是有限的,廠(chǎng)商在推出一款器件的時(shí)候,其性能就已經(jīng)固定了。當某一款產(chǎn)品的性能無(wú)法滿(mǎn)足要求時(shí),就必須選用新的處理器,常常意味著(zhù)重新進(jìn)行PCB的設計,重新進(jìn)行各項軟硬件的驗證測試,所導致的工程資源的浪費是非常驚人的。
FPGA是通過(guò)邏輯組合來(lái)實(shí)現各種功能的器件,幾乎可以進(jìn)行任何類(lèi)型的處理;對于常用的數字信號處理,有些FPGA專(zhuān)門(mén)還提供了DSP模塊來(lái)實(shí)現加速;FPGA的并行處理架構非常適合圖像處理、數字信號處理等運算密集的應用;用某款芯片無(wú)法滿(mǎn)足要求時(shí),還可以通過(guò)使用同樣封裝且容量更大的FPGA芯片來(lái)提供更高的處理能力,這樣就可以保持管腳的兼容性,從而無(wú)須對PCB板進(jìn)行修改;FPGA的可編程性使設計工程師可以隨時(shí)對設計進(jìn)行修改,即使在產(chǎn)品部署后也能對設計錯誤進(jìn)行更正;FPGA不但可以完成MCU和DSP的各種功能,還可以根據需要生成新的功能,或者調配各項功能之間的資源配比,使同一個(gè)硬件電路設計可以滿(mǎn)足不同的應用需求;FPGA還可以利用現成的處理器內核,直接生成軟處理器,并在其上運行操作系統。
由于FPGA是通過(guò)邏輯組合來(lái)實(shí)現功能的,所以其功耗和成本一般高于MCU和DSP。在幾年前,FPGA給人的印象一直是高高在上的價(jià)格,除了通信、航天、軍工、工業(yè)等少數行業(yè),FPGA更多地是在扮演原型驗證開(kāi)發(fā)的角色,在消費類(lèi)電子等更廣大的市場(chǎng)中遲遲未打開(kāi)局面。
隨著(zhù)Xilinx和Altera競相采用新的制造工藝,其單位門(mén)電路的價(jià)格下降得比ASIC還要快,價(jià)格在很多應用中已不再是障礙了。特別是在一些需要特定功能的應用中,設計師在市場(chǎng)上找不到可以滿(mǎn)足要求的器件,他們就必須自己開(kāi)發(fā)ASIC芯片,或者用FPGA進(jìn)行設計。但開(kāi)發(fā)ASIC的成本和風(fēng)險在不斷提高,甚至超過(guò)了未來(lái)的收益,用FPGA就成了一個(gè)非常實(shí)際的選擇。
開(kāi)發(fā)流程的演進(jìn)
傳統嵌入式系統的開(kāi)發(fā)流程是一般先做好硬件平臺,再在硬件平臺上面應用嵌入式系統開(kāi)發(fā)工具進(jìn)行軟件開(kāi)發(fā)。這樣做的結果是軟件開(kāi)發(fā)人員必須在硬件設計完成后才能工作,或者是用各種仿真工具在虛擬的硬件平臺上進(jìn)行開(kāi)發(fā)。
在用FPGA進(jìn)行開(kāi)發(fā)時(shí),開(kāi)發(fā)人員首先要設計輸入(FPGA廠(chǎng)商專(zhuān)用工具+語(yǔ)言/原理圖+IP CORE),然后編譯仿真(FPGA廠(chǎng)商工具+仿真工具),再進(jìn)行板級調試(測試板制作+邏輯分析儀),如果發(fā)現問(wèn)題,再循環(huán)進(jìn)行上面的環(huán)節。
這種設計模式存在諸多問(wèn)題:設計可移植性差,語(yǔ)言的不足及IP CORE的費用昂貴,系統仿真的可靠性及速度瓶頸,需要制作專(zhuān)用測試板,外接測試儀器的局限性,測試板的重復制作導致開(kāi)發(fā)周期延長(cháng)。
此外,從原理圖設計、邏輯驗證和仿真、電路板設計、嵌入式軟件的開(kāi)發(fā)和調試,到最后的綜合調試,在整個(gè)過(guò)程中要用到多個(gè)廠(chǎng)商的不同工具,不但需要開(kāi)發(fā)人員掌握各個(gè)軟件的使用方法和技巧,僅僅從資本投入上就是一筆不小的開(kāi)支。而且,各個(gè)軟件之間還經(jīng)常要互相調用文件,盡管各個(gè)廠(chǎng)商都宣稱(chēng)自己的軟件可保證兼容性,但軟件日益復雜的功能和不斷增長(cháng)的代碼讓人難以對兼容性完全放心。
有沒(méi)有一個(gè)能完成整個(gè)FPGA嵌入式系統設計的一體化開(kāi)發(fā)環(huán)境呢?有,這就是Altium Designer6.0,該軟件的前身就是被電子工程師所廣為熟知的Protel,直到現在,還有大量的工程師在用Protel進(jìn)行PCB板設計。Altium Designer由三部分組成:Foundation是電子產(chǎn)品設計前端,包含了原理圖輸入、電路仿真和驗證、PCB及CAM文檔資料瀏覽功能;Board Implementation可實(shí)現傳統板級電路設計、驗證及CAM文檔編輯功能;Embedded Intelligence Implementation是基于大規??删幊踢壿嬈骷?FPGA/CPLD)的數字電路設計、片上可編程嵌入式系統軟件開(kāi)發(fā)和數字電路實(shí)時(shí)驗證功能。
Altium Designer拓寬了板級設計的傳統界限,將FPGA與PCB設計集成在一起,同時(shí)支持原理圖輸入和HDL硬件描述輸入模式;同時(shí)支持基于VHDL的設計仿真,混合信號電路仿真、布局前/后信號完整性分析。PCB版圖設計中的布局布線(xiàn)采用完全規則驅動(dòng)模式,并且在PCB布線(xiàn)中采用了無(wú)網(wǎng)格的Situs拓撲邏輯自動(dòng)布線(xiàn)功能;同時(shí),將完整的CAM輸出功能的編輯結合在一起。
Altium Designer支持PCB與FPGA引腳的雙向同步,提供完善的混合信號仿真、布線(xiàn)前后的信號完整性分析功能,提供了對高密度封裝(如BGA)的交互布線(xiàn)功能。
在原理圖部分,Altium Designer新增的特性包括:文件管理功能,多層次、多通道的原理設計,可自動(dòng)標注元器件,FPGA引腳配置導入,原理圖環(huán)境中的PCB規則定義,豐富的集成庫,改善的編輯、查詢(xún)和可視化。
FPGA引腳配置導入功能允許管腳約束文件,管腳定義可以直接來(lái)源于FPGA器件商的引腳約束文件,同時(shí)提供對引腳名稱(chēng)和電氣類(lèi)型定義的支持;不再強調必須在A(yíng)ltium Designer環(huán)境下完成包括FPGA內部邏輯電路設計在內的一體化系統設計。
在PCB部分提供了完整的由規則驅動(dòng)的PCB設計環(huán)境;支持高速設計,具有成熟的布線(xiàn)后信號完整性分析工具;支持差分對布線(xiàn);支持BGA封裝器件的逃溢式扇出功能;支持漢字輸入;支持任意可配置引腳定義器件的網(wǎng)絡(luò )優(yōu)化功能;Orcad、PADS、AutoCAD和其他軟件的文件導入和導出功能;完整的ODB++/Gerber CAM-系統使得用戶(hù)可以重新設計原有的設計,彌補設計和制造之間的差異。PCB部分還支持布局優(yōu)化、布線(xiàn)功能優(yōu)化、PCB板的3D顯示、FPGA的全面協(xié)同、CAM輸出。
Altium Desigenr內嵌的仿真軟件兼容XSPICE/PSPICE電路仿真模型,它能將仿真結果以波形的方式顯示,可進(jìn)行混合電路仿真和仿真波形顯示,支持多種仿真模型。在信號完整性分析部分,提供了消除反射和串擾分析功能,
在A(yíng)ltium Designer中,用戶(hù)可以用圖形化的方式來(lái)完成整個(gè)設計流程,系統自動(dòng)調用FPGA廠(chǎng)商提供的工具進(jìn)行布局布線(xiàn),設計環(huán)境中的集中過(guò)程控制和監測功能使得信息能夠得到及時(shí)反饋從而實(shí)現交互式設計與調試。
使用“虛擬儀器”元件,工程師可以在原理圖級將“虛擬儀器”連入設計;FPGA編程后,可以從外部控制;可以實(shí)時(shí)觀(guān)察FPGA發(fā)生的情況;調試時(shí)使用JTAG 邊界掃描檢驗FPGA的信號;用Nexus協(xié)議和虛擬儀器進(jìn)行通信并對設計進(jìn)行調試。
Altium Designer還提供了大量通用的預驗證的IP Core,支持通用IP Core 的設計,并且支持第三方提供的IP Core 。通過(guò)與Nanoboard NB1系統驗證板的結合,可進(jìn)行實(shí)時(shí)設計,從而實(shí)現獨立于目標器件的FPGA設計。
Altium公司的這種設計方法,將硬件、軟件和可編程硬件等領(lǐng)域均被統一在單一的開(kāi)發(fā)系統內,可以完全控制和同步從概念構想到完成實(shí)施的整個(gè)設計流程。
這種一體化開(kāi)發(fā)流程的缺點(diǎn)是,盡管非常方便易用,但軟件的各個(gè)部分在性能和功能上無(wú)法全部做到領(lǐng)先,在驗證、功能設計、PCB設計等方面要弱于一些專(zhuān)業(yè)性的或FPGA廠(chǎng)商自己的軟件,在需要針對器件進(jìn)行非常細致的優(yōu)化以取得最佳性能時(shí),Altium Designer就未必是最佳選擇了。
定位不同的硬件開(kāi)發(fā)板
同軟件定位不同一樣,目前眾多的硬件開(kāi)發(fā)電路板的市場(chǎng)定位也是不同的。主流的FPGA廠(chǎng)商均推出了自己的開(kāi)發(fā)板,為了市場(chǎng)推廣和銷(xiāo)售的需要,他們也和一些大的經(jīng)銷(xiāo)商合作推出開(kāi)發(fā)板,更容易利用經(jīng)銷(xiāo)商在價(jià)格和渠道上的優(yōu)勢。
Xilinx公司的主要經(jīng)銷(xiāo)商安富利公司開(kāi)發(fā)了很多FPGA開(kāi)發(fā)板,在功能上更加豐富,在定價(jià)和促銷(xiāo)上也更靈活。如,安富利推出的Virtex-4 FX PCI Express開(kāi)發(fā)工具套件和Virtex-5 LX開(kāi)發(fā)工具套件。

圖 Virtex-4 FX PCI Express開(kāi)發(fā)套件
找到精確滿(mǎn)足開(kāi)發(fā)人員需求的FPGA開(kāi)發(fā)基板是非常困難的,在基板上添加子板是一個(gè)不錯的方法。安富利推出的EXP擴展標準使設計人員在原型設計時(shí)候可以通過(guò)子卡添加多種功能,滿(mǎn)足FPGA開(kāi)發(fā)板的不同要求,免費提供給設計工程師用于定制基本板和擴展模塊。使用EXP模塊的好處是成本低、靈活性高、易于制作原型。在結構上,半長(cháng)EXP模塊可提供84個(gè)用戶(hù)I/O、32個(gè)單端信號、22個(gè)差分信號、單端時(shí)鐘輸入和輸出、差分時(shí)鐘輸入和輸出,單端和差分信號的最高頻率分別是200MHz和700MHz。
安富利提供的EXP模塊包括:視頻預處理模塊、高速ADC模塊、高速DAC模塊、ADI公司的EXP適配器模塊。有全長(cháng)(126mm
評論