池林輝,錢蕓生,籍宇豪
一種提高FPGA片間通信穩定性的校驗協議研究
池林輝,錢蕓生,籍宇豪
(南京理工大學,江蘇 南京 210094)
隨著FPGA(Field Programmable Gate Array)在大型系統中得到越來越廣泛的應用,單片FPGA往往難以勝任全部工作,多片FPGA之間進行高速穩定通信成為了該領域的一個研究熱點。為此設計了一種基于低壓差分信號(low voltage differential signal,LVDS)可用于FPGA片間高速穩定通信的校驗協議,該協議在常規LVDS通信的基礎上進行多輪多路校驗,以提高傳輸可靠性?;谠搮f議,搭建了一套由兩片Xilinx 7系列FPGA構成的9通道LVDS通信測試系統。其中1個通道用于同步時鐘,另外8通道用于校驗和通信。經過長時間高低溫測試,在保證單路傳輸速率達1.2Gb/s的情況下,相對于常規LVDS通信,誤碼率大大降低。
FPGA;LVDS;通信測試;校驗協議;高速穩定;誤碼率
對于一些復雜的系統,由于功能或機構的限制,單片FPGA難以實現全部功能[1]。在多片FPGA協同工作情況下,如何提高FPGA片間高速通信的穩定性逐漸成為這一領域的研究熱點。傳統的并行總線因占用資源多,噪聲高等缺點,在高速數據傳輸領域已逐漸被淘汰。目前對于Xilinx 7系列FPGA而言,片間高速通信主要有兩種方案。一種是通過GT系列串行高速收發器來實現,根據FPGA種類不同分為GTP、GTX、GTH、GTZ。其中線速率最低的GTP可以支持6.6Gb/s。雖然此方案傳輸速率高,但由于每片FPGA的串行高速收發器數量有限,且高速傳輸對于PCB布局布線提出了很高的要求,因此存在一定的局限性。另一種方案是通過LVDS技術來實現[2]。該技術具有線速率高、抑制共模噪聲、低功耗、抗干擾能力強等優點[3]。且通過配置BANK電壓,可使FPGA提供大量支持LVDS標準的接口,吞吐率可達Gb/s級,因此該方案具有更加廣闊的應用前景[4]。
本文提出了一種提高LVDS通信穩定性的校驗協議,基于兩片Xilinx FPGA平臺搭建多路LVDS通信測試系統,并在不同溫度條件下測試系統的誤碼率[5]。
本文分別利用兩片Xilinx公司的Kintex-7和Artix-7 FPGA作為數據處理中心,通過9對LVDS信號線進行片間通信,如圖1所示。

圖1 片間通信測試系統組成框圖
程序測試主要分3步。第一步通過圖1中的Clock Channel進行同步時鐘,其中涉及到差分信號和單端信號的轉換以及時鐘分頻倍頻;第二步通過Data Channel進行雙向數據校驗,其中涉及到串并轉換、bit位對齊、Byte位對齊、通道對齊。因為每個通道經過串并轉換都可以收發8bit數據,共有8個數據通道,所以Data Channel是64bit;最后進行單向數據傳輸,測試系統誤碼率。
系統硬件包括3部分,分別是K7 FPGA核心板、通信底板、A7 FPGA核心板。硬件測試平臺實物如圖2所示。為了保證片間通信的穩定性,在繪制PCB時,布線方面要保證9組數據通道等長,且使用圓弧走線;在布局方面,要避開電源等強電磁干擾,且保證對應IO口間距盡量短。
兩片FPGA的主時鐘屬于非同源時鐘,存在一定的相位差,因此在數據校驗和通信之前,必須先進行同步時鐘。
同步時鐘包括發送和接受兩部分。首先要通過K7的MMCM(mixed-mod clock manager)IP核分頻生成20MHz的同步時鐘,然后經過OBUFDS轉換成差分時鐘輸出[6]。同步時鐘的作用只是對齊兩片FPGA時鐘的相位,因此頻率無需過高,這有利于提高片間傳輸的穩定性。

