摘要:基于時(shí)分長(zhǎng)期演進(jìn)(timedivision- longtermevolution,TD-LTE)射頻一致性測(cè)試系統(tǒng)中數(shù)據(jù)交互的分析研究,為了很好地滿足現(xiàn)場(chǎng)可編程門陣列(fieldprogrammablegatearray,FPGA)間的大容量數(shù)據(jù)交互,設(shè)計(jì)了一種高速的嵌入式技術(shù)串行高速輸入輸出口(serialrapidIO, SRIO),實(shí)現(xiàn)2塊FPGA芯片間的互連,保證在TD-LTE系統(tǒng)中上行和下行數(shù)據(jù)處理的獨(dú)立性和交互的便捷。基于Xilinx公司的Virtex-6系列XC6VLX475T芯片,給出了SRIO接口的整體性設(shè)計(jì)方案,經(jīng)過(guò)ModelSim軟件仿真,確定適合項(xiàng)目需要的數(shù)據(jù)交互的格式類型和事務(wù)類型,對(duì)接口代碼進(jìn)行綜合、板級(jí)驗(yàn)證、聯(lián)機(jī)調(diào)試等,在ChipScope軟件上對(duì)比分析數(shù)據(jù)傳輸?shù)恼_性,通過(guò)測(cè)試模塊統(tǒng)計(jì)比較發(fā)送和接收信號(hào)的誤比特率, 確定了SRIO接口在高速數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性,成功驗(yàn)證了SRIO接口在FPGA之間數(shù)據(jù)的互連互通,并將該方案作為一種新的總線技術(shù)應(yīng)用于TD-LTE射頻一致性測(cè)試儀系統(tǒng)開(kāi)發(fā)中。
0 引言
隨著移動(dòng)通信技術(shù)研究的不斷深入, 3GPPLTE逐漸成為支撐世界電信業(yè)務(wù)的重要移動(dòng)通信系統(tǒng)。在時(shí)分長(zhǎng)期演進(jìn)(timedivision-longtermevolution,TD-LTE)系統(tǒng)的研究中,頻分多址技術(shù)、多輸入多輸出(multipleinputmultipleoutput, MIMO)技術(shù)[1]等各種創(chuàng)新技術(shù)的應(yīng)用,使得系統(tǒng)的處理能力要求越來(lái)越高,高速數(shù)字信號(hào)處理(digitalsignalprocessor,DSP)以及大規(guī)?,F(xiàn)場(chǎng)可編程門陣列(fieldprogram-mablegatearray,F(xiàn)PGA)被廣泛應(yīng)用[2],僅僅依靠提高單處理器的性能來(lái)提高處理能力越來(lái)越艱難,必須采用實(shí)時(shí)并行處理技術(shù)。多處理芯片并行處理是滿足系統(tǒng)處理能力要求的有效解決途徑,因此,芯片之間的互連顯得尤為重要。傳統(tǒng)的分級(jí)共享總線帶寬和速率都很低,其性能已經(jīng)達(dá)到極限,不能滿足TD-LTE的高速處理需求。
傳統(tǒng)并行總線互連所需要引腳數(shù)較多,給器件封裝、測(cè)試和焊接都帶來(lái)了一些問(wèn)題,也會(huì)增加在系統(tǒng)中應(yīng)用的復(fù)雜度。而串行高速輸入輸出口(se-rialrapidIO,SRIO)接口具有速度快、管腳數(shù)少、系統(tǒng)成本低、可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)或點(diǎn)對(duì)多點(diǎn)通信等優(yōu)點(diǎn)。SRIO接口已經(jīng)成功應(yīng)用在多DSP處理芯片間 的數(shù)據(jù)互連[3] 。在多FPGA處理芯片系統(tǒng)架構(gòu)的TD-LTE系統(tǒng)中,基帶處理信息交互急需一種新的 高速互連接口。本文在對(duì)SRIO協(xié)議[4] 及相關(guān)技術(shù) 進(jìn)行深入研究后,設(shè)計(jì)了一種基于可靠的開(kāi)放式互連協(xié)議標(biāo)準(zhǔn),實(shí)現(xiàn)2塊FPGA芯片之間的數(shù)據(jù)交互方案,提高了數(shù)據(jù)交互能力,并對(duì)傳輸時(shí)延進(jìn)行分析,滿足TD- LTE射頻一致性測(cè)試系統(tǒng)的性能要求。
1 SRIO技術(shù)
1.1 SRIO的簡(jiǎn)介
SRIO屬于系統(tǒng)內(nèi)部互連技術(shù),適用于高性能的 嵌入式設(shè)備的系統(tǒng)內(nèi)部互連, 還提供了嵌入式系統(tǒng)開(kāi)發(fā)者所需的可擴(kuò)展性、魯棒性和效率。RapidIO采用包交換技術(shù),在網(wǎng)絡(luò)處理器(networkprocessingunit,NPU)、中央處理器(centralprocessingunit,CPU)和DSP之間的通信具有高速、低延遲、穩(wěn)定可靠的互連性,可行的應(yīng)用包括多處理器、存儲(chǔ)器、網(wǎng)絡(luò)設(shè)備中的存儲(chǔ)器映射I/O器件、存儲(chǔ)子系統(tǒng)和通用計(jì)算平臺(tái)的數(shù)據(jù)交互,具有廣闊的應(yīng)用前景。
2011年5月發(fā)布的RapidIOv2.1規(guī)范提供了2種接口模式(1x和4x)[5] , 1x使用較少的邏輯資源,數(shù)據(jù)帶寬也比較低;4x需要更多的邏輯資源,但是提供了更高的帶寬和更好的可靠性。時(shí)鐘采用內(nèi)部的差分時(shí)鐘,支持的波特率[6] 分別有1.25, 2.5,3.125和5Gboud,滿足不同的應(yīng)用需求,還支持多 種事物類型,包括讀/寫(xiě)非共享寄存器、流寫(xiě)、維護(hù)、門鈴和信箱服務(wù)等。
1.2 SRIO規(guī)范
SRIO采用3層分級(jí)體系結(jié)構(gòu)[4],如圖1所示。
?
①邏輯層。定義了多種規(guī)范,包括I/O邏輯操作、消息傳遞、共享存儲(chǔ)、流量控制和數(shù)據(jù)流,以及接口的全部協(xié)議和包的格式。它們?yōu)槎它c(diǎn)器件發(fā)起和完成事物提供必要的信息。
②傳輸層。定義了RapidIO的地址空間,并提供報(bào)文在端點(diǎn)設(shè)備間傳輸所需的路由信息。
③物理層。處于整個(gè)分級(jí)結(jié)構(gòu)的底部,定義了設(shè)備級(jí)接口的細(xì)節(jié),明確說(shuō)明了包傳輸機(jī)制、流量控制、電氣特性和低級(jí)錯(cuò)誤管理[7] 。
1.3 SRIO接口寫(xiě)時(shí)序
根據(jù)實(shí)際應(yīng)用時(shí)FPGA用戶端通過(guò)SRIO接口 發(fā)送數(shù)據(jù)所生成的時(shí)序圖[6] ,可知其接口的基本時(shí)序圖如圖2所示。
?
圖2中,sys_clk是系統(tǒng)時(shí)鐘,是由輸入的差分 時(shí)鐘經(jīng)過(guò)時(shí)鐘模塊得到的,比普通單端時(shí)鐘更穩(wěn)定;ireq_sof_n是開(kāi)始信號(hào),標(biāo)志著一個(gè)數(shù)據(jù)幀的開(kāi)始;ireq_eof_n是結(jié)束信號(hào),一個(gè)數(shù)據(jù)幀的結(jié)束標(biāo)志;ireq_vld_n為有效信號(hào),該信號(hào)為低時(shí)所傳送的數(shù)據(jù)有效;ireq_rdy_n是開(kāi)始標(biāo)志位;ireq_byte_en_n是數(shù)據(jù)的位使能信號(hào),圖2中數(shù)據(jù)D6對(duì)應(yīng)的ireq_byte_en_n低8位為高,意味著D6的低8位未被使能,還有其他許多的格式控制信號(hào)就不在這一一列舉。
2 SRIO的邏輯設(shè)計(jì)與實(shí)現(xiàn)
SRIO接口作為FPGA間的數(shù)據(jù)交互通道,數(shù)據(jù) 通過(guò)接口由主機(jī)傳送到從機(jī)以及由從機(jī)傳回至主機(jī)的過(guò)程,在FPGA中由6個(gè)主要的模塊完成:接口控制、時(shí)鐘、復(fù)位控制、邏輯核、物理核、緩存控制。下面將介紹系統(tǒng)內(nèi)部實(shí)現(xiàn)方案以及各個(gè)模塊的功 能及Veriolg語(yǔ)言[8]實(shí)現(xiàn)方法[9]。
為了仿真和實(shí)現(xiàn)圖的顯示直觀方便,這里采用回環(huán)的方式來(lái)論證,即發(fā)送和接收為同一主機(jī),目標(biāo)地址與源地址相同。
接口控制模塊是整個(gè)系統(tǒng)的起始端和結(jié)束端,用戶可以通過(guò)該模塊來(lái)控制所需交互數(shù)據(jù)大小、類型和格式。隨機(jī)存儲(chǔ)器(randomaccessmemory,RAM)是FPGA用來(lái)傳輸數(shù)據(jù)的中轉(zhuǎn)站,通過(guò)控制RAM中的數(shù)據(jù)來(lái)實(shí)現(xiàn)SRIO在2塊FPGA芯片之間數(shù)據(jù)交互功能。
SRIO使用的是專用的差分時(shí)鐘,頻率為156.25MHz或125MHz,不同的時(shí)鐘對(duì)應(yīng)的傳輸速率不一樣,差分時(shí)鐘的用戶約束為NET“sys_clkn”LOC=“G9”;NET“sys_clkp”LOC=“G10”。這里差分時(shí)鐘先是經(jīng)過(guò)差分時(shí)鐘緩存(IBUFDS_GTXE1)和時(shí)鐘 分頻管理單元(MMCM_ADV)后, 得到2個(gè)時(shí)鐘UCLK和UCLK_DV4,用來(lái)驅(qū)動(dòng)其他模塊工作。
2.1 FPGA設(shè)計(jì)方案的硬件環(huán)境
FPGA是選用2塊Xilinx公司的Virtex-6系列 XC6VLX475T芯片?;诓捎玫谌鶻ilinx ASMBLTM架構(gòu)的40nm制造工藝, Virtex-6FPGA系列還擁有新一代開(kāi)發(fā)工具和早已針對(duì)Virtex-5FP-GA而開(kāi)發(fā)的廣泛IP庫(kù)支持。Virtex-6FPGA把先 進(jìn)的硬件芯片技術(shù)、創(chuàng)新的電路設(shè)計(jì)技術(shù)以及架構(gòu)上的增強(qiáng)完美結(jié)合在一起,與前代Virtex器件以及競(jìng)爭(zhēng)FPGA產(chǎn)品相比,功耗大大降低,性能更高并且成本更低。
2.2 FPGA內(nèi)部實(shí)現(xiàn)方案框圖
根據(jù)SRIO接口構(gòu)成系統(tǒng)的原理可以設(shè)計(jì)出SRIO接口硬件實(shí)現(xiàn)原理方案框圖,如圖3所示。SRIO完成2塊FPGA芯片間的數(shù)據(jù)交互,原理圖兩部分是對(duì)稱的。
復(fù)位模塊為整個(gè)工程產(chǎn)生復(fù)位信號(hào),這里采用 的是異步復(fù)位同步釋放,當(dāng)一個(gè)系統(tǒng)復(fù)位信號(hào)出現(xiàn)時(shí)這個(gè)模塊會(huì)發(fā)出一個(gè)鏈路復(fù)位信號(hào)。
邏輯層接口由3個(gè)部分組成:用戶接口、鏈路接口和維護(hù)接口。用戶接口又由4個(gè)信號(hào)端口構(gòu)成,分別為初始請(qǐng)求ireq、初始響應(yīng)iresp、目標(biāo)請(qǐng)求treq和目標(biāo)響應(yīng)tresp。用戶可以通過(guò)接口控制模塊來(lái)配置這4個(gè)信號(hào)端口,來(lái)實(shí)現(xiàn)數(shù)據(jù)向遠(yuǎn)端的或?qū)懖僮?。鏈路接口是用?lái)與物理層通信和緩存器的數(shù)據(jù)交互。維護(hù)操作可以用來(lái)發(fā)送某些信息,例如,不含端點(diǎn)的器件的錯(cuò)誤指示符或狀態(tài)信息。數(shù)據(jù)載荷通常放在目標(biāo)端點(diǎn)的隊(duì)列中并向本地處理器產(chǎn)生一個(gè)中斷。
緩存器可以平衡系統(tǒng)性能與資源使用之間的平衡,發(fā)送和接收的緩存區(qū)間大小是可以配置的。緩存核可以處理所有從物理層返回的數(shù)據(jù)包,包括包的重發(fā)和錯(cuò)誤恢復(fù)。它能夠保證數(shù)據(jù)包正確到達(dá)接收端和物理層的驗(yàn)證。
物理層核( phy sicallayer,PHY )負(fù)責(zé)處理鏈路調(diào)整、初始化和協(xié)議,包括插入循環(huán)冗余校驗(yàn)碼(cyclical redundancy check,CRC
)和確認(rèn)標(biāo)識(shí)符到輸出的信息包中。PHY使用專用的8B/10B碼(即K碼)來(lái)管理鏈路,管理內(nèi)容包括流量控制、包定界和錯(cuò)誤報(bào)告。
最后在接口控制模塊中加入數(shù)據(jù)收集模塊,收集有效的發(fā)送數(shù)據(jù)ireq_data和接收數(shù)據(jù)treq_data,再用matlab軟件對(duì)比分析誤碼率。
3 數(shù)據(jù)交互仿真與實(shí)現(xiàn)
本文使用Xilinx ISE13.4軟件,聯(lián)合ModelSim仿真軟件仿真了不同事物格式和類型下多數(shù)據(jù)包傳輸。圖4主要顯示了事物格式字段值為5、事物類型字段值為4的情況下數(shù)據(jù)交互的控制信號(hào)和數(shù)據(jù)信號(hào)的整體波形,由于篇幅的原因,圖4只給出了部分發(fā)送端和接收端的信號(hào),包括數(shù)據(jù)信號(hào)treq_data_i、開(kāi)始控制信號(hào)treq_sof_n_i、結(jié)束控制信號(hào)treq_eof_n_i、準(zhǔn)備控制信號(hào)treq_rdy_n_o、有效控制信號(hào)treq_vld_n_i、事務(wù)格式treq_ftype_i和事物類型treq_ttype_i等。經(jīng)過(guò)仿真對(duì)比分析,驗(yàn)證了發(fā)送和接收數(shù)據(jù)是相同的,且相應(yīng)的控制信號(hào)滿足協(xié)議要求,仿真實(shí)現(xiàn)了2塊FPGA芯片間的數(shù)據(jù)交互功能。
對(duì)上述設(shè)計(jì)的程序進(jìn)行綜合、布局布線,將代碼下載到硬件平臺(tái)后能夠正常運(yùn)行,通過(guò)ChipScope軟件,可以進(jìn)一步從實(shí)際情況測(cè)試接口的正確性和穩(wěn)定性。通過(guò)數(shù)據(jù)采集,可以得到SRIO在硬件平臺(tái)上數(shù)據(jù)交互的測(cè)試波形圖,如圖5所示。FPGA以NWRITE(Ftype=5,Ttype=4)事務(wù)類型發(fā)送數(shù)據(jù),而接收端從物理接口接收數(shù)據(jù)并以逆向解析出用戶數(shù)據(jù)。
用matlab軟件對(duì)比發(fā)送和接收數(shù)據(jù),計(jì)算統(tǒng)計(jì)得到的誤碼率低于10-10,滿足高速低誤碼率傳輸系統(tǒng)的要求,而且各個(gè)控制信號(hào)都符合協(xié)議要求。由圖5可知,數(shù)據(jù)傳輸時(shí)延為122個(gè)時(shí)鐘周期,接口在硬件平臺(tái)上運(yùn)行的實(shí)際情況與設(shè)計(jì)方案是相符的,滿足接口通信的要求,實(shí)現(xiàn)了數(shù)據(jù)的正確接收并且具有較好的穩(wěn)定性。從而能夠更好地用在實(shí)際的開(kāi)發(fā)平臺(tái)中。
4 總 結(jié)
SRIO針對(duì)高性能嵌入式系統(tǒng)芯片間和板間互連設(shè)計(jì),是未來(lái)嵌入式系統(tǒng)互連的最佳選擇之一。本文詳細(xì)介紹了SRIO基本規(guī)范、系統(tǒng)組成基本原理、硬件環(huán)境和關(guān)鍵模塊設(shè)計(jì)。經(jīng)過(guò)軟件仿真和硬件平臺(tái),驗(yàn)證了2塊FPGA芯片之間數(shù)據(jù)交互的可行性。并將此模塊應(yīng)用于TD-LTE射頻一致性測(cè)試儀表系統(tǒng)開(kāi)發(fā)中,如圖6所示(TD-LTE射頻一致性測(cè)試儀基帶發(fā)送板)。通過(guò)實(shí)驗(yàn)證明,其工作可靠,達(dá)到了設(shè)計(jì)要求,為下一步數(shù)據(jù)的正確處理提供了可靠保證。
評(píng)論