基于SCA規(guī)范下FPGA的硬件抽象層設(shè)計(jì)
在FPGA上運(yùn)行的波形組件,在設(shè)計(jì)時(shí)只需要按照HAL-C所定義好的格式設(shè)計(jì)好波形組件與HAL-C的交互即可。數(shù)據(jù)與其他模塊間交互的具體過程可交給HAL-C去完成,即將與具體接口相關(guān)的工作交由HAL-C去完成。也就是說,在進(jìn)行軟件設(shè)計(jì)時(shí)不需要關(guān)心底層硬件模塊能為軟件設(shè)計(jì)提供怎樣的具體端口形式,而只要硬件抽象層模塊能夠滿足軟件模塊設(shè)計(jì)所需的數(shù)據(jù)傳輸速率就行。
本文引用地址:http://m.butianyuan.cn/article/191737.htm3 在硬件平臺(tái)上實(shí)現(xiàn)HAL-C應(yīng)用
為實(shí)現(xiàn)SCA規(guī)范下的數(shù)字信號(hào)處理功能,可以設(shè)計(jì)一個(gè)通用硬件平臺(tái),其結(jié)構(gòu)如圖5所示。該方案以FPGA、DSP為信號(hào)處理平臺(tái)的算法核心,以CPLD為結(jié)構(gòu)的控制核心,從而構(gòu)造一個(gè)具有通用性、可擴(kuò)充、易升級(jí)的多功能信號(hào)處理平臺(tái)。
本設(shè)計(jì)中的FPGA采用Xilinx公司Virtex 5系列的2200萬門器件XC5VLX220-1FF1760I以及500萬門器件XC5VSX95T-lFF1136I。DSP選用TI公司的TMS320C6416T,該DSP具有的豐富的集成外設(shè),可適應(yīng)各種不同的應(yīng)用需求。通用FLASH采用Spansion公司的S29GL512N10TAI高密度NOR型FLASH。S9GL512N的容量高達(dá)512Mbit,可以存儲(chǔ)多個(gè)版本的DSP和FPGA程序。NOR型FLASH的讀操作時(shí)序和EEPROM相同,讀/寫操作最短周期為100ns,可以直接用于DSP的BOOT引導(dǎo)。TMS320C6416T與CPLD配合,可以控制FPGA配置文件的下載過程。FPGA芯片通過高速并行接口可與AD和DA直接相連,以進(jìn)行高速的數(shù)字處理。DSP芯片可通過EMIFA(外部存儲(chǔ)器接口)接口與FPGA進(jìn)行通信。
在實(shí)際應(yīng)用中,平臺(tái)需以多模式的方式工作,并應(yīng)根據(jù)需要實(shí)時(shí)更新功能程序。因此,用戶可在FLASH芯片中劃分區(qū)域,以將多種功能程序分別存儲(chǔ)在不同區(qū)域,并確定區(qū)域首地址。系統(tǒng)上電復(fù)位后,DSP和FLASH芯片先完成初始化,之后DSP會(huì)按照默認(rèn)方式訪問默認(rèn)首地址并加載默認(rèn)DSP和FPGA功能程序,以便系統(tǒng)工作在默認(rèn)模式下;當(dāng)需要更新模式時(shí),主控設(shè)備先發(fā)送指令,DSP檢測(cè)到指令后,DSP便按照指令要求查到對(duì)應(yīng)首地址,并從新功能的首地址開始為DSP和FPGA加載新的功能程序,系統(tǒng)即工作在新模式下。如此便可在同一個(gè)硬件平臺(tái)上,通過動(dòng)態(tài)調(diào)用不同的軟件程序來實(shí)現(xiàn)多功能、多模式的工作。
利用此硬件平臺(tái)還可實(shí)現(xiàn)MSK數(shù)字調(diào)制解調(diào)功能。FPGA的硬件抽象層的實(shí)現(xiàn)可將FPGA與外部接口在FPGA內(nèi),用一個(gè)專用的小模塊來實(shí)現(xiàn)對(duì)外交互,并在這個(gè)特定模塊里定義好HC與外部交互的接口形式(如數(shù)據(jù)總線,相關(guān)的時(shí)鐘信號(hào)、控制信號(hào)等)。然后根據(jù)功能需要在FPGA內(nèi)為AD、DA、DSP、CPLD以及互連的FPGA抽象出獨(dú)立的標(biāo)準(zhǔn)通信接口模塊ADHAL、DAHAL、DSPHAL、CPLDHAL和FPGAHAL,另外,還需要設(shè)計(jì)MSK調(diào)制和解調(diào)的HC模塊,其中調(diào)制部分包括DDS和數(shù)字正交上變頻兩個(gè)子模塊。數(shù)字正交上變頻可采用AD9779來實(shí)現(xiàn)。解調(diào)部分主要包括數(shù)字正交下變頻、基帶解調(diào)、中值濾波和位同步四個(gè)子模塊。這些HC模塊均為獨(dú)立的文件,而且各個(gè)模塊的參數(shù)均可配置。這樣便可利用上述編制好的文件來實(shí)現(xiàn)MSK調(diào)制解調(diào)功能。事實(shí)上,只需要在一個(gè)工程中把用到的文件包含進(jìn)來,并在頂層文件中實(shí)例化各個(gè)模塊,同時(shí)根據(jù)實(shí)際硬件連接約束FPGA的引腳,最后通過綜合實(shí)現(xiàn)并生成FPGA配置文件,再用DSP和CPLD來完成配置,即可實(shí)現(xiàn)如圖6所示的FPGA內(nèi)部抽象層。也可以通過主機(jī)動(dòng)態(tài)配置各個(gè)模塊的參數(shù)以及連接關(guān)系,以實(shí)現(xiàn)不同頻段的調(diào)制和解調(diào)。如果要完成其它方式的數(shù)字調(diào)制解調(diào),只需要把MSK調(diào)制和解調(diào)的HC模塊替換為其他數(shù)字調(diào)制解調(diào)算法,并通過主機(jī)發(fā)送指令重新對(duì)FPGA進(jìn)行配置即可。這樣就可提高軟件模塊的可移植性、可重用和可互操作性。
4結(jié)束語
通過HAL-C提供的平臺(tái),不但可使波形應(yīng)用開發(fā)者從底層硬件的細(xì)節(jié)處理中脫離出來,專注實(shí)現(xiàn)組件的算法功能,而且,基于FPGA硬件抽象層連接設(shè)計(jì)的軟件,還具有很好的可移植性,因而能有效縮短系統(tǒng)開發(fā)周期,提高系統(tǒng)開發(fā)效率。
評(píng)論