《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > FPGA與通用處理器同步數(shù)據(jù)傳輸接口的設(shè)計(jì)
FPGA與通用處理器同步數(shù)據(jù)傳輸接口的設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2014年第8期
胡 強(qiáng)
中國(guó)航天科工信息技術(shù)研究院,北京100070
摘要: 針對(duì)FPGA與通用處理器之間數(shù)據(jù)通信的方式,提出了基于包含SDRAM控制器的通用處理器與FPGA實(shí)現(xiàn)同步數(shù)據(jù)傳輸?shù)姆椒?。該方法通過(guò)在FPGA內(nèi)部構(gòu)建同步輸入/輸出接口STI(Synchronous Transmission Interface),將FPGA模擬為包含SDRAM控制器的通用處理器的外接SDRAM存儲(chǔ)器,從而實(shí)現(xiàn)FPGA與通用處理器之間的同步數(shù)據(jù)傳輸。經(jīng)理論分析和實(shí)際電路驗(yàn)證表明,對(duì)于FPGA與通用處理器之間的數(shù)據(jù)通信,在不增加任何硬件成本的前提下,采用該方法較傳統(tǒng)異步傳輸方法傳輸速率得到顯著的提升。
中圖分類號(hào): TN79+1
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)08-0014-03
The design of synchronous data transmission interface for FPGA with general purpose processor
Hu Qiang
China Aerospace Science & Industry Academy of Information Technology, Beijing 100070,China
Abstract: The data communication method of FPGA with general purpose processor is studied. A method of synchronous data transmission is proposed based on FPGA and general purpose processor with SDRAM controller. This method firstly needs to build the synchronous input and output interface STI(Synchronous Transmission Interface) in FPGA, then the FPGA is simulated into an external SDRAM memory of general purpose processor with SDRAM controller. This way realizes the synchronous data transmission of FPGA with general purpose processor. The theoretical analysis and experiment using real circuit system show that the new method under the premise of without increasing any hardware cost can get more significant improvement of transmission rate than the traditional method of asynchronous transmission.
Key words : FPGA;general purpose processor;SDRAM;data transmission

   在電路與信號(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í)序圖

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。