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