圖2 硬件測試平臺
如圖3所示,LVDS信號電平標準為2.5V,周期為50ns[7]。因此在硬件方面,需要在試驗開始前更改FPGA對應BANK的供電電壓,以改變FPGA IO口的電平標準;在程序方面,需要通過XDC文件配置輸出IO口模式為LVDS_25模式。

圖3 差分信號波形圖
該差分信號需經過電磁環境復雜的底板傳輸后才能到達A7,如果時鐘頻率過高,PCB的布局布線不能滿足高速信號的嚴格要求,就會導致誤碼。這也說明了采用多路LVDS信號傳輸比少量GT高速串行收發器傳輸的可靠性和適應性更好。
A7 FPGA接收到差分時鐘后,首先利用IBUFDS對輸入信號進行輸入緩沖和差分轉單端處理,以去除共模噪聲的影響[8]。該時鐘將作為接收端的系統主時鐘使用,因此還需進入BUFG進行全局緩沖。然后利用MMCM對20MHz的同步時鐘進行倍頻,得到600MHz的串行時鐘SCLK和150MHz的并行時鐘PCLK,完成同步時鐘。這里需要注意的是FPGA接收時鐘信號時,必須將引腳分配到MRCC(區域時鐘的BUFIO,能驅動相鄰BANK/時鐘域的IO)或SRCC(區域時鐘的BUFIO,能驅動所屬BANK/時鐘域的IO)的I/O口上才可以作為接收端主時鐘使用[9]。
2.2.1 通信原理
兩片FPGA之間通信是雙向的,各通道數據收發原理相同,如圖4所示。

圖4 通信原理框圖
首先由發送端生成8bit測試數據,然后經過DDR(Double Data Rate)模式的OSERDESE2(并串轉換器)把并行數據轉成串行數據,最后用OBUFDS把單端信號轉成差分信號輸出[10]。這里需要給OSERDESE2提供并行時鐘PCLK_TX和串行時鐘SCLK_TX,這兩個時鐘分別接CLKDIV和CLK端口[11]。
差分信號經過底板傳輸后,由另一片FPGA的IBUFDS接收,并把差分信號轉成單端信號。數據經過轉換后需要進行三步對齊,如圖5所示。

圖5 數據對齊流程圖
首先通過IDELAYE2進行bit位對齊,然后通過ISERDESE2進行串并轉換和Byte位對齊,最后進行通道對齊,直至還原出各通道的8bit測試數據。在LVDS信號傳輸過程中,雖然可以消除共模噪聲,但數字信號的抖動無法避免,如圖6所示。
從頻域的角度分析,抖動頻譜的中心就是信號的工作頻率,其符合高斯分布。不是中心頻率的信號,被稱為相位噪聲。抖動和相位噪聲本質相同,分別是時域和頻域分析的結果。

圖6 信號在時間域抖動特性
正弦波輸出信號可以用如下公式表示:
()=[0+()]sin[2p0+()] (1)
式中:0為電壓最大值;()為振幅噪聲;0為工作頻率;()為相位噪聲。在理想情況下,()和()均為0。但振蕩器并不理想,相位噪聲不能忽略。因此得到下面公式:

當=2p,則sin()=0,此時公式(2)可以表示為:

所以抖動與周期的關系可以通過如下公式表示:

因此頻率越高,抖動越大。當利用時鐘信號采集串行數據時,就可能出現亞穩態。所以對串行數據進行相位調節是必要的。
另外在PCB布線時會出現數據線之間不等長的情況,或受外界溫度變化的影響,從而在接收端產生相位差。因此無法準確地根據接收端的時鐘沿采集到正確的串行數據。
本文采用IDELAYE2對串行數據進行相位調節,實現bit位對齊,以防止亞穩態的發生,保證采集到正確的bit,如圖7所示。

