FPGA進(jìn)行開(kāi)發(fā)嵌入式系統中用的幾個(gè)發(fā)展方向
顧名思義,嵌入式系統指的是嵌入到系統內部的計算機系統,是面向特定應用設計的專(zhuān)用計算機系統。
本文引用地址:http://dyxdggzs.com/article/191575.htm早期的嵌入式系統一般是以通用處理器或單片機為核心,在外圍電路中加入存儲器、功率驅動(dòng)器、通信接口、顯示接口、人機輸入接口等外圍接口,再加上應用軟件,有些還加上了嵌入式操作系統,從而構成完整的系統。
隨著(zhù)微電子技術(shù)的進(jìn)步,SoC已經(jīng)在很多應用中取代了傳統的以單片機為中心的架構,將很多外設和存儲器集成在一個(gè)芯片中,使系統的功耗和體積越來(lái)越小,而功能卻越來(lái)越強。
現在的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í)驗證功能。
評論