基于FPGA與DSP的高速通信接口設(shè)計(jì)與實(shí)現(xiàn)
在雷達(dá)信號(hào)處理、數(shù)字圖像處理等領(lǐng)域中,信號(hào)處理的實(shí)時(shí)性至關(guān)重要。由于FPGA芯片在大數(shù)據(jù)量的底層算法處理上的優(yōu)勢(shì)及DSP芯片在復(fù)雜算法處理上的優(yōu)勢(shì),DSP+FPGA的實(shí)時(shí)信號(hào)處理系統(tǒng)的應(yīng)用越來(lái)越廣泛。ADI公司的TigerSHARC系列DSP芯片浮點(diǎn)處理性能優(yōu)越,故基于這類(lèi)。DSP的DSP+FPGA處理系統(tǒng)正廣泛應(yīng)用于復(fù)雜的信號(hào)處理領(lǐng)域。同時(shí)在這類(lèi)實(shí)時(shí)處理系統(tǒng)中,F(xiàn)PGA與DSP芯片之間數(shù)據(jù)的實(shí)時(shí)通信至關(guān)重要。 TigerSHARC系列DSP芯片與外部進(jìn)行數(shù)據(jù)通信主要有兩種方式:總線方式和鏈路口方式。鏈路口方式更適合于FPGA與DSP之間的實(shí)時(shí)通信。隨著實(shí)時(shí)信號(hào)處理運(yùn)算量的日益增加,多DSP并行處理的方式被普遍采用,它們共享總線以互相映射存儲(chǔ)空間,如果再與FPGA通過(guò)總線連接,勢(shì)必導(dǎo)致FPGA與DSP的總線競(jìng)爭(zhēng)。同時(shí)采用總線方式與FPGA通信,DSP的地址、數(shù)據(jù)線引腳很多,占用FPGA的I/O引腳資源太多。而采用鏈路口通信不但能有效緩解DSP總線上的壓力,而且傳輸速度快,與FPGA之間的連線相對(duì)也少得多,故鏈路口方式更適合于FPGA與DSP之間進(jìn)行實(shí)時(shí)數(shù)據(jù)通信。
本文引用地址:http://m.butianyuan.cn/article/257423.htm參考文獻(xiàn)給出TS201與TS101的性能比較,但沒(méi)有針對(duì)兩者的鏈路口進(jìn)行詳細(xì)介紹,本文對(duì)兩者的鏈路口進(jìn)行了細(xì)致的分析和比較。文獻(xiàn)所設(shè)計(jì)的采集系統(tǒng)中,DSP與FGA的通信僅限于FPGA發(fā)、TS101收的單工通信;文獻(xiàn)給出了FPGA內(nèi)部沒(méi)計(jì)TS101鏈路口的框圖,但只給出了簡(jiǎn)單的介紹,無(wú)法給設(shè)計(jì)者以參考。本文采用Altera公司Cyclone系列芯片EP1C12實(shí)現(xiàn)了與TS101/TS201兩種芯片的鏈路口的雙工通信,并給出了具體的設(shè)計(jì)實(shí)現(xiàn)方法。其中TS101的設(shè)計(jì)已經(jīng)成功應(yīng)用于某信號(hào)處理機(jī)中。
1 TS101和TS201的鏈路口分析與比較
TS101和TS210都是高性能的浮點(diǎn)處理芯片,目前兩者都廣泛應(yīng)用于復(fù)雜的信號(hào)處理領(lǐng)域。TS201是繼TS101之后推出的新型芯片,核時(shí)鐘最高可達(dá)600MHz,其各類(lèi)性能也相對(duì)優(yōu)于TS101,而且TS201的鏈路口采用了低壓差分信號(hào)LVDS技術(shù),功耗更低、抗噪聲性能更好。表1列出了兩種芯片鏈路口性能的詳細(xì)比較,其中TS101核時(shí)鐘工作在250MHz,TS201核時(shí)鐘工作在500MHz。
限于篇幅,TS101、TS201的鏈路口結(jié)構(gòu)請(qǐng)參閱參考文獻(xiàn)。由于TS101收發(fā)端共用一個(gè)通道,所以只能實(shí)現(xiàn)半雙工通信。而TS201將收發(fā)端做成兩個(gè)獨(dú)立通道,可實(shí)現(xiàn)全雙工通信,理論上數(shù)據(jù)的傳輸速率可以提高一倍。雖然TS201的鏈路口收發(fā)通道獨(dú)立,但實(shí)際上二者的收發(fā)機(jī)制大體相同,都是靠收發(fā)緩存和移位寄存器收發(fā)數(shù)據(jù)。然而FPGA內(nèi)部的鏈路口設(shè)計(jì)不必拘泥于此,只要符合鏈路口通信協(xié)議并達(dá)成通信即可。
2 FPGA與DSP的鏈路口通信
2.1 鏈路口通信協(xié)議分析
TS101的鏈路口共有11根引腳,通過(guò)8根數(shù)據(jù)線(LxDAT[7..0],這里x可以是0、1、2或3,代表TS101或TS201的0號(hào)~3號(hào)鏈路口中的一個(gè),以下同)進(jìn)行數(shù)據(jù)傳輸,并采用3根控制線(LxCLKOUT、LxCLKIN、LxDIR)來(lái)控制數(shù)據(jù)傳輸時(shí)鐘、通信的握于和數(shù)據(jù)傳輸方向。其中LxDIR為通知鏈路口當(dāng)前工作狀態(tài)是接收或發(fā)送的輸出引腳,可懸空不用。TS201的鏈路口共24根引腳,接收和發(fā)送各12根引腳,通過(guò)LVDS形式的數(shù)據(jù)線(LxDAT_P/N[3..0])和時(shí)鐘線(LxCLK_P/N)進(jìn)行數(shù)據(jù)傳輸,并采用LxACK和LxBCMP#(‘#’代表信號(hào)低有效)來(lái)通知接收準(zhǔn)備好和數(shù)據(jù)塊傳輸結(jié)束。
采用FPGA與DSP通過(guò)鏈路口通信的關(guān)鍵是令雙方通信的握手信號(hào)達(dá)成協(xié)議,促使數(shù)據(jù)傳輸?shù)倪M(jìn)行。實(shí)際上,如果考慮TS201的LVDS信號(hào)形式已經(jīng)被轉(zhuǎn)換完畢,則TS101和TS201鏈路口傳輸?shù)臄?shù)據(jù)形式是一樣的,都是時(shí)鐘雙沿觸發(fā)的DDR數(shù)據(jù),并且每次傳輸?shù)臄?shù)據(jù)個(gè)數(shù)都是4個(gè)長(zhǎng)字(即128bit)的整數(shù)倍。鑒于以上兩種芯片鏈路口數(shù)據(jù)的共同點(diǎn),所以采用FPGA與兩類(lèi)芯片通信時(shí),接收和發(fā)送的數(shù)據(jù)緩存部分的設(shè)計(jì)應(yīng)該是很相近的,只是通信握手信號(hào)部分的設(shè)計(jì)應(yīng)當(dāng)分別加以考慮。下面分別給予介紹。
2.2 基于FPGA的TS101鏈路口設(shè)計(jì)
圖1給出了FPCA與TS101進(jìn)行半雙工鏈路口通信的設(shè)計(jì)(對(duì)LxCLKOUT、LxCLKIN均以FPCA的角度來(lái)敘述),該接口由接收、控制和發(fā)送三部分組成。本設(shè)計(jì)FPGA時(shí)鐘為40MHz,TS101核時(shí)鐘上作在250MHz,鏈路口時(shí)鐘設(shè)定為DSP核時(shí)鐘的8分頻,F(xiàn)PGA與DSP的實(shí)際數(shù)據(jù)傳輸率為62.5MBps。
(1) 接收部分:由編碼和緩存兩部分組成。由于鏈路口的數(shù)錯(cuò)是DDR形式的,不方便數(shù)據(jù)的緩存,本文采用QuartusII Megafunctions中的altddio模塊將上升沿?cái)?shù)據(jù)和下降沿?cái)?shù)據(jù)分開(kāi)。注意這個(gè)模塊的下降沿?cái)?shù)據(jù)輸出會(huì)滯后上升沿?cái)?shù)據(jù)1個(gè)時(shí)鐘周期,輸出時(shí)應(yīng)該用鏈路口時(shí)鐘信號(hào)(LxCLKIN)通過(guò)D觸發(fā)器來(lái)將數(shù)據(jù)對(duì)齊。該模塊的inclock一定要用鏈路口時(shí)鐘信號(hào)以保證數(shù)據(jù)的正確讀取,如圖2所示。又由于DSP內(nèi)部數(shù)據(jù)是32位的長(zhǎng)字,所以寫(xiě)入接收緩存前應(yīng)該用一組D觸發(fā)器將數(shù)據(jù)進(jìn)行32bit對(duì)齊,這里注意DSP鏈路口先傳輸32位數(shù)據(jù)中的低8位。
評(píng)論