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