圖7 Bit位對齊時序圖
圖7中DDR Clock為接收端倍頻后的串行時鐘。因為采用DDR模式,因此串行時鐘的每個跳邊沿都應該和一個串行數據對齊。IDELAYE2可以不斷調整串行數據的相位,最終使時鐘跳變沿剛好對齊數據中心。
調整過程主要包括兩個環節。首先向右不斷調整IDELAYE2的tap值,使其出現tap1的情況。一旦出現此情況,則說明發生了亞穩態,這將導致后續Byte位對齊失敗,記錄此時的延遲值tap1;然后向左對數據通道不斷調整,直至出現tap5的情況,此時再次出現Byte位對齊失敗,記錄此時的延時值tap5。最后取tap1和tap5的中值,即tap3作為該數據通道的最理想延時值,進而完成bit位對齊。時鐘沿和數據通道中心對齊將會保證采集到最穩定的數據。
此處注意IDELAYE2需要IDELAYCTRL提供延時分辨率[12]。因為給IDELAYCTRL的參考時鐘REFCLK是200MHz,根據如下公式可得IDELAYE2的延時分辨率為78.125ps:

式中:(REFCLK)為參考時鐘的頻率;tap為調節延遲分辨率。其中參考時鐘需要由同步時鐘倍頻而來,以保證時鐘同源。一共有32個調節梯度可以選擇,所以通過IDELAYE2最多可以將bit位延遲2.5ns。另外,IDELAYE2一旦使用,將引入固定的基礎延遲0.6ns。
上述方法是通過調節數據通道的相位關系來解決信號抖動問題的。但在實際應用中,在保證硬件各信號通道嚴格等長的情況下,各數據通道相位相差不大,此時可調節串行時鐘相位。因為發送端的時鐘和數據相位關系如圖7中的tap1,而在接收端需要調節成tap3。那么此時只需要將接收端的串行時鐘通過MMCM延遲90°,使跳邊沿能采集到正確穩定的數據,避免亞穩態的產生。
進行Byte位對齊,首先需通過ISERDESE2(專用解串器)把串行信號轉成并行信號,重新組成 8bit的并行數據。
圖8為DDR模式下的Byte位對齊過程。只要采集到的并行數據和測試數據不同,則繼續拉高Bitslip,并進行對齊失敗計數。每次Bitslip拉高,都會對并行數據的bit順序進行調整[13]。如果連續7次對齊失敗,則說明bit位對齊失敗,返回IDELAYE2?;诖嗽?,需經過多次調整,最終完成字節對齊。另外還需要為ISERDESE2提供并行時鐘PCLK_RX和串行時鐘SCLK_RX。
待各通道Byte位均對齊成功后,將得到4路并行數據。最后進行通道對齊,不斷調整4路8bit的數據順序,將其拼接成32bit的并行數據。如果此數據和測試數據相同,則說明數據對齊成功。

圖8 Byte位對齊時序圖
2.2.2 校驗協議
基于上述原理,在常規的LVDS通信之前,需進行片間雙向校驗。校驗流程如圖9所示。

圖9 雙向校驗示意圖
同步時鐘后,兩片FPGA的8個數據通道進行數據對齊。首先K7 FPGA的前4路會發送32bit的Test Data 1,A7 FPGA的前4路接收并進行對齊。如果對齊失敗,將繼續進行數據對齊;如果對齊成功,則說明A7前4路接收數據正常,將前4路的rx_locked拉高。然后通過后4路發送Test Data 2,K7的后4路接收并對齊。
如果K7的后4路對齊失敗,將繼續進行數據對齊;如果對齊成功,則說明K7的前4路發送正常,后4路接收正常,將前4路的tx_ready和后4路的rx_locked拉高。然后通過前4路發送Test Data 2,A7的前4路接收并對齊。
此時可直接使用第一輪校驗的對齊策略來對齊Test Data 2。A7接收到Test Data 2后,則說明其后4路發送正常,將其后4路的tx_ready拉高。校驗完成。
通過上述3輪數據對齊,完成一輪閉環校驗,如圖10所示。該校驗協議保證了K7端前4路發送正常,后4路接收正常,A7端前4路接收正常,后4路發送正常。從而保證兩個終端之間雙向8路通信正常。進而確保后續穩定的數據通信,以達到降低誤碼率的目的。

