韓 琦 葛 飛 梁圣杰 張之卓
北京航天自動(dòng)控制研究所,北京100854
在數(shù)字中頻接收機(jī)中,為適應(yīng)電子設(shè)備小型化、低功耗設(shè)計(jì)且具有較寬的頻帶覆蓋和較高靈敏度的需求,系統(tǒng)經(jīng)常使用單片多通道的高速ADC組建多通道采樣處理平臺(tái)。如AD公司的AD9653采樣器為4通道16位125Msps高速同步采樣器,可適用于多通道同步采集系統(tǒng)的設(shè)計(jì),其中芯片接口使用8對(duì)高速串行差分線傳輸采樣數(shù)據(jù),每對(duì)差分線最高傳輸速率高達(dá)1Gbps。在如此高的數(shù)據(jù)傳輸速率情況下,即使保證ADC各通道串行數(shù)據(jù)與隨路采樣時(shí)鐘的走線嚴(yán)格等長,采用傳統(tǒng)的ADC與FPGA數(shù)據(jù)接口互連方式也將無法實(shí)現(xiàn)穩(wěn)定可靠的數(shù)據(jù)接收?;谏鲜鲈?,Xilinx公司在Vertex4系列FPGA之后引入了片同步技術(shù)(ChipSync),通過采用此技術(shù)在FPGA內(nèi)部設(shè)計(jì)同步調(diào)整模塊,可實(shí)現(xiàn)調(diào)節(jié)采樣時(shí)鐘處在數(shù)據(jù)的最佳采樣位置,以保證數(shù)據(jù)采樣的同步性和穩(wěn)定性,從而解決高速ADC和FPGA之間高速數(shù)據(jù)傳輸?shù)膯栴}。
文獻(xiàn)[1-2]提出對(duì)ADC輸入的串行數(shù)據(jù)進(jìn)行延遲調(diào)整以達(dá)到最佳采樣位置的方法,但在ADC進(jìn)入輸出采樣數(shù)據(jù)模式之前,需要事先發(fā)送一連串的訓(xùn)練序列用于對(duì)比判決,以此控制串行數(shù)據(jù)位延遲調(diào)整至采樣時(shí)鐘的最佳采樣位置,而控制輸出發(fā)送訓(xùn)練序列的格式和輸出采樣數(shù)據(jù)之間的模式切換,需要FPGA增加SPI接口的控制邏輯對(duì)ADC進(jìn)行發(fā)送命令來完成,由此增加了FPGA的邏輯復(fù)雜性。
提出了一種在FPGA設(shè)計(jì)中對(duì)ADC輸入的采樣位時(shí)鐘進(jìn)行自適應(yīng)延遲調(diào)整來補(bǔ)償采樣位時(shí)鐘的內(nèi)部走線延時(shí),將采樣時(shí)鐘調(diào)節(jié)至數(shù)據(jù)的最佳采樣位置的方式,不需要對(duì)ADC輸出發(fā)送訓(xùn)練序列模式和輸出采樣數(shù)據(jù)模式的切換控制,去除了FPGA與ADC之間的SPI接口數(shù)據(jù)交互,大大降低了FPGA的設(shè)計(jì)復(fù)雜度,提高了系統(tǒng)可靠性。
本文的四通道高速ADC和FPGA互連結(jié)構(gòu)框圖如圖1所示。其中FPGA采用Xilinx公司的xc7k325t,使用內(nèi)置的SERDES收發(fā)器對(duì)其進(jìn)行高速解串處理。高速ADC采用AD9653,采樣數(shù)據(jù)接口格式為二進(jìn)制補(bǔ)碼格式,采用16Bit DDR,雙通道,1x幀格式逐字節(jié)模式。具體處理過程為:AD9653對(duì)四路模擬信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換,再分別將對(duì)應(yīng)通道采樣得到的16bit數(shù)據(jù)轉(zhuǎn)換為2對(duì)串行差分信號(hào)(例:A通道2對(duì)差分信號(hào)為D0+A/D0-A,D1+A/D1-A),采用源同步的方式連同位時(shí)鐘(DCO+/-)、幀時(shí)鐘(FCO+/-)一起傳輸給FPGA,ADC接口輸出的時(shí)序關(guān)系如圖2所示[3];在FPGA內(nèi)部按照要求使用內(nèi)置的SERDES收發(fā)器完成高速解串、數(shù)據(jù)幀對(duì)齊后得到采樣后的16bit并行數(shù)據(jù)進(jìn)行后續(xù)的數(shù)據(jù)處理。
圖1 四通道高速ADC和FPGA互連結(jié)構(gòu)框圖
圖2 AD9653的輸出時(shí)序圖
通過圖2可知AD9653輸出的位時(shí)鐘DCO+/-與串行數(shù)據(jù)D0+/-、D1+/-,幀時(shí)鐘FCO+/-之間存在固定的相位關(guān)系,只要在硬件設(shè)計(jì)上保證各路信號(hào)的走線等長,該相位關(guān)系即可保證位時(shí)鐘所處相位為最佳采樣點(diǎn)。但是由于位時(shí)鐘DCO作為串行數(shù)據(jù)、幀時(shí)鐘之SERDES收發(fā)器的采樣時(shí)鐘,F(xiàn)PGA內(nèi)部的走線延時(shí)將導(dǎo)致到達(dá)各SERDES收發(fā)器的相位與串行數(shù)據(jù)、幀時(shí)鐘之間的相位關(guān)系發(fā)生變化,此時(shí)通過位時(shí)鐘DCO對(duì)串行數(shù)據(jù)直接采樣,將會(huì)產(chǎn)生誤碼。本文采用基于片同步技術(shù)對(duì)采樣位時(shí)鐘進(jìn)行自適應(yīng)調(diào)整至數(shù)據(jù)的最佳采樣點(diǎn)來可靠準(zhǔn)確地采樣數(shù)據(jù)。
圖3為基于片同步設(shè)計(jì)的FPGA實(shí)現(xiàn)方案,首先通過位時(shí)鐘自適應(yīng)調(diào)整模塊調(diào)節(jié)位時(shí)鐘延遲,使得連接至各ISERDES采樣時(shí)鐘的相位與輸入的DCO+/-一致,此刻采樣點(diǎn)處于串行數(shù)據(jù)位和幀時(shí)鐘的采樣中心,為最佳采樣位置。然后再采用數(shù)據(jù)幀對(duì)齊調(diào)整模塊對(duì)幀時(shí)鐘采樣獲得的并行數(shù)據(jù)進(jìn)行判斷,產(chǎn)生BITSLIP信號(hào)控制各ISERDES進(jìn)行移位操作,直至幀時(shí)鐘采樣輸出期望的并行數(shù)據(jù)后,完成數(shù)據(jù)幀對(duì)齊操作,此時(shí)即完成了各數(shù)據(jù)通道的并行數(shù)據(jù)提取工作。
圖3 片同步設(shè)計(jì)整體方案圖
片同步(ChipSync)是Xilinx公司命名的一種同步技術(shù),其目的是為FPGA提供一個(gè)高速的源同步數(shù)據(jù)總線接口。主要由IODELAY延時(shí)調(diào)整模塊、ISERDES解串模塊、OSDRDES并串轉(zhuǎn)換模塊及時(shí)鐘網(wǎng)絡(luò)組成。本文采用的方法主要通過IDELAY延時(shí)調(diào)整模塊控制精確延時(shí),實(shí)現(xiàn)采樣位時(shí)鐘的動(dòng)態(tài)調(diào)整,確定串行數(shù)據(jù)的最佳采樣位置,然后通過ISERDES解串模塊對(duì)高速串行數(shù)據(jù)進(jìn)行穩(wěn)定可靠的采樣。
IDELAY為內(nèi)嵌32級(jí)每級(jí)78ps的可調(diào)延時(shí)器(IDELAYCTRL的參考時(shí)鐘為200MHz),可通過CE和INC信號(hào)來控制數(shù)據(jù)延時(shí)的增加和減小。
ISERDES為高速解串模塊,支持SDR、DDR兩種采樣模式。在SDR模式下,支持2、3、4、5、6、7、8位寬的串并轉(zhuǎn)換,在DDR模式下,支持4、6、8位寬的串并轉(zhuǎn)換。通過級(jí)聯(lián)可以將串并轉(zhuǎn)換器擴(kuò)展到10位和14位寬。本方法中串行數(shù)據(jù)和幀時(shí)鐘對(duì)應(yīng)的ISERDES選擇1:8的串并轉(zhuǎn)換(DDR模式)。同時(shí)ISERDES的BITSLIP信號(hào)負(fù)責(zé)對(duì)ISERDES的接收數(shù)據(jù)進(jìn)行移位操作,用于數(shù)據(jù)位順序的調(diào)整。
由于數(shù)據(jù)位采樣為DDR上下沿采樣模式,故位時(shí)鐘自適應(yīng)調(diào)整的過程只需要將連接至串行數(shù)據(jù)位和幀時(shí)鐘的采樣時(shí)鐘,通過IDELAY延時(shí)模塊實(shí)時(shí)調(diào)整至位時(shí)鐘DCO的跳變沿即可保證ISERDES的采樣時(shí)鐘與數(shù)據(jù)的相位關(guān)系與輸入一致,如圖4所示。位時(shí)鐘延遲自適應(yīng)調(diào)整的處理方法是:
圖4 位時(shí)鐘延遲自適應(yīng)調(diào)整原理框圖
將差分轉(zhuǎn)單端后的位時(shí)鐘DCO連接IDELAY延時(shí)調(diào)整模塊進(jìn)行相應(yīng)級(jí)數(shù)的延遲,調(diào)節(jié)級(jí)數(shù)由位時(shí)鐘相位對(duì)齊判斷控制輸出CE和INC信號(hào)進(jìn)行控制。
將IDELAY輸出的延時(shí)時(shí)鐘IntBitClk分別經(jīng)過BUFIO和BUFR(分頻參數(shù)為4)驅(qū)動(dòng)作為ISERDES的采樣時(shí)鐘CLK和四分頻時(shí)鐘CLKDIV。其中BUFIO為IO時(shí)鐘驅(qū)動(dòng),BUFR為區(qū)域時(shí)鐘驅(qū)動(dòng),四分頻時(shí)鐘CLKDIV為并行化數(shù)據(jù)的速度。
將差分轉(zhuǎn)單端后的位時(shí)鐘DCO作為串行數(shù)據(jù)提供給ISERDES進(jìn)行采樣,采樣時(shí)鐘為經(jīng)過延時(shí)處理和BUFIO驅(qū)動(dòng)后的同頻時(shí)鐘,位時(shí)鐘對(duì)應(yīng)的ISERDES選擇1:8的串并轉(zhuǎn)換(SDR模式)。
位時(shí)鐘相位對(duì)齊判斷控制負(fù)責(zé)對(duì)ISERDES的并行數(shù)據(jù)(Q1~Q8)進(jìn)行判斷,尋找位時(shí)鐘的跳變沿。處理流程如圖5所示。
圖5 位時(shí)鐘相位對(duì)齊判斷控制處理流程圖
位時(shí)鐘跳變沿的判斷依據(jù)為ISERDES上一次采樣的并行數(shù)據(jù)和當(dāng)前并行數(shù)據(jù)結(jié)果不一致,則當(dāng)前設(shè)置的IDELAY延遲采樣時(shí)鐘與輸入的位時(shí)鐘跳變沿對(duì)齊。通過IDELAY延時(shí)調(diào)整補(bǔ)償了FPGA內(nèi)部位時(shí)鐘的走線延時(shí),使之與AD9653輸出數(shù)據(jù)相位關(guān)系保持一致,保證了采樣時(shí)鐘處于數(shù)據(jù)采樣窗口的最佳位置。另外IDELAY的延遲級(jí)數(shù)為32,需要對(duì)延遲級(jí)數(shù)是否溢出進(jìn)行判斷,當(dāng)延時(shí)級(jí)數(shù)超過32時(shí)表明由于位時(shí)鐘跳變沿速率不高,IDELAY在整個(gè)延遲周期都無法找到位時(shí)鐘的跳變沿,此時(shí)跳變沿判定失敗。
位時(shí)鐘延時(shí)自適應(yīng)調(diào)整負(fù)責(zé)完成串行數(shù)據(jù)和幀時(shí)鐘的ISERDES采樣位時(shí)鐘與輸入位時(shí)鐘相位對(duì)齊,但只能保證串行數(shù)據(jù)被位時(shí)鐘正確采樣,而串并轉(zhuǎn)換后的并行數(shù)據(jù)順序不確定,將有8個(gè)組合。為了得到正確順序下的并行數(shù)據(jù)流,需要進(jìn)行數(shù)據(jù)幀對(duì)齊調(diào)整。數(shù)據(jù)幀對(duì)齊調(diào)整采用對(duì)幀時(shí)鐘ISERDES采樣并行數(shù)據(jù)進(jìn)行判斷,通過調(diào)整串行數(shù)據(jù)和幀時(shí)鐘ISERDES的BITSLIP,當(dāng)幀時(shí)鐘ISERDES采樣得到的并行數(shù)據(jù)與期望的數(shù)字序列“00001111”相同時(shí),表明此時(shí)數(shù)據(jù)幀輸出順序正確,即完成了數(shù)據(jù)幀對(duì)齊工作,否則產(chǎn)生一個(gè)并行化數(shù)據(jù)時(shí)鐘寬度的BITSLIP控制ISERDES的移位操作,進(jìn)行下一次的判斷操作。
高速接口的FPGA程序是在Xilinx ISE14.7編譯環(huán)境下實(shí)現(xiàn)的,通過編寫測試激勵(lì)文件在Questa Sim 10.0a軟件下進(jìn)行了仿真。如圖6所示。經(jīng)過3146ns,通過IDELAY延時(shí)模塊18級(jí)延時(shí)調(diào)整后,ISERDES輸出的并行數(shù)據(jù)發(fā)生變化,采樣位時(shí)鐘DcoClk_MonClkOut與端口輸入位時(shí)鐘DcoClk的相位差由0.6ns減小到0.004ns,實(shí)現(xiàn)了位時(shí)鐘的自適應(yīng)對(duì)準(zhǔn)。其中,CNTVALUEOUT為IDELAY延時(shí)模塊的延時(shí)階數(shù);ClkCtrlOut為ISERDES采樣得到的并行數(shù)據(jù)。
圖6 采樣位時(shí)鐘相位調(diào)整驗(yàn)證仿真圖
使用信號(hào)發(fā)生器產(chǎn)生正弦信號(hào)進(jìn)行板級(jí)測試,采樣頻率為125MHz,雙線傳輸,單通道數(shù)據(jù)率為2Gb/s(125M*16bit)。使用ChipScope工具抓取位時(shí)鐘的自適應(yīng)對(duì)準(zhǔn)過程和采樣后的并行數(shù)據(jù)結(jié)果。
位時(shí)鐘的自適應(yīng)對(duì)準(zhǔn)過程板級(jí)測試圖如圖7所示,在IDELAY延時(shí)模塊完成4級(jí)延時(shí)調(diào)整后(CNTVALUEOUT為x“04”),位時(shí)鐘DCO采樣ISERDES輸出的并行數(shù)據(jù)值ClkCtrlOut發(fā)生跳變(由x“FF”變?yōu)閤“C0”,最后為x“00”),此時(shí)位時(shí)鐘完成自適應(yīng)對(duì)準(zhǔn),IDELAY延時(shí)模塊固定在4級(jí)延時(shí)值上,開始進(jìn)行后面的數(shù)據(jù)幀對(duì)齊調(diào)整和中頻采樣數(shù)據(jù)工作。
圖7 位時(shí)鐘的自適應(yīng)對(duì)準(zhǔn)過程板級(jí)測試圖
圖8為完成數(shù)據(jù)幀對(duì)齊調(diào)整對(duì)準(zhǔn)后對(duì)正弦信號(hào)的實(shí)時(shí)采樣數(shù)據(jù)波形圖,橫坐標(biāo)為采樣點(diǎn)數(shù),縱坐標(biāo)為數(shù)值。輸入波形與輸出波形一致,完成了對(duì)本文采用方法的正確性驗(yàn)證。
圖8 采樣數(shù)據(jù)波形圖
針對(duì)多通道的高速ADC與FPGA互連傳輸?shù)囊?,本文提出通過FPGA的片同步技術(shù)對(duì)位時(shí)鐘延時(shí)進(jìn)行自適應(yīng)調(diào)整來解決FPGA內(nèi)部走線延時(shí)帶來的數(shù)據(jù)高速采樣不穩(wěn)定問題,與通過對(duì)數(shù)據(jù)位進(jìn)行延遲調(diào)整的方式,降低了FPGA的邏輯復(fù)雜度。測試結(jié)果表明該方法可滿足高速數(shù)據(jù)傳輸?shù)囊?,已在?shí)際工程中得以應(yīng)用。該方法也可作為其他點(diǎn)對(duì)點(diǎn)高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)的參考。
參 考 文 獻(xiàn)
[1] 顧峰, 呂余清. 應(yīng)用源同步技術(shù)實(shí)現(xiàn)高速ADC與FPGA互連[J].電子技術(shù), 2016,10:30-33.(Gu Feng, Lv Yuqing. Implementing High-speed ADC and FPGA Communication Based on Source Synchronization Technology [J]. Electronic Technology, 2016,10:30-33.)
[2] 屈超. 多通道ADC的高速接口設(shè)計(jì)[J].無線電通信技術(shù), 2013,39(3):76-78.(Qu Chao. Design on Multichannel ADC High-speed Interface[J]. Radio Communications Technology, 2013,39(3):76-78.)
[3] Analog Devices. AD9653[EB/OL]. http://www.analog.com/media/en/technical-documentation/data-sheets/AD9653.pdf.
[4] Xilinx,7 Series FPGAs SelectIO Resources User Guide[EB/OL]. http://www.xilinx.com/support/documentation/user_guides/ug471.pdf.