楊龍+李范鳴+劉士建
摘 要: 現(xiàn)代電子技術(shù)的快速發(fā)展使得大量的數(shù)據(jù)需要處理與傳輸,為解決該問(wèn)題,通過(guò)TMS320C6455的EMIF接口實(shí)現(xiàn)了DSP與FPGA之間的數(shù)據(jù)雙向快速通信。FPGA通過(guò)EMIF接口將內(nèi)部RAM中的數(shù)據(jù)傳輸給DSP進(jìn)行處理,DSP將處理后的數(shù)據(jù)結(jié)果再通過(guò)EMIF接口傳送到FPGA的片內(nèi)接收模塊雙口RAM并進(jìn)行存儲(chǔ)。EMIF通道實(shí)現(xiàn)了對(duì)數(shù)據(jù)的傳輸,雙口RAM完成了對(duì)數(shù)據(jù)的接收。實(shí)驗(yàn)結(jié)果表明,該設(shè)計(jì)方案能夠?qū)崿F(xiàn)數(shù)據(jù)的雙向快速正確傳輸。
關(guān)鍵詞: DSP; EMIF; FPGA; 雙口RAM
中圖分類號(hào): TN925?34; TP39 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)13?0010?03
Realization of high?speed communication between DSP and FPGA
by EMIF dual?port RAM
YANG Long, LI Fan?ming, LIU Shi?jian
(Shanghai Institute of Technical Physics, Chinese Academy of Sciences, Shanghai 200083, China)
Abstract: The rapid development of modern electronic technology requires the processing and transmission of plenty of data. In order to solve this problem, TMS320C6455 EMIF interface was adopted to realized the rapid data intercommunication between DSP and FPGA. FPGA transfers data in the internal RAM to DSP for processing through EMIF interface. DSP transmits the processed data through EMIF interface to dual?port RAM in FPGA to store. EMIF interface is used to achieve the data transmission, and dual?port RAM is used to realized the data reception. The experimental results show that the design scheme can realize data intercommunication quickly and correctly.
Keywords: DSP; EMIF; FPGA; dual?port RAM
0 引 言
隨著電子技術(shù)的飛速發(fā)展,電子系統(tǒng)的信息量和數(shù)據(jù)量也隨之巨增,這就對(duì)系統(tǒng)的信息處理與傳輸能力有更高的要求。在信號(hào)處理系統(tǒng)方面,隨著大規(guī)模可編程器件的發(fā)展,并廣泛應(yīng)用于各種信號(hào)處理中,現(xiàn)階段信號(hào)處理采用DSP+FPGA 結(jié)構(gòu)的信號(hào)處理系統(tǒng)顯示出了其優(yōu)越性,正逐步得到重視并廣泛應(yīng)用。FPGA 是在專用ASIC 的基礎(chǔ)上發(fā)展出來(lái)的,它克服了專用ASIC 不夠靈活的缺點(diǎn),與其他中小規(guī)模集成電路相比,其優(yōu)點(diǎn)主要在于它有很強(qiáng)的靈活性,即其內(nèi)部的具體邏輯功能可以根據(jù)需要配置,對(duì)電路的修改和維護(hù)很方便,而且在大批量應(yīng)用時(shí),可降低成本。
DSP+FPGA 結(jié)構(gòu)最大的特點(diǎn)是結(jié)構(gòu)靈活,有較強(qiáng)的通用性,適于模塊化設(shè)計(jì),從而能夠提高算法效率;同時(shí)其開(kāi)發(fā)周較短,系統(tǒng)易于維護(hù)和擴(kuò)展,適合于實(shí)時(shí)信號(hào)處理。而要想實(shí)現(xiàn)DSP+FPGA 結(jié)構(gòu)的正確應(yīng)用,先要實(shí)現(xiàn)DSP和FPGA之間的通信橋梁,也就是首先要解決兩者之間的通信問(wèn)題,即接口設(shè)計(jì),本文提出一種DSP和FPGA之間的通信方式。
1 FPGA內(nèi)部雙口RAM配置
本設(shè)計(jì)采用Xilinx公司的Virtex5系列的FPGA器件,在該器件內(nèi)部集成有塊存儲(chǔ)器資源,該存儲(chǔ)器資源可配置成單口RAM 、簡(jiǎn)單雙端口RAM 、真正雙端口RAM、速度性能可以達(dá)到450 MHz,數(shù)據(jù)位寬也可以根據(jù)不同的應(yīng)用場(chǎng)合配置為8位、16位、32位、64位。
由于要實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,所以該設(shè)計(jì)將FPGA內(nèi)部的塊存儲(chǔ)器配置為真正的雙端口RAM。真正的雙端口RAM 有兩個(gè)完全獨(dú)立的端口(端口A和端口B)用于訪問(wèn)共享的存儲(chǔ)空間。雙口RAM的每個(gè)端口有各自的數(shù)據(jù)線、地址線、讀寫控制線,可以允許不同的系統(tǒng)同時(shí)對(duì)其共享的存儲(chǔ)空間進(jìn)行訪問(wèn),本文就實(shí)現(xiàn)了用DSP和FPGA對(duì)FPGA內(nèi)部的雙口RAM共享的存儲(chǔ)空間進(jìn)行訪問(wèn)。
Xilinx公司的IP核生成工具CORE Generator可以使用FPGA內(nèi)部的塊存儲(chǔ)器,并按所需要的存儲(chǔ)器類型配置為所需要的真正雙端口RAM,數(shù)據(jù)位寬為32位,存儲(chǔ)深度根據(jù)需要配置。配置雙口RAM的過(guò)程和配置好的雙端口RAM 原理圖符號(hào)如圖1所示。
圖1 雙口RAM的配置圖及原理圖
2 DSP EMIF接口介紹
EMIF是外部存儲(chǔ)器和TMS320C6455片內(nèi)單元間之間的接口,CPU訪問(wèn)片外存儲(chǔ)器時(shí)必須通過(guò)EMIF接口,要實(shí)現(xiàn)DSP訪問(wèn)FPGA內(nèi)部雙口RAM,必須通過(guò)EMIF接口與FPGA內(nèi)部RAM相對(duì)應(yīng)的管腳對(duì)應(yīng)起來(lái),EMIF接口與FPGA內(nèi)部雙口RAM連接如圖2所示。
圖2 EMIF與雙口RAM之間的連接
由上面的配置可以知道FPGA內(nèi)部雙口RAM有兩個(gè)端口(端口A和端口B)共享一個(gè)存儲(chǔ)空間,為了實(shí)現(xiàn)FPGA與DSP的正確通信,首先要實(shí)現(xiàn)兩者之間的物理連接,將雙口RAM的端口A用于DSP通過(guò)EMIF接口來(lái)訪問(wèn)FPGA內(nèi)部RAM,端口B用于FPGA自己訪問(wèn)該RAM的端口。也就是DSP通過(guò)端口A來(lái)訪問(wèn)共享的存儲(chǔ)空間, FPGA在內(nèi)部通過(guò)端口B來(lái)訪問(wèn)同樣的存儲(chǔ)空間,其中,EMIF的數(shù)據(jù)線要通過(guò)一個(gè)選擇器分別連接到雙口RAM的數(shù)據(jù)輸入端口和數(shù)據(jù)輸出端口,由SOE信號(hào)對(duì)數(shù)據(jù)的傳輸方向進(jìn)行控制,EMIF接口的地址線也要和雙口RAM的端口A的地址線連接,EMIF接口的時(shí)鐘輸出信號(hào)ECLKOUT1與雙口RAM的時(shí)鐘信號(hào)引腳連接,SADS、SWE、CE、BE信號(hào)經(jīng)FPGA內(nèi)部的組合邏輯電路與雙口RAM相應(yīng)信號(hào)相連,以實(shí)現(xiàn)對(duì)FPGA內(nèi)部雙口RAM的讀寫功能。
3 數(shù)據(jù)高速傳輸?shù)膶?shí)現(xiàn)機(jī)制
為了達(dá)到數(shù)據(jù)在DSP和FPGA之間高速傳輸?shù)哪康?,采取了下面的通信機(jī)制,首先在上文中配置的FPGA內(nèi)部雙口RAM中,將雙口RAM中的存儲(chǔ)空間分成兩個(gè)部分,首先說(shuō)一下兩塊存儲(chǔ)區(qū)的用途,第一塊存儲(chǔ)區(qū)用于FPGA向里面寫數(shù)據(jù),DSP從里面讀出數(shù)據(jù),第二塊存儲(chǔ)區(qū)用于DSP向里面寫入數(shù)據(jù),F(xiàn)PAG從里面讀出數(shù)據(jù)。根據(jù)這兩種傳輸方式所要傳的數(shù)據(jù)量要固定這兩塊存儲(chǔ)區(qū)的大小和地址,DSP和FPGA每次訪問(wèn)固定的地址和長(zhǎng)度的存儲(chǔ)區(qū)。
圖3展示了數(shù)據(jù)由FPGA寫入雙口RAM內(nèi)部存儲(chǔ)區(qū)一,經(jīng)EMIF接口傳輸?shù)紻SP內(nèi)部進(jìn)行處理,DSP將處理的結(jié)果經(jīng)EMIF接口寫入到雙口RAM內(nèi)部的存儲(chǔ)區(qū)二,F(xiàn)PGA從存儲(chǔ)區(qū)二讀出處理結(jié)果的流程框圖。
圖3 數(shù)據(jù)流向框圖
上面介紹了數(shù)據(jù)傳輸?shù)牧飨?,下面說(shuō)明如何實(shí)現(xiàn)DSP和FPGA在對(duì)共享存儲(chǔ)器進(jìn)行操作時(shí)的配合。首先FPGA接收外來(lái)的圖像數(shù)據(jù),存儲(chǔ)于FPGA內(nèi)部的雙口RAM的存儲(chǔ)區(qū)一內(nèi),當(dāng)存儲(chǔ)區(qū)一中的內(nèi)容存滿時(shí),F(xiàn)GPA停止向存儲(chǔ)區(qū)一寫入數(shù)據(jù),F(xiàn)PGA內(nèi)部邏輯電路產(chǎn)生信號(hào),向DSP模塊申請(qǐng)中斷,DSP響應(yīng)中斷請(qǐng)求,通過(guò)EMIF接口從存儲(chǔ)區(qū)一中讀出存入的圖像數(shù)據(jù)并處理,圖像數(shù)據(jù)處理完后,DSP將處理完后的結(jié)果數(shù)據(jù)存入存儲(chǔ)區(qū)二中,結(jié)果數(shù)據(jù)存入完成后DSP通過(guò)中斷模塊產(chǎn)生信號(hào),通知FPGA讀出結(jié)果數(shù)據(jù)并輸出。
通過(guò)上面的過(guò)程數(shù)據(jù)在DSP和FPGA中不僅能快速的傳輸,也能在DSP中實(shí)現(xiàn)數(shù)據(jù)的快速處理。這種方式能有效的結(jié)合DSP和FPGA兩者的優(yōu)勢(shì),以達(dá)到最好的信號(hào)傳輸與處理的效果,在單位時(shí)間內(nèi)能處理的數(shù)據(jù)量更大以及數(shù)據(jù)的快速傳輸。
4 FPGA與DSP之間通信實(shí)現(xiàn)與應(yīng)用
該設(shè)計(jì)適合應(yīng)用在圖像傳輸與處理要求實(shí)時(shí)性較高的場(chǎng)合,比起以往的實(shí)時(shí)算法都需要多塊DSP串行或并行工作,以提高系統(tǒng)的運(yùn)行速度和實(shí)時(shí)性,而采用DSP+FPGA的雙口RAM構(gòu)成的數(shù)據(jù)接口可以實(shí)現(xiàn)在DSP和FPAG之間高速而又可靠的信息數(shù)據(jù)傳輸,在許多信號(hào)采集處理領(lǐng)域,F(xiàn)PGA技術(shù)已代替DSP實(shí)現(xiàn)許多前端的數(shù)字信號(hào)的采集與處理,用FPGA來(lái)實(shí)現(xiàn)數(shù)字信號(hào)處理很好的解決了DSP之間的并行問(wèn)題,也滿足速度要求,并且FPGA有著靈活可配置的特性,使得FPGA構(gòu)成的數(shù)字信號(hào)處理系統(tǒng)易于修改,測(cè)試,便于升級(jí),降低設(shè)計(jì)成本,開(kāi)發(fā)周期短。
設(shè)計(jì)一塊信號(hào)處理板,該信號(hào)處理板從前端數(shù)據(jù)采集板采集到圖像數(shù)據(jù),圖像每幀大小為640×512,100 f/s,所以該信號(hào)處理板要處理和傳輸?shù)臄?shù)據(jù)量很大,采用FPGA+DSP方案,有效的解決了該問(wèn)題。信號(hào)處理板接收到圖像數(shù)據(jù)后對(duì)圖像數(shù)據(jù)進(jìn)行處理,并將處理完的結(jié)果傳與主控板。該系統(tǒng)的結(jié)構(gòu)框圖如圖4所示。信號(hào)處理板上的FPGA負(fù)責(zé)接收從前端傳來(lái)的圖像數(shù)據(jù),F(xiàn)PGA將接收到的圖像數(shù)據(jù)存儲(chǔ)在FPGA內(nèi)部的雙口RAM中,同時(shí)FPGA也負(fù)責(zé)從RAM中讀出DSP圖像處理的結(jié)果;DSP主要負(fù)責(zé)圖像數(shù)據(jù)的處理,處理前DSP通過(guò)EMIF接口從雙口RAM中讀出圖像數(shù)據(jù)并處理,將處理后的結(jié)果通過(guò)EMIF接口存儲(chǔ)在FPGA內(nèi)部的RAM中。
圖4 系統(tǒng)結(jié)構(gòu)框圖
為驗(yàn)證兩者之間通信的正確性,用Xilinx公司的ISE軟件的仿真功能獲取FPGA端的數(shù)據(jù),DSP端的數(shù)據(jù)通過(guò)DSP的開(kāi)發(fā)壞境CCS的功能顯示出來(lái)。FPGA寫入雙口RAM中的數(shù)據(jù)的仿真圖如圖5所示,寫入的數(shù)據(jù)為0~63,從仿真的結(jié)果看,寫入的數(shù)據(jù)沒(méi)有錯(cuò)誤,DSP從雙口RAM中讀出的數(shù)據(jù)如圖6所示,從讀出的數(shù)據(jù)可以看出,F(xiàn)PGA寫入的數(shù)據(jù)和DSP讀出的數(shù)據(jù)一致,DSP寫入與讀出數(shù)據(jù)圖如圖7所示,其中的地址空間為0xc0000000~0xc000007f中的數(shù)據(jù)為DSP寫入的數(shù)據(jù),而地址空間為0xc0000080~0xc00000ff中的數(shù)據(jù)為經(jīng)FPGA從地址空間為0xc0000000~0xc000007f中讀出數(shù)據(jù)后又寫入到地址空間為0xc0000080~0xc00000ff中,便于觀察,從圖7中可以看出,DSP寫入的數(shù)據(jù)和FPGA讀出的數(shù)據(jù)也相等。
圖5 FPGA寫入雙口RAM中的數(shù)據(jù)仿真圖
圖6 DSP通過(guò)EMIF口從雙口RAM中讀出數(shù)據(jù)圖
圖7 DSP寫入與讀出數(shù)據(jù)圖
從圖5~圖7中可以看出兩者之間的通信通道已經(jīng)建立,可以進(jìn)行正常的通信。實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)完成了TMS320C6455 DSP EMIF接口與FPGA內(nèi)部雙口RAM的通信,對(duì)于DSP發(fā)送的信號(hào),F(xiàn)PGA可以正確接收,F(xiàn)PGA發(fā)表的信號(hào),DSP也能正確的接收,經(jīng)過(guò)測(cè)試,讀寫數(shù)據(jù)沒(méi)有錯(cuò)誤,并能穩(wěn)定的在二者之間進(jìn)行通信。經(jīng)測(cè)式,二者之間的通信速率能滿足系統(tǒng)所需要求。
5 結(jié) 語(yǔ)
本設(shè)計(jì)采用FPGA+DSP方案,并充分利用器件內(nèi)部的硬件資源,在開(kāi)發(fā)環(huán)境ISE下,在FPGA內(nèi)部實(shí)現(xiàn)了雙口RAM,并實(shí)現(xiàn)了FPGA和DSP 對(duì)該雙口RAM的讀寫。建立了DSP和FPGA通信的橋梁,解決并實(shí)現(xiàn)了DSP和FPGA之間的雙向通信。采用FPGA和DSP相結(jié)合的方式,既降低了系統(tǒng)的復(fù)雜性,又增加了系統(tǒng)的靈活性和配置性,有利于開(kāi)發(fā),在實(shí)現(xiàn)大量數(shù)據(jù)處理的同時(shí),也實(shí)現(xiàn)了數(shù)據(jù)的快速傳輸。
參考文獻(xiàn)
[1] 于鳳芹.TMS320C6000DSP結(jié)構(gòu)原理與硬件設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2008.
[2] 胡宏平,胡兵.基于FPGA的雙口RAM在信號(hào)采集中的應(yīng)用[J].微計(jì)算機(jī)信息,2007(23):223?225.
[3] LEE B W, CHO S H. A design of the signal processing hardware platform f or communication systems [J]. IEICE Transactions on Communications, 2008, E91?B(3): 939?942.
[4] Texas Instruments. TMS320C6000 programmer′s guide [M].USA: Texas Instruments, 2006.
[5] Xilinx. Virtex?5 FPGA user guide [M]. USA: Xilinx, 2012.
[6] Xilinx. Interfacing Xilinx FPGAs to TI DSP platforms using the EMIF [M]. USA: Xilinx, 2007.
[7] 王光國(guó).基于DSP+FPGA 機(jī)器人敏感皮膚實(shí)時(shí)信號(hào)處理的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2006
[8] Texas Instruments. TMS320C6000 EMIF to external FIFO interface, SPRA543 [R]. USA: Texas Instruments, 1999.
[9] 羅戈亮,魯新平,李吉成.基于FPGA+DSP 的實(shí)時(shí)圖像處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微處理機(jī),2010(2):106?110.
[10] 楊露,蘇秀琴,向靜波.基于DSP和FPGA的視頻圖像處理系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008(21):288?289.
3 數(shù)據(jù)高速傳輸?shù)膶?shí)現(xiàn)機(jī)制
為了達(dá)到數(shù)據(jù)在DSP和FPGA之間高速傳輸?shù)哪康?,采取了下面的通信機(jī)制,首先在上文中配置的FPGA內(nèi)部雙口RAM中,將雙口RAM中的存儲(chǔ)空間分成兩個(gè)部分,首先說(shuō)一下兩塊存儲(chǔ)區(qū)的用途,第一塊存儲(chǔ)區(qū)用于FPGA向里面寫數(shù)據(jù),DSP從里面讀出數(shù)據(jù),第二塊存儲(chǔ)區(qū)用于DSP向里面寫入數(shù)據(jù),F(xiàn)PAG從里面讀出數(shù)據(jù)。根據(jù)這兩種傳輸方式所要傳的數(shù)據(jù)量要固定這兩塊存儲(chǔ)區(qū)的大小和地址,DSP和FPGA每次訪問(wèn)固定的地址和長(zhǎng)度的存儲(chǔ)區(qū)。
圖3展示了數(shù)據(jù)由FPGA寫入雙口RAM內(nèi)部存儲(chǔ)區(qū)一,經(jīng)EMIF接口傳輸?shù)紻SP內(nèi)部進(jìn)行處理,DSP將處理的結(jié)果經(jīng)EMIF接口寫入到雙口RAM內(nèi)部的存儲(chǔ)區(qū)二,F(xiàn)PGA從存儲(chǔ)區(qū)二讀出處理結(jié)果的流程框圖。
圖3 數(shù)據(jù)流向框圖
上面介紹了數(shù)據(jù)傳輸?shù)牧飨?,下面說(shuō)明如何實(shí)現(xiàn)DSP和FPGA在對(duì)共享存儲(chǔ)器進(jìn)行操作時(shí)的配合。首先FPGA接收外來(lái)的圖像數(shù)據(jù),存儲(chǔ)于FPGA內(nèi)部的雙口RAM的存儲(chǔ)區(qū)一內(nèi),當(dāng)存儲(chǔ)區(qū)一中的內(nèi)容存滿時(shí),F(xiàn)GPA停止向存儲(chǔ)區(qū)一寫入數(shù)據(jù),F(xiàn)PGA內(nèi)部邏輯電路產(chǎn)生信號(hào),向DSP模塊申請(qǐng)中斷,DSP響應(yīng)中斷請(qǐng)求,通過(guò)EMIF接口從存儲(chǔ)區(qū)一中讀出存入的圖像數(shù)據(jù)并處理,圖像數(shù)據(jù)處理完后,DSP將處理完后的結(jié)果數(shù)據(jù)存入存儲(chǔ)區(qū)二中,結(jié)果數(shù)據(jù)存入完成后DSP通過(guò)中斷模塊產(chǎn)生信號(hào),通知FPGA讀出結(jié)果數(shù)據(jù)并輸出。
通過(guò)上面的過(guò)程數(shù)據(jù)在DSP和FPGA中不僅能快速的傳輸,也能在DSP中實(shí)現(xiàn)數(shù)據(jù)的快速處理。這種方式能有效的結(jié)合DSP和FPGA兩者的優(yōu)勢(shì),以達(dá)到最好的信號(hào)傳輸與處理的效果,在單位時(shí)間內(nèi)能處理的數(shù)據(jù)量更大以及數(shù)據(jù)的快速傳輸。
4 FPGA與DSP之間通信實(shí)現(xiàn)與應(yīng)用
該設(shè)計(jì)適合應(yīng)用在圖像傳輸與處理要求實(shí)時(shí)性較高的場(chǎng)合,比起以往的實(shí)時(shí)算法都需要多塊DSP串行或并行工作,以提高系統(tǒng)的運(yùn)行速度和實(shí)時(shí)性,而采用DSP+FPGA的雙口RAM構(gòu)成的數(shù)據(jù)接口可以實(shí)現(xiàn)在DSP和FPAG之間高速而又可靠的信息數(shù)據(jù)傳輸,在許多信號(hào)采集處理領(lǐng)域,F(xiàn)PGA技術(shù)已代替DSP實(shí)現(xiàn)許多前端的數(shù)字信號(hào)的采集與處理,用FPGA來(lái)實(shí)現(xiàn)數(shù)字信號(hào)處理很好的解決了DSP之間的并行問(wèn)題,也滿足速度要求,并且FPGA有著靈活可配置的特性,使得FPGA構(gòu)成的數(shù)字信號(hào)處理系統(tǒng)易于修改,測(cè)試,便于升級(jí),降低設(shè)計(jì)成本,開(kāi)發(fā)周期短。
設(shè)計(jì)一塊信號(hào)處理板,該信號(hào)處理板從前端數(shù)據(jù)采集板采集到圖像數(shù)據(jù),圖像每幀大小為640×512,100 f/s,所以該信號(hào)處理板要處理和傳輸?shù)臄?shù)據(jù)量很大,采用FPGA+DSP方案,有效的解決了該問(wèn)題。信號(hào)處理板接收到圖像數(shù)據(jù)后對(duì)圖像數(shù)據(jù)進(jìn)行處理,并將處理完的結(jié)果傳與主控板。該系統(tǒng)的結(jié)構(gòu)框圖如圖4所示。信號(hào)處理板上的FPGA負(fù)責(zé)接收從前端傳來(lái)的圖像數(shù)據(jù),F(xiàn)PGA將接收到的圖像數(shù)據(jù)存儲(chǔ)在FPGA內(nèi)部的雙口RAM中,同時(shí)FPGA也負(fù)責(zé)從RAM中讀出DSP圖像處理的結(jié)果;DSP主要負(fù)責(zé)圖像數(shù)據(jù)的處理,處理前DSP通過(guò)EMIF接口從雙口RAM中讀出圖像數(shù)據(jù)并處理,將處理后的結(jié)果通過(guò)EMIF接口存儲(chǔ)在FPGA內(nèi)部的RAM中。
圖4 系統(tǒng)結(jié)構(gòu)框圖
為驗(yàn)證兩者之間通信的正確性,用Xilinx公司的ISE軟件的仿真功能獲取FPGA端的數(shù)據(jù),DSP端的數(shù)據(jù)通過(guò)DSP的開(kāi)發(fā)壞境CCS的功能顯示出來(lái)。FPGA寫入雙口RAM中的數(shù)據(jù)的仿真圖如圖5所示,寫入的數(shù)據(jù)為0~63,從仿真的結(jié)果看,寫入的數(shù)據(jù)沒(méi)有錯(cuò)誤,DSP從雙口RAM中讀出的數(shù)據(jù)如圖6所示,從讀出的數(shù)據(jù)可以看出,F(xiàn)PGA寫入的數(shù)據(jù)和DSP讀出的數(shù)據(jù)一致,DSP寫入與讀出數(shù)據(jù)圖如圖7所示,其中的地址空間為0xc0000000~0xc000007f中的數(shù)據(jù)為DSP寫入的數(shù)據(jù),而地址空間為0xc0000080~0xc00000ff中的數(shù)據(jù)為經(jīng)FPGA從地址空間為0xc0000000~0xc000007f中讀出數(shù)據(jù)后又寫入到地址空間為0xc0000080~0xc00000ff中,便于觀察,從圖7中可以看出,DSP寫入的數(shù)據(jù)和FPGA讀出的數(shù)據(jù)也相等。
圖5 FPGA寫入雙口RAM中的數(shù)據(jù)仿真圖
圖6 DSP通過(guò)EMIF口從雙口RAM中讀出數(shù)據(jù)圖
圖7 DSP寫入與讀出數(shù)據(jù)圖
從圖5~圖7中可以看出兩者之間的通信通道已經(jīng)建立,可以進(jìn)行正常的通信。實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)完成了TMS320C6455 DSP EMIF接口與FPGA內(nèi)部雙口RAM的通信,對(duì)于DSP發(fā)送的信號(hào),F(xiàn)PGA可以正確接收,F(xiàn)PGA發(fā)表的信號(hào),DSP也能正確的接收,經(jīng)過(guò)測(cè)試,讀寫數(shù)據(jù)沒(méi)有錯(cuò)誤,并能穩(wěn)定的在二者之間進(jìn)行通信。經(jīng)測(cè)式,二者之間的通信速率能滿足系統(tǒng)所需要求。
5 結(jié) 語(yǔ)
本設(shè)計(jì)采用FPGA+DSP方案,并充分利用器件內(nèi)部的硬件資源,在開(kāi)發(fā)環(huán)境ISE下,在FPGA內(nèi)部實(shí)現(xiàn)了雙口RAM,并實(shí)現(xiàn)了FPGA和DSP 對(duì)該雙口RAM的讀寫。建立了DSP和FPGA通信的橋梁,解決并實(shí)現(xiàn)了DSP和FPGA之間的雙向通信。采用FPGA和DSP相結(jié)合的方式,既降低了系統(tǒng)的復(fù)雜性,又增加了系統(tǒng)的靈活性和配置性,有利于開(kāi)發(fā),在實(shí)現(xiàn)大量數(shù)據(jù)處理的同時(shí),也實(shí)現(xiàn)了數(shù)據(jù)的快速傳輸。
參考文獻(xiàn)
[1] 于鳳芹.TMS320C6000DSP結(jié)構(gòu)原理與硬件設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2008.
[2] 胡宏平,胡兵.基于FPGA的雙口RAM在信號(hào)采集中的應(yīng)用[J].微計(jì)算機(jī)信息,2007(23):223?225.
[3] LEE B W, CHO S H. A design of the signal processing hardware platform f or communication systems [J]. IEICE Transactions on Communications, 2008, E91?B(3): 939?942.
[4] Texas Instruments. TMS320C6000 programmer′s guide [M].USA: Texas Instruments, 2006.
[5] Xilinx. Virtex?5 FPGA user guide [M]. USA: Xilinx, 2012.
[6] Xilinx. Interfacing Xilinx FPGAs to TI DSP platforms using the EMIF [M]. USA: Xilinx, 2007.
[7] 王光國(guó).基于DSP+FPGA 機(jī)器人敏感皮膚實(shí)時(shí)信號(hào)處理的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2006
[8] Texas Instruments. TMS320C6000 EMIF to external FIFO interface, SPRA543 [R]. USA: Texas Instruments, 1999.
[9] 羅戈亮,魯新平,李吉成.基于FPGA+DSP 的實(shí)時(shí)圖像處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微處理機(jī),2010(2):106?110.
[10] 楊露,蘇秀琴,向靜波.基于DSP和FPGA的視頻圖像處理系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008(21):288?289.
3 數(shù)據(jù)高速傳輸?shù)膶?shí)現(xiàn)機(jī)制
為了達(dá)到數(shù)據(jù)在DSP和FPGA之間高速傳輸?shù)哪康?,采取了下面的通信機(jī)制,首先在上文中配置的FPGA內(nèi)部雙口RAM中,將雙口RAM中的存儲(chǔ)空間分成兩個(gè)部分,首先說(shuō)一下兩塊存儲(chǔ)區(qū)的用途,第一塊存儲(chǔ)區(qū)用于FPGA向里面寫數(shù)據(jù),DSP從里面讀出數(shù)據(jù),第二塊存儲(chǔ)區(qū)用于DSP向里面寫入數(shù)據(jù),F(xiàn)PAG從里面讀出數(shù)據(jù)。根據(jù)這兩種傳輸方式所要傳的數(shù)據(jù)量要固定這兩塊存儲(chǔ)區(qū)的大小和地址,DSP和FPGA每次訪問(wèn)固定的地址和長(zhǎng)度的存儲(chǔ)區(qū)。
圖3展示了數(shù)據(jù)由FPGA寫入雙口RAM內(nèi)部存儲(chǔ)區(qū)一,經(jīng)EMIF接口傳輸?shù)紻SP內(nèi)部進(jìn)行處理,DSP將處理的結(jié)果經(jīng)EMIF接口寫入到雙口RAM內(nèi)部的存儲(chǔ)區(qū)二,F(xiàn)PGA從存儲(chǔ)區(qū)二讀出處理結(jié)果的流程框圖。
圖3 數(shù)據(jù)流向框圖
上面介紹了數(shù)據(jù)傳輸?shù)牧飨?,下面說(shuō)明如何實(shí)現(xiàn)DSP和FPGA在對(duì)共享存儲(chǔ)器進(jìn)行操作時(shí)的配合。首先FPGA接收外來(lái)的圖像數(shù)據(jù),存儲(chǔ)于FPGA內(nèi)部的雙口RAM的存儲(chǔ)區(qū)一內(nèi),當(dāng)存儲(chǔ)區(qū)一中的內(nèi)容存滿時(shí),F(xiàn)GPA停止向存儲(chǔ)區(qū)一寫入數(shù)據(jù),F(xiàn)PGA內(nèi)部邏輯電路產(chǎn)生信號(hào),向DSP模塊申請(qǐng)中斷,DSP響應(yīng)中斷請(qǐng)求,通過(guò)EMIF接口從存儲(chǔ)區(qū)一中讀出存入的圖像數(shù)據(jù)并處理,圖像數(shù)據(jù)處理完后,DSP將處理完后的結(jié)果數(shù)據(jù)存入存儲(chǔ)區(qū)二中,結(jié)果數(shù)據(jù)存入完成后DSP通過(guò)中斷模塊產(chǎn)生信號(hào),通知FPGA讀出結(jié)果數(shù)據(jù)并輸出。
通過(guò)上面的過(guò)程數(shù)據(jù)在DSP和FPGA中不僅能快速的傳輸,也能在DSP中實(shí)現(xiàn)數(shù)據(jù)的快速處理。這種方式能有效的結(jié)合DSP和FPGA兩者的優(yōu)勢(shì),以達(dá)到最好的信號(hào)傳輸與處理的效果,在單位時(shí)間內(nèi)能處理的數(shù)據(jù)量更大以及數(shù)據(jù)的快速傳輸。
4 FPGA與DSP之間通信實(shí)現(xiàn)與應(yīng)用
該設(shè)計(jì)適合應(yīng)用在圖像傳輸與處理要求實(shí)時(shí)性較高的場(chǎng)合,比起以往的實(shí)時(shí)算法都需要多塊DSP串行或并行工作,以提高系統(tǒng)的運(yùn)行速度和實(shí)時(shí)性,而采用DSP+FPGA的雙口RAM構(gòu)成的數(shù)據(jù)接口可以實(shí)現(xiàn)在DSP和FPAG之間高速而又可靠的信息數(shù)據(jù)傳輸,在許多信號(hào)采集處理領(lǐng)域,F(xiàn)PGA技術(shù)已代替DSP實(shí)現(xiàn)許多前端的數(shù)字信號(hào)的采集與處理,用FPGA來(lái)實(shí)現(xiàn)數(shù)字信號(hào)處理很好的解決了DSP之間的并行問(wèn)題,也滿足速度要求,并且FPGA有著靈活可配置的特性,使得FPGA構(gòu)成的數(shù)字信號(hào)處理系統(tǒng)易于修改,測(cè)試,便于升級(jí),降低設(shè)計(jì)成本,開(kāi)發(fā)周期短。
設(shè)計(jì)一塊信號(hào)處理板,該信號(hào)處理板從前端數(shù)據(jù)采集板采集到圖像數(shù)據(jù),圖像每幀大小為640×512,100 f/s,所以該信號(hào)處理板要處理和傳輸?shù)臄?shù)據(jù)量很大,采用FPGA+DSP方案,有效的解決了該問(wèn)題。信號(hào)處理板接收到圖像數(shù)據(jù)后對(duì)圖像數(shù)據(jù)進(jìn)行處理,并將處理完的結(jié)果傳與主控板。該系統(tǒng)的結(jié)構(gòu)框圖如圖4所示。信號(hào)處理板上的FPGA負(fù)責(zé)接收從前端傳來(lái)的圖像數(shù)據(jù),F(xiàn)PGA將接收到的圖像數(shù)據(jù)存儲(chǔ)在FPGA內(nèi)部的雙口RAM中,同時(shí)FPGA也負(fù)責(zé)從RAM中讀出DSP圖像處理的結(jié)果;DSP主要負(fù)責(zé)圖像數(shù)據(jù)的處理,處理前DSP通過(guò)EMIF接口從雙口RAM中讀出圖像數(shù)據(jù)并處理,將處理后的結(jié)果通過(guò)EMIF接口存儲(chǔ)在FPGA內(nèi)部的RAM中。
圖4 系統(tǒng)結(jié)構(gòu)框圖
為驗(yàn)證兩者之間通信的正確性,用Xilinx公司的ISE軟件的仿真功能獲取FPGA端的數(shù)據(jù),DSP端的數(shù)據(jù)通過(guò)DSP的開(kāi)發(fā)壞境CCS的功能顯示出來(lái)。FPGA寫入雙口RAM中的數(shù)據(jù)的仿真圖如圖5所示,寫入的數(shù)據(jù)為0~63,從仿真的結(jié)果看,寫入的數(shù)據(jù)沒(méi)有錯(cuò)誤,DSP從雙口RAM中讀出的數(shù)據(jù)如圖6所示,從讀出的數(shù)據(jù)可以看出,F(xiàn)PGA寫入的數(shù)據(jù)和DSP讀出的數(shù)據(jù)一致,DSP寫入與讀出數(shù)據(jù)圖如圖7所示,其中的地址空間為0xc0000000~0xc000007f中的數(shù)據(jù)為DSP寫入的數(shù)據(jù),而地址空間為0xc0000080~0xc00000ff中的數(shù)據(jù)為經(jīng)FPGA從地址空間為0xc0000000~0xc000007f中讀出數(shù)據(jù)后又寫入到地址空間為0xc0000080~0xc00000ff中,便于觀察,從圖7中可以看出,DSP寫入的數(shù)據(jù)和FPGA讀出的數(shù)據(jù)也相等。
圖5 FPGA寫入雙口RAM中的數(shù)據(jù)仿真圖
圖6 DSP通過(guò)EMIF口從雙口RAM中讀出數(shù)據(jù)圖
圖7 DSP寫入與讀出數(shù)據(jù)圖
從圖5~圖7中可以看出兩者之間的通信通道已經(jīng)建立,可以進(jìn)行正常的通信。實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)完成了TMS320C6455 DSP EMIF接口與FPGA內(nèi)部雙口RAM的通信,對(duì)于DSP發(fā)送的信號(hào),F(xiàn)PGA可以正確接收,F(xiàn)PGA發(fā)表的信號(hào),DSP也能正確的接收,經(jīng)過(guò)測(cè)試,讀寫數(shù)據(jù)沒(méi)有錯(cuò)誤,并能穩(wěn)定的在二者之間進(jìn)行通信。經(jīng)測(cè)式,二者之間的通信速率能滿足系統(tǒng)所需要求。
5 結(jié) 語(yǔ)
本設(shè)計(jì)采用FPGA+DSP方案,并充分利用器件內(nèi)部的硬件資源,在開(kāi)發(fā)環(huán)境ISE下,在FPGA內(nèi)部實(shí)現(xiàn)了雙口RAM,并實(shí)現(xiàn)了FPGA和DSP 對(duì)該雙口RAM的讀寫。建立了DSP和FPGA通信的橋梁,解決并實(shí)現(xiàn)了DSP和FPGA之間的雙向通信。采用FPGA和DSP相結(jié)合的方式,既降低了系統(tǒng)的復(fù)雜性,又增加了系統(tǒng)的靈活性和配置性,有利于開(kāi)發(fā),在實(shí)現(xiàn)大量數(shù)據(jù)處理的同時(shí),也實(shí)現(xiàn)了數(shù)據(jù)的快速傳輸。
參考文獻(xiàn)
[1] 于鳳芹.TMS320C6000DSP結(jié)構(gòu)原理與硬件設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2008.
[2] 胡宏平,胡兵.基于FPGA的雙口RAM在信號(hào)采集中的應(yīng)用[J].微計(jì)算機(jī)信息,2007(23):223?225.
[3] LEE B W, CHO S H. A design of the signal processing hardware platform f or communication systems [J]. IEICE Transactions on Communications, 2008, E91?B(3): 939?942.
[4] Texas Instruments. TMS320C6000 programmer′s guide [M].USA: Texas Instruments, 2006.
[5] Xilinx. Virtex?5 FPGA user guide [M]. USA: Xilinx, 2012.
[6] Xilinx. Interfacing Xilinx FPGAs to TI DSP platforms using the EMIF [M]. USA: Xilinx, 2007.
[7] 王光國(guó).基于DSP+FPGA 機(jī)器人敏感皮膚實(shí)時(shí)信號(hào)處理的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2006
[8] Texas Instruments. TMS320C6000 EMIF to external FIFO interface, SPRA543 [R]. USA: Texas Instruments, 1999.
[9] 羅戈亮,魯新平,李吉成.基于FPGA+DSP 的實(shí)時(shí)圖像處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微處理機(jī),2010(2):106?110.
[10] 楊露,蘇秀琴,向靜波.基于DSP和FPGA的視頻圖像處理系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008(21):288?289.