第三方軟件快速實(shí)現FPGA嵌入式系統設計
FPGA問(wèn)世已經(jīng)超過(guò)20年,現在FPGA在復雜邏輯電路以及數字信號處理領(lǐng)域中扮演著(zhù)越來(lái)越重要的角色,SoC以其低功耗、高性能、低成本、高可靠性等優(yōu)點(diǎn)成為嵌入式系統的發(fā)展趨勢。不過(guò),對于很多設計者來(lái)講這還是“新鮮事物”。學(xué)習并掌握一項新的技術(shù)或具備某種能力,比如學(xué)習FPGA開(kāi)發(fā)技術(shù)并將其應用到實(shí)際系統中,這是一項艱巨任務(wù)。Altium Designer 提供了一種簡(jiǎn)單輕松的方法,可以幫助軟/硬件工程師共同應對FPGA嵌入式系統開(kāi)發(fā)的挑戰。Altium designer擁有強大的嵌入式系統設計功能以及非常便捷的設計流程,它在FPGA 及嵌入式智能方面有如下優(yōu)勢:
1) 完整功能、統一的設計環(huán)境
a) 簡(jiǎn)單易用的FPGA設計工具鏈(包括原理圖和HDL語(yǔ)言混合編輯器、編譯器、綜合器和下載)
b) 完整的嵌入式軟件開(kāi)發(fā)環(huán)境(包括編輯器、編譯器、生成器、連接器和調試器)
c) 創(chuàng )新性系統驗證平臺——NB2 (搭載了豐富的外圍接口板和可相互替換的FPGA子板)
2) 數字組合邏輯電路開(kāi)發(fā)功能
a) 放置和連接預先綜合的器件
b) 電路原理圖和 HDL語(yǔ)言混合輸入方法
c) 豐富的虛擬儀器模塊
d) 高度抽象化的系統設計——OpenBus
e) 靈活的C語(yǔ)言到HDL語(yǔ)言轉換——CtoH
3) 嵌入式軟件設計功能
a) 專(zhuān)業(yè)的編碼環(huán)境
b) 獨立于處理器的 Viper C-編譯器
c) 目標代碼自由的移植——DSF
d) 完整的源代碼級調試
4) 創(chuàng )新性系統驗證平臺NB2(實(shí)施并調試你的方案)
a) 獨立于FPGA廠(chǎng)商的子板
b) 靈活的外圍設備板
c) 實(shí)時(shí)調試和更新
d) 對產(chǎn)品板的持續研發(fā)
5) 設計實(shí)施模式間緊密結合
a) 設計移動(dòng)到目標硬件
b) PCB和FPGA間設計協(xié)同
接下來(lái),我們將在Altium Designer平臺下,利用一個(gè)視頻捕獲輸出的實(shí)例去親身體驗如何輕松、便捷地實(shí)現FPGA嵌入式系統設計。在這個(gè)例子中,我們將使用Altium Designer內的幾個(gè)專(zhuān)門(mén)針對提高設計效率,簡(jiǎn)便設計過(guò)程而開(kāi)發(fā)的特定功能。它們包括:OpenBus系統開(kāi)發(fā);FPGA項目的自動(dòng)配置;處理器軟件架構——DSF。
另外,本例中還將結合NB2的板級硬件資源,加快方案驗證和實(shí)施的過(guò)程;
* 復合視頻碼流輸入模塊(Composite video capture)
* 觸摸TFT顯示屏模塊(Touchscreen TFT display)
圖1是系統架構示意圖,該系統可應用于基于視頻捕獲和信號處理等設計領(lǐng)域。
圖1 系統方案示意圖。
傳統的系統設計流程
傳統上,應對包含FPGA器件設計和嵌入式軟件設計的系統開(kāi)發(fā)流程需要經(jīng)歷三個(gè)階段(圖2)。
圖2 傳統的系統設計流程
1、 FPGA設計;
2、 PCB設計;
3、 嵌入式軟件設計
每個(gè)階段相互銜接,逐次實(shí)現;由于需要在設計初期完成元器件選型(包括FPGA器件和微處理器),因而必將降低整體方案實(shí)現的靈活性;對于設計后期可能在器件性能及功能擴展等方面出現的問(wèn)題,需要耗費設計者更多的精力才可能彌補,或者只能將現有方案推倒重來(lái)。
圖3、 創(chuàng )新的系統設計流程。
創(chuàng )新性的系統設計流程
運用Altium Designer平臺實(shí)現FPGA的嵌入式系統設計,首先要為系統方案創(chuàng )建一個(gè)FPGA工程,并在工程內添加源設計文檔。
在數字組合邏輯電路設計輸入方面,一個(gè)FPGA項目支持三種類(lèi)型的輸入方法-原理圖、HDL (Verilog 或VHDL)以及OpenBus。另外還支持C代碼符號的輸入。你可以使用這些輸入方法的混合輸入,并使用層次原理圖所用到的符號方塊圖來(lái)對不同的輸入文檔進(jìn)行組合。對于FPGA項目,必須將原理圖做為頂層文檔,因為這是為了支持從FPGA到PCB移植以及同步。首先,創(chuàng )建一個(gè)原理圖文檔并添加到項目中去。如圖4所示。
圖4 FPGA項目以及新生成的文檔的項目面板
接下來(lái),我們一同體驗OpenBus系統設計簡(jiǎn)易、快捷的特性。OpenBus是一個(gè)進(jìn)行系統級FPGA設計的新方法。它提供了比原理圖更為簡(jiǎn)單的界面,但是并不會(huì )因其簡(jiǎn)單而丟失相應的信息。由于它能自動(dòng)考慮底層細節,因而設計者只需著(zhù)眼于頂層系統的設計以及主要元件的互連。而這些元件都是預先綜合過(guò)的、應用于FPGA開(kāi)發(fā)的IP元件。
圖5 OpenBus面板
在A(yíng)ltium Designer平臺中OpenBus文件編輯環(huán)境下(如圖5所示),你將開(kāi)始親身體驗如何輕松、便捷地實(shí)現FPGA的嵌入式系統設計。如圖6所示,整體方案的實(shí)現與我們對方案規劃設計時(shí),描述的系統結構框架非常相似。依據實(shí)現方案所需用到的功能單元,諸如:32位微處理器、視頻輸入控制模塊、TFT顯示屏控制模塊、I2C控制模塊(用于操作視頻流數據輸入處理器件的控制寄存器單元)、IP內核互連模塊、SRAM控制模塊和總線(xiàn)仲裁模塊,從OpenBus器件列表欄中逐一放置到當前編輯文檔內,并完成連接。
圖6 完成的OpenBus設計
隨后,還需要為包括SRAM控制器、總線(xiàn)仲裁器、IP內核互連器和微處理器等OpenBus元件配置應用參數。Altium Designer支持獨立于FPGA器件原廠(chǎng)商的設計。也就是說(shuō),你可以重新綁定你的設計到另外一個(gè)廠(chǎng)商的另外一塊FPGA芯片。這種移植過(guò)程可以通過(guò)Altium Designer的配置管理器(configuration management)輕易實(shí)現。如圖7所示,不同的配置文件以及約束文件可以重新綁定設計到不同的FPGA芯片。
圖7 添加約束文件到配置管理器
至此,你已經(jīng)為你的嵌入式系統設計方案搭建好了完整的應用平臺。最后,你還需要為系統添加嵌入式智能控制軟件,最終完成FPGA的嵌入式系統設計。Altium Designer平臺下的嵌入式軟件開(kāi)發(fā)功能將幫你輕松應對軟件設計中所遇到的任何挑戰;一個(gè)嵌入式項目可以獨立地進(jìn)行開(kāi)發(fā),但是最終需要這些代碼在目標處理器中運行。Altium Designer給你簡(jiǎn)便的方法,將你的嵌入式項目連接到包含有嵌入式處理器核的FPGA項目中去。
本實(shí)例中的處理器核即為OpenBus文檔中用的32位處理器核TSK3000A_1。左鍵點(diǎn)擊并拖動(dòng)嵌入式項目到上面的FPGA項目。并將嵌入式項目丟在TSK3000A_1 處理器核上(FPGA項目中的處理器核會(huì )自動(dòng)高亮)。如圖8所示。在你連接好這兩個(gè)項目之后,一個(gè)新的C頭文件會(huì )自動(dòng)添加到嵌入式項目中去。這個(gè)頭文件 hardware.h由FPGA項目編譯的時(shí)候自動(dòng)產(chǎn)生。當完成了嵌入式軟件代碼的開(kāi)發(fā)后,你就可以在NB2平臺下,實(shí)時(shí)現場(chǎng)調試和驗證你的設計方案。正如本篇開(kāi)始的系統構造示意圖所示,你可以將攝像頭所捕獲的視頻信號呈現在TFT顯示屏上。
圖8 鏈接嵌入式項目到處理器核
如果你還想增強系統處理視頻碼流的性能,使得視頻圖片可以在TFT顯示屏上快速縮放以及旋轉,那么需要用到Altium Designer的C-to-hardware轉換功能CHC。另外在上述的OpenBus文件里需要使用特殊應用處理器 ASP元件。由于使用了C-to-hardware功能,你可以決定哪些C代碼函數需要用數字組合邏輯功能實(shí)現,哪些用微處理器實(shí)現。由于采用了硬件來(lái)實(shí)現矢量圖形的縮放功能,因而相對于軟件實(shí)現將更加快速。這方面可以在本實(shí)例中進(jìn)行試驗驗證。
在FPGA設計完成之后,Altium Designer還提供一個(gè)快捷的方法,可將FPGA項目直接轉換到相應的PCB項目,并進(jìn)行項目之間數據的同步更新??傊?,Altium Designer在FPGA以及SOPC方面提供了強大且便捷好用的功能,包括統一、完整的設計環(huán)境;多種設計輸入方式;獨立于處理器的靈活代碼;C-to-hardware;可重構的驗證平臺;獨立于FPGA原廠(chǎng)商的設計;設計仿真;虛擬儀器及LiveDesign交互式調試,以及方便快捷的FPGA項目到PCB項目數據同步功能。這些強大的軟件功能連同可重構的系統驗證平臺NB2一起為你提供了一個(gè)功能強大的創(chuàng )新平臺,在這個(gè)創(chuàng )新平臺上,設計者可以盡情放飛設計靈感,來(lái)創(chuàng )造更有價(jià)值的設計。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論