圖10 閉環校驗示意圖
經過校驗后,K7和A7兩片FPGA的tx_ready和rx_locked都會拉高。隨后進入數據通信階段,8路數據通道開始傳輸數據,誤碼率測試方案如圖11所示。

圖11 通信測試數據傳輸方案
PRBS(Pseudorandom binary sequence)被稱作偽隨機碼,常用于高速串行通信的誤碼率測試。其碼型由多項式確定,周期性重復。本文將借助偽隨機碼來測試誤碼率。
設計使用K7產生64bit的偽隨機碼,然后分成8路通過LVDS的方式發送出去。由A7的8個數據通道接收并拼接數據,把拼接后的64bit數據輸入PRBS檢測模塊,該模塊將輸出誤碼累計個數。為了方便實驗統計,還在A7端還加入了計時模塊Timer。
因為溫度的變化會影響數據傳輸的穩定性,導致出現亞穩態,使Byte位對齊失敗。所以基于此方案,對測試系統進行高低溫試驗,以檢測溫度變化對片間通信誤碼率的影響。
本試驗基于Vivado平臺完成。串行時鐘為600MHz,并行時鐘為150MHz,板間同步時鐘為20MHz[14]。
為了直觀地統計測試結果,在A7端利用ChipScope對error_cnt進行實時觀察。圖12給出了系統在20℃環境下持續1h的測試截圖。
圖12中rx_locked和tx_ready均已拉高,說明系統已經過校驗。prbs_data_r是A7端8個通道拼接而成的64bit數據,把該數據輸入到PRBS校驗模塊PRBS_CHECK,此模塊輸出的誤碼個數為error_cnt_r。hour_r、min_r、sec_r分別為小時、分鐘、秒。為利用ChipScope觸發hour_r為1的時刻。實驗持續測試1h,在20℃環境下未出現誤碼。
本試驗在-30℃~50℃之間每隔10℃進行一組測試,最終得到9組測試結果,如表1所示。結果表明,在各溫度下測試該通信系統,均未出現誤碼。
因為并行時鐘是150MHz,每檢測一個并行數據需要6.7ns,所以1h測試期間共檢測5.4×1011個數據。如果出現1個誤碼,經計算得出誤碼率為1.9×10-12。因此可以推斷,在不同溫度條件下,經過校驗的FPGA片間通信誤碼率低于1.9×10-12。

圖12 A7端ChipScope在線測試圖

表1 不同溫度下FPGA片間通信誤碼率測試結果
本文基于LVDS技術,設計了一種FPGA片間通信校驗協議。在常規的LVDS通信之前,經過多通道多輪校驗,完成多通道數據對齊,補償由于PCB布線和其他外界因素所帶來的各路間的延遲。該校驗協議有效防止了亞穩態的產生和數據丟失,從而保證后續雙向通信穩定進行。試驗結果證明,本校驗協議可以有效降低誤碼率,提高通信的穩定性。下一步可以完善校驗協議,對影響片間通信穩定性的其他外界因素進行試驗,進一步降低誤碼率。
[1] FANG J, DAI S. Design of multi-channel intelligent transmitter based on HART protocol[J]., 2011, 30(20): 23-25.
[2] HOU Q L, XU K J, FANG M, et al. A DSP-based signal processing methd and system for CMF[J]., 2013, 46(7): 2184-2192.
[3] 易敏, 蘇淑靖. 基于LVDS的高可靠性數據傳輸設計[J]. 微電子學與計算機, 2014(9): 131-134.
YI Min, SU Shujing. High Reliability of Data Transmission Design Based on LVDS[J]., 2014(9): 131-134.
[4] 馮曉東, 楊可. 一種基于LVDS接口的高速并行數據傳輸系統設計與實現[J]. 數字技術與應用, 2013(6): 64-65.
FENG Xiaodong, YANG Ke. The Design and implementation of one high speed parallel data transfer system based on LVDS[J]., 2013(6): 64-65.
[5] Alkafi A, Imran R, Islam M. Development of FSM based Running Disparity Controlled 8b/10b Encoder/Decoder with Fast Error Detection Mechanism[J]., 2013(2): 2321-1814.
[6] Tseng S.H, Liao Y L. Monolithic power splitter for differential signal[P]. [2011-4-29]. U.S. Patent 13,097,072.
[7] 袁文燕, 鄭玥, 宋宇飛, 等. FPGA片間萬兆可靠通信的設計與實現[J]. 電視技術, 2014(1): 43-46.
YUAN Wenyan, ZHENG Yue, SONG Yufei, et al. Design and Implementation of 10- Gbit/s Reliable Intra- FPGA Communication[J]., 2014(1): 43-46.
[8] Xilinx. 7 Series FPGAs Select lO Resources User Guide[Z]. America: Xilinx Inc, 2018.
[9] WONG A C, Borrelli C J, Jones L, et al. Transceiver for providing a clock signal[P]. [2013-8-8]. U.S. Patent 13,962,468.
[10] 王建東.基于FPGA的高速串行數據采集及恢復技術研究[D].成都: 電子科技大學, 2017.
WANG Jiandong. Research On High Speed Serial Data Acuisition And Recovery Technology Based On FPGA[D]. Chengdu: School of Microelectronics & Solid State Electronics, 2017.
[11] Xilinx. 7 Series FPGAs GTX/GTH Transceivers User Guide [Z]. America: Xilinx Inc, 2018.
[12] Wirthlin MJ, Takai H. Harding. A soft error rate estimations of the Kintex-7 FPGA within the ATLAS Liquid Argon (LAr) Calorimeter [J]., 2014, 9(1): 1-8.
[13] Herrera-Alzu I,Lopez-Vallejo M. Design Techniques for Xilinx Virtex FPGA Configuration Memory Scrubbers[J]., 2013, 60(1): 376-385.
[14] Xilinx. Vivado Design Suite 7 Series FPGA and Zynq-7000 All Programmable SoC Libraries Guide [Z]. America: Xilinx Inc, 2017.
Verification Protocol for Improving Communication Stability Between FPGAs
CHI Linhui,QIAN Yunsheng,JI Yuhao
(Nanjing University of Science and Technology School of Electronic and Optical Engineering, Nanjing 210094, China)
As field-programmable gate arrays(FPGAs) become increasingly used in large-scale systems, it is often difficult for a single-chip FPGA to perform all the tasks required. High-speed and stable communication between multiple FPGAs has become a focus of research in this field. For this purpose, a verification protocol based on low-voltage differential signaling (LVDS) that can be used for high-speed and stable communication between FPGA chips was designed. This protocol performs multiple rounds of multipath verification based on conventional LVDS communication to improve transmission reliability. Based on this protocol, a nine-channel LVDS communication test system consisting of two Xilinx 7 series FPGAs was built. One channel was used to synchronize the clock, and the other eight channels were used for checksum communication. After a long period of high- and low-temperature tests, the bit error rate was greatly reduced compared with conventional LVDS communications while ensuring a single transmission rate of 1.2Gb/s.
FPGA, LVDS, communication test, verification protocol, high speed and stability, bit error rate
TN223
A
1001-8891(2020)11-1022-02
2020-07-03;
2020-11-02.
池林輝(1996-),男,碩士研究生,主要從事光電成像科研工作。E-mail:chilinhui6@163.com。
錢蕓生(1968-),男,教授,博士生導師。主要從事光電測試、圖像處理和仿真等工作。E-mail:yshqian@mail.njust.edu.cn。
省部級基金項目(61424120504162412001)。