文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)08-0014-03
在電路與信號(hào)系統(tǒng)數(shù)據(jù)傳輸領(lǐng)域,現(xiàn)場(chǎng)可編程門陣列FPGA與通用處理器進(jìn)行數(shù)據(jù)通信時(shí)一般采用通用處理器外部異步總線接口來(lái)處理。采用這種接口方式的優(yōu)點(diǎn)是接口實(shí)現(xiàn)簡(jiǎn)單,易操作;缺點(diǎn)是數(shù)據(jù)傳輸速率低。
因此,當(dāng)系統(tǒng)對(duì)數(shù)據(jù)傳輸速率要求較高時(shí),這種傳統(tǒng)的FPGA與通用處理器之間的異步數(shù)據(jù)傳輸方式不能滿足應(yīng)用的基本需求。
一般來(lái)說(shuō),通用處理器都包含有同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器SDRAM(Synchronous Dynamic Random Access Memory)控制器的用途是可以通過(guò)接口外部SDRAM存儲(chǔ)器[1]擴(kuò)展外部存儲(chǔ)空間。SDRAM因?yàn)槭褂猛竭壿媯鬏敂?shù)據(jù),因此具備很高的數(shù)據(jù)傳輸效率。
如果FPGA與通用處理器進(jìn)行數(shù)據(jù)通信時(shí)基于SDRAM控制器接口,使用同步邏輯傳輸數(shù)據(jù),數(shù)據(jù)傳輸速率將會(huì)較異步傳輸大大提高。采用這種接口方式的優(yōu)點(diǎn)就是數(shù)據(jù)傳輸速率高,缺點(diǎn)是接口實(shí)現(xiàn)較復(fù)雜。
1 設(shè)計(jì)思路
為了能夠在FPGA與通用處理器之間實(shí)現(xiàn)同步數(shù)據(jù)傳輸,提高數(shù)據(jù)傳輸速率,要求通用處理器應(yīng)當(dāng)包含SDRAM控制器,F(xiàn)PGA與通用處理器之間的數(shù)據(jù)通信則基于SDRAM控制器接口進(jìn)行。
在滿足上述條件的前提下,本文提出的一個(gè)設(shè)計(jì)思路是將FPGA模擬為通用處理器SDRAM控制器的一個(gè)外接SDRAM存儲(chǔ)器,進(jìn)而通過(guò)SDRAM控制器實(shí)現(xiàn)通用處理器與FPGA之間的同步數(shù)據(jù)傳輸,以提高數(shù)據(jù)傳輸速率。
為了實(shí)現(xiàn)上述設(shè)計(jì)思路,需要在FPGA內(nèi)部構(gòu)建雙向的同步輸入輸出接口STI[2](Synchronous Transmission Interface)與外部通用處理器的SDRAM控制器接口,STI應(yīng)該嚴(yán)格按照SDRAM控制器接口時(shí)序進(jìn)行工作。
2 實(shí)現(xiàn)方法
因?yàn)橥ㄓ锰幚砥鞯腟DRAM控制器專門用來(lái)擴(kuò)展系統(tǒng)外部存儲(chǔ)空間,與外部SDRAM存儲(chǔ)器進(jìn)行接口,因此,在FPGA內(nèi)部構(gòu)建的雙向同步輸入輸出接口(STI)必須嚴(yán)格按照SDRAM存儲(chǔ)器的工作原理來(lái)進(jìn)行設(shè)計(jì),通過(guò)STI將FPGA模擬為通用處理器SDRAM控制器的一個(gè)外接SDRAM存儲(chǔ)器。此STI接口一端與外部通用處理器的SDRAM控制器進(jìn)行接口,另一端與FPGA內(nèi)部的存儲(chǔ)模塊或數(shù)據(jù)處理單元接口。這樣,F(xiàn)PGA便可以與外部通用處理器實(shí)現(xiàn)同步數(shù)據(jù)傳輸,提高數(shù)據(jù)傳輸效率。
FPGA與通用處理器同步數(shù)據(jù)傳輸系統(tǒng)結(jié)構(gòu)框圖如圖1所示
STI做為連接FPGA內(nèi)部數(shù)據(jù)存儲(chǔ)或處理單元和外部SDRAM控制器的接口,其接口信號(hào)輸入端為完整的SDRAM信號(hào)輸入。接口信號(hào)輸出端為內(nèi)部數(shù)據(jù)存儲(chǔ)或處理單元的數(shù)據(jù)、地址及控制等信號(hào)。
圖1中FPGA與通用處理器之間數(shù)據(jù)位寬為DQ0~DQn;尋址空間由地址信號(hào)A0~An及BANK信號(hào)BA0~BA1來(lái)決定;數(shù)據(jù)傳輸同步時(shí)鐘信號(hào)為CLK;時(shí)鐘使能信號(hào)為CKE;片選信號(hào)為CS#;命令譯碼信號(hào)為RAS#,CAS#,WE#;數(shù)據(jù)屏蔽信號(hào)為DQM。
FPGA內(nèi)部的數(shù)據(jù)存儲(chǔ)或處理單元與STI通過(guò)時(shí)鐘信號(hào)Clk、地址信號(hào)Address、數(shù)據(jù)信號(hào)Data、控制信號(hào)等實(shí)現(xiàn)互聯(lián)。
STI的主要功能就是接收來(lái)自SDRAM控制器的同步信號(hào),嚴(yán)格按照SDRAM工作時(shí)序?qū)ζ溥M(jìn)行邏輯譯碼轉(zhuǎn)換,翻譯成FPGA內(nèi)部的數(shù)據(jù)存儲(chǔ)器或處理單元可以正確應(yīng)用的信號(hào)形式,從而確保數(shù)據(jù)傳輸?shù)臏?zhǔn)確無(wú)誤。
STI包含4個(gè)主要的功能模塊[3]:模式寄存器、鎖存模塊、地址解析轉(zhuǎn)換模塊、譯碼模塊。STI的功能結(jié)構(gòu)框圖如圖2所示。
STI的功能結(jié)構(gòu)框圖如圖2所示
各功能模塊實(shí)現(xiàn)的功能分別是:(1)模式寄存器,設(shè)定SDRAM控制器的數(shù)據(jù)突發(fā)傳輸長(zhǎng)度和讀延時(shí)周期;(2)鎖存模塊,鎖存SDRAM控制器發(fā)送的數(shù)據(jù)和地址信號(hào);(3)地址解析轉(zhuǎn)換模塊,根據(jù)SDRAM控制器的激活、讀寫(xiě)等命令,將SDRAM控制器的行列地址進(jìn)行解析,轉(zhuǎn)換成為FPGA內(nèi)部數(shù)據(jù)存儲(chǔ)器或處理單元可以直接使用的地址信號(hào);(4)譯碼模塊,結(jié)合模式寄存器的配置內(nèi)容,根據(jù)SDRAM控制器的讀、寫(xiě)命令,譯碼出與數(shù)據(jù)存儲(chǔ)器或處理單元接口的讀、寫(xiě)、使能等控制信號(hào)。
譯碼模塊產(chǎn)生的讀、寫(xiě)、使能等控制信號(hào)配合地址解析轉(zhuǎn)換模塊產(chǎn)生的直接尋址地址信號(hào)以及鎖存模塊產(chǎn)生的數(shù)據(jù)信號(hào),結(jié)合同步時(shí)鐘信號(hào),共同完成對(duì)STI后端數(shù)據(jù)存儲(chǔ)器或處理單元的接口工作。即實(shí)現(xiàn)了STI與FPGA內(nèi)部數(shù)據(jù)存儲(chǔ)器或處理單元的數(shù)據(jù)實(shí)時(shí)寫(xiě)入和讀取操作,從而完成了FPGA與通用處理器之間數(shù)據(jù)的實(shí)時(shí)同步傳輸。
綜上可以得到FPGA與通用處理器同步數(shù)據(jù)傳輸系統(tǒng)的工作流程如圖3所示。
圖3 FPGA與通用處理器同步數(shù)據(jù)傳輸工作流程圖
以上所述功能模塊及工作內(nèi)容的代碼實(shí)現(xiàn)全部在FPGA內(nèi)部完成。
3 實(shí)測(cè)驗(yàn)證
將上述同步數(shù)據(jù)傳輸接口設(shè)計(jì)方法應(yīng)用于基于數(shù)字信號(hào)處理器TS201[4-5]和EP2S180[6](FPGA)的通用信號(hào)處理電路板,已經(jīng)取得很好的實(shí)用效果。經(jīng)過(guò)實(shí)際測(cè)試,采用該方法后,數(shù)據(jù)傳輸正確無(wú)誤,數(shù)據(jù)傳輸速率是傳統(tǒng)異步接口傳輸速率的5倍以上。
實(shí)際測(cè)試中,以FPGA內(nèi)部64 K×32 bit的數(shù)據(jù)存儲(chǔ)單元為例,DSP與FPGA分別進(jìn)行異步數(shù)據(jù)傳輸測(cè)試和同步數(shù)據(jù)傳輸測(cè)試[7],傳輸一包數(shù)據(jù)的容量都為64 K×32 bit。通過(guò)FPGA開(kāi)發(fā)環(huán)境QuartusII自帶的SignalTapII組件對(duì)數(shù)據(jù)傳輸過(guò)程中相關(guān)的信號(hào)進(jìn)行實(shí)時(shí)測(cè)試采樣。通過(guò)測(cè)試得到,采用傳統(tǒng)異步接口數(shù)據(jù)傳輸時(shí)序圖如圖4所示,采用本文所述同步接口數(shù)據(jù)傳輸時(shí)序圖如圖5所示。
從圖4和圖5的時(shí)序圖可以很直觀地看出,F(xiàn)PGA與通用處理器之間采用同步數(shù)據(jù)傳輸較傳統(tǒng)異步數(shù)據(jù)傳輸有明顯優(yōu)勢(shì)。
本文針對(duì)FPGA與通用處理器之間的通信方式,提出了一種通過(guò)在FPGA內(nèi)部構(gòu)建一個(gè)雙向同步輸入/輸出接口(STI)來(lái)實(shí)現(xiàn)FPGA與通用處理器之間同步數(shù)據(jù)傳輸?shù)姆椒?,并詳?xì)介紹了該方法的設(shè)計(jì)思路及實(shí)現(xiàn)方法。
本文提供的設(shè)計(jì)方法具有很高的實(shí)用價(jià)值,在不增加系統(tǒng)硬件成本的前提下,有效地利用現(xiàn)有資源,將傳統(tǒng)的異步總線接口改進(jìn)為同步總線接口,提高了數(shù)據(jù)傳輸?shù)乃俾?,進(jìn)而極大地提升了系統(tǒng)的工作效率。
最后,給出本文設(shè)計(jì)方法的應(yīng)用實(shí)例,通過(guò)在實(shí)際通用信號(hào)處理樣機(jī)上的測(cè)試,驗(yàn)證了該方法的實(shí)用性和有效性。
參考文獻(xiàn)
[1] MICRON.256Mb:x4,x8,x16 SDRAM Features[EB/OL].
(2012-11-08)[2014-04-01].http://www.micron.com/prod-
ucts/dram/sdram#fullPart&236=2.
[2] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程(第2版)[M].北京:
北京航空航天大學(xué)出版社,2008.
[3] 袁俊泉,孫敏琪,曹瑞.Verilog HDL數(shù)字系統(tǒng)設(shè)計(jì)及其應(yīng)
用[M].西安:西安電子科技大學(xué)出版社,2002.
[4] Analog Devices.ADSP-TS201 TigerSHARC?誖embedded
processor,Rev.C[EB/OL].(2012-11-08)[2014-04-01].
http://www.analog.com/en/processors-dsp/tigersharc/adsp-
ts201s/products/product.html.
[5] Analog Devices.ADSP-TS201 TigerSHARC?誖processor
hardware reference,Revision 1.1[EB/OL].(2012-11-08)
[2014-04-01].http://www.analog.com/en/
processors-dsp/tigersharc/adsp-ts201s/products/product.html.
[6] Altera.Stratix?誖II device handbook,Volume 1 and Vol-
ume 2[EB/OL].(2012-11-08)[2014-04-01].http://www.
altera.com.cn/literature/lit-stx2.jsp.
[7] Analog Devices.ADSP-TS201 TigerSHARC?誖processor
programming reference,Revision 1.1[EB/OL].(2012-11-08)
[2014-04-01].http://www.analog.com/en/
processors-dsp/tigersharc/adsp-ts201s/products/product.html.
(收稿日期:2014-04-09)
作者簡(jiǎn)介:
胡強(qiáng),男,1978年生,工程師,主要研究方向:電子與信息系統(tǒng)硬件研發(fā)。
圖4 采用異步接口數(shù)據(jù)傳輸時(shí)序圖
圖5 采用同步接口數(shù)據(jù)傳輸時(shí)序圖