饒嘉成 黃明 汪弈舟 楊富華 馬棟梁
摘 ? 要: 隨著高速AD在電子測(cè)量、寬帶通信等領(lǐng)域的廣泛應(yīng)用,F(xiàn)PGA與高速AD的接口設(shè)計(jì)成為關(guān)鍵和難點(diǎn),其性能影響應(yīng)用功能的實(shí)現(xiàn)。基于FPGA驅(qū)動(dòng),實(shí)現(xiàn)了LVDS并行ADC配置方案以及時(shí)鐘數(shù)據(jù)的時(shí)序同步;采用Xilinx XC7A200T芯片和HMCAD1520 AD芯片,實(shí)現(xiàn)了250 Msps×14 Bit×2通道的采集設(shè)計(jì)。邏輯仿真結(jié)果驗(yàn)證了設(shè)計(jì)的合理性,實(shí)際板卡測(cè)試正確。該系統(tǒng)接口邏輯簡(jiǎn)單,通用擴(kuò)展性強(qiáng),可為并行LVDS驅(qū)動(dòng)高速AD數(shù)據(jù)采集設(shè)計(jì)提供有效可行的參考。
關(guān)鍵詞: 高速AD;數(shù)據(jù)時(shí)鐘同步;LVDS;FPGA;數(shù)據(jù)采集
中圖分類(lèi)號(hào):TP311 ? ?文獻(xiàn)標(biāo)識(shí)碼:A ? ?文章編號(hào):2095-8412 (2020) 04-058-05
工業(yè)技術(shù)創(chuàng)新 URL: http://gyjs.cbpt.cnki.net ? ?DOI: 10.14103/j.issn.2095-8412.2020.04.011
引言
隨著數(shù)字化、網(wǎng)絡(luò)化、智能化技術(shù)的發(fā)展,采集技術(shù)的準(zhǔn)確性和高效性越來(lái)越成為信息真實(shí)性的保障。當(dāng)前數(shù)據(jù)采集系統(tǒng)在科學(xué)研究、工業(yè)信息化系統(tǒng)、網(wǎng)絡(luò)技術(shù)等領(lǐng)域得到了廣泛應(yīng)用,對(duì)AD轉(zhuǎn)換高精度和實(shí)時(shí)性提出的要求也越來(lái)越高。
伴隨著FPGA技術(shù)的不斷發(fā)展,基于FPGA的器件在頻率、速度、效率和邏輯控制能力方面開(kāi)始具有其他器件無(wú)法比擬的優(yōu)點(diǎn)[1]。為了獲得更高的采樣精度、速率和帶寬,選擇FPGA來(lái)驅(qū)動(dòng)高速AD板卡成為主流,其更有利于數(shù)據(jù)前端處理及后續(xù)的高速數(shù)字信號(hào)處理。
本文首先介紹一款典型的用于模數(shù)轉(zhuǎn)換芯片(ADC)初始化、功能參數(shù)配置的LVDS輸出模式,實(shí)現(xiàn)了上電SPI接口自動(dòng)配置;其次通過(guò)發(fā)送時(shí)序信號(hào)驗(yàn)證配置結(jié)果;最后用Chipscope抓取在線(xiàn)數(shù)據(jù),驗(yàn)證IDDR接收數(shù)據(jù)正確性。通過(guò)FPGA內(nèi)部的邏輯塊和自帶原語(yǔ)調(diào)節(jié)數(shù)據(jù)時(shí)鐘相位使其符合同步及數(shù)據(jù)最優(yōu)提取時(shí)序關(guān)系,輸入測(cè)試信號(hào),采集觀察波形和頻率,進(jìn)行同步驗(yàn)證。
1 ?系統(tǒng)方案設(shè)計(jì)
本文實(shí)現(xiàn)的數(shù)據(jù)采集以Xilinx XC7A200T為主要的邏輯控制芯片,采用自頂向下的設(shè)計(jì)方法,通過(guò)FPGA對(duì)ADC HMCAD1520實(shí)現(xiàn)了配置控制,并實(shí)現(xiàn)了時(shí)鐘和數(shù)據(jù)同步,完成了高速、高精度、高穩(wěn)定性的數(shù)據(jù)采集。
系統(tǒng)硬件工作原理:以經(jīng)過(guò)調(diào)理電路的模擬信號(hào)作為輸入,Xilinx XC7A200T芯片完成對(duì)信號(hào)的模數(shù)轉(zhuǎn)換,并將轉(zhuǎn)化后的數(shù)字信號(hào)輸出到FPGA,F(xiàn)PGA可進(jìn)行后續(xù)信號(hào)處理操作。
Xilinx XC7A200T芯片擁有內(nèi)部寄存器,用于功能參數(shù)配置,例如輸入通道數(shù)、有效輸入通道,以及輸出的數(shù)據(jù)格式和位數(shù)等。本文在FPGA設(shè)計(jì)中實(shí)現(xiàn)了SPI接口的自動(dòng)配置模塊,根據(jù)數(shù)據(jù)采樣需求對(duì)HMCAD1520芯片進(jìn)行正確的初始化配置。
對(duì)于正常高速AD采集的有效數(shù)據(jù),其特點(diǎn)是數(shù)據(jù)量大、速率高,因此在FPGA中設(shè)計(jì)高速數(shù)據(jù)接口模塊,并實(shí)現(xiàn)數(shù)據(jù)時(shí)鐘的同步校準(zhǔn),以避免亞穩(wěn)態(tài)甚至錯(cuò)誤數(shù)據(jù)的產(chǎn)生[2]。該模塊使用了Xilinx內(nèi)部自帶DDR及信號(hào)延時(shí)調(diào)節(jié)IP原語(yǔ)進(jìn)行設(shè)計(jì),同步模塊對(duì)位時(shí)鐘和數(shù)據(jù)的建立時(shí)間和保持時(shí)間進(jìn)行調(diào)整,用來(lái)保證得到準(zhǔn)確有效的采樣數(shù)據(jù),從而實(shí)現(xiàn)了250 Msps×14 Bit×2通道的穩(wěn)定數(shù)據(jù)傳輸??傮w實(shí)現(xiàn)方案框架如圖1所示。
ADC模塊依據(jù)外部時(shí)鐘將模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào),配置模塊可確保ADC處于正常工作狀態(tài)。同步校準(zhǔn)模塊可確保數(shù)據(jù)與時(shí)鐘進(jìn)入FPGA時(shí),相位關(guān)系符合提取的要求,從而經(jīng)過(guò)數(shù)據(jù)提取模塊顯示結(jié)果。
2 ?ADC芯片配置詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)
為確保HMCAD1520能夠正常工作,生成有效時(shí)鐘和數(shù)據(jù),ADC芯片正常工作前須先正確完成配置。本章對(duì)HMCAD1520芯片的配置詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行說(shuō)明,包括對(duì)AD芯片的初始化、對(duì)SPI配置接口的說(shuō)明以及對(duì)芯片內(nèi)寄存器配置的說(shuō)明。
2.1 ?AD芯片配置接口
系統(tǒng)正常工作的前提是芯片正確初始化,使得芯片處于已知的狀態(tài)。本芯片特殊之處在于,作為HMCAD1520上電序列的一部分,必須應(yīng)用復(fù)位和掉電周期才能確保芯片初始化正確。
芯片的具體功能由寄存器內(nèi)容實(shí)現(xiàn),需要對(duì)寄存器進(jìn)行配置。訪(fǎng)問(wèn)HMCAD1520的寄存器接口的串行接口由SDATA(串行接口數(shù)據(jù))、SCLK(串行接口時(shí)鐘)和CSN(片選,低電平有效)引腳組成。當(dāng)CSN設(shè)為低電平時(shí),串行數(shù)據(jù)移入芯片,在SCLK的每個(gè)上升沿,鎖存SDATA上存在的值,每24個(gè)上升沿載入寄存器,前8位是寄存器地址,其余16位是寄存器數(shù)據(jù)。
為了保證數(shù)據(jù)發(fā)送正確有效,具體的串行端口接口時(shí)序應(yīng)滿(mǎn)足圖2關(guān)系[3]。ADC芯片的完整配置流程在各步驟間只存在一個(gè)時(shí)間上的順序關(guān)系,各管腳和各寄存器的值之間互不相關(guān),故可以把每個(gè)步驟看作一個(gè)狀態(tài)內(nèi)的操作,而時(shí)間上的順序可以看作狀態(tài)間的轉(zhuǎn)移,然后采用有限狀態(tài)機(jī)(FSM)來(lái)實(shí)現(xiàn)。
有限狀態(tài)機(jī)流程如圖3所示。首先對(duì)RESETN引腳施加最短20 ns的低脈沖應(yīng)用復(fù)位,接著將寄存器中PD引腳拉高或利用SPI命令0x0F 0x0200實(shí)現(xiàn)掉電循環(huán),然后使用SPI命令實(shí)現(xiàn)14位LVDS輸出模式,PD引腳拉低設(shè)置活動(dòng)模式,最后SPI命令選擇雙通道模擬輸入。
2.2 ?AD配置實(shí)現(xiàn)及驗(yàn)證
ADC芯片的正常工作是整個(gè)驅(qū)動(dòng)得以完成的前提,所以系統(tǒng)有必要首先驗(yàn)證ADC是否完成。正確的配置信號(hào)是由FPGA發(fā)送、ADC接收,最終使得ADC得到正確的響應(yīng)。
FPGA配置時(shí)序在線(xiàn)調(diào)試狀態(tài)如圖4所示,主要通過(guò)判斷FPGA發(fā)送的時(shí)序信號(hào)是否正確、ADC采集驗(yàn)證是否響應(yīng)正確、從FPGA中發(fā)送出來(lái)的SPI配置信號(hào)是否正確。以上可以通過(guò)代碼的行為級(jí)仿真確定,該仿真能很好地模擬發(fā)送出來(lái)的信號(hào)ADC是否響應(yīng)正確,可以根據(jù)具體的配置功能是否得以實(shí)現(xiàn)來(lái)驗(yàn)證。譬如,通道數(shù)和有效位數(shù)會(huì)影響位時(shí)鐘頻率,所以可以測(cè)量位時(shí)鐘頻率來(lái)進(jìn)行側(cè)面驗(yàn)證。若該仿真中配置信號(hào)不符合預(yù)期,就必須要返回頂層文件重新修改代碼,直至邏輯正確。
3 ?位時(shí)鐘同步設(shè)計(jì)與實(shí)現(xiàn)
當(dāng)AD芯片已處于正常的工作狀態(tài)時(shí),若傳輸中時(shí)鐘線(xiàn)與數(shù)據(jù)線(xiàn)觸發(fā)器的延時(shí)ts和th不恰當(dāng),可能會(huì)產(chǎn)生亞穩(wěn)態(tài)[4]。為正確提取有效數(shù)據(jù),須先保證數(shù)據(jù)信號(hào)有足夠的建立時(shí)間和保持時(shí)間,于是本章設(shè)計(jì)位時(shí)鐘同步模塊,來(lái)保證這個(gè)正確的相位關(guān)系。
3.1 ?時(shí)鐘與數(shù)據(jù)的位同步調(diào)整
由于時(shí)序單元寄存器需要考慮數(shù)據(jù)的建立時(shí)間和保持時(shí)間,所以ADC芯片通常會(huì)發(fā)送一個(gè)標(biāo)準(zhǔn)的相位關(guān)系,來(lái)保證數(shù)據(jù)的建立時(shí)間和保持時(shí)間。本文中的ADC芯片確保位時(shí)鐘默認(rèn)位于有效數(shù)據(jù)眼的中間,且位時(shí)鐘相位偏移到數(shù)據(jù)和幀時(shí)鐘信號(hào)90°最佳,如圖5所示。
當(dāng)信號(hào)周期固定時(shí),如果確定了信號(hào)變化的邊沿,理論上該邊沿可以對(duì)齊到周期內(nèi)的任意位置。對(duì)周期的遍歷可以通過(guò)使用可編程延遲單元IP添加或刪減延遲來(lái)實(shí)現(xiàn),在每個(gè)階段對(duì)齊周期開(kāi)始時(shí),減少抽頭的數(shù)量,在每個(gè)步驟測(cè)量寄存器的輸出,然后退回到起始點(diǎn)。當(dāng)延遲時(shí)鐘采樣開(kāi)始于時(shí)鐘兩種狀態(tài)之間的交叉區(qū)域時(shí),由于抖動(dòng)的影響,寄存器總是輸出不同的值。在這種情況下,延遲時(shí)鐘已經(jīng)與原時(shí)鐘相位對(duì)齊,如圖6所示。
Xilinx 7系列的FPGA專(zhuān)門(mén)提供了用于高速時(shí)鐘同步和數(shù)據(jù)接收的邏輯塊,在頂層文件中直接使用原語(yǔ)是推斷這類(lèi)元件邏輯特性的高效方法[5]。本次設(shè)計(jì)用到了ILOGIC塊,以設(shè)計(jì)輸入雙倍數(shù)據(jù)速率的專(zhuān)用寄存器(IDDR)。使用了可編程延遲的IDELAYE2原語(yǔ),且在時(shí)鐘和數(shù)據(jù)信號(hào)進(jìn)入FPGA時(shí)使用了IBUFGDS原語(yǔ),如圖7所示。
來(lái)自ADC的位時(shí)鐘DCLK通過(guò)用于可變模式的IDELAYE2路由到達(dá)BUFR的輸入(見(jiàn)上圖7)。DCLK變?yōu)锽itClk_MonClk(對(duì)齊的DCLK)。DCLK也作為數(shù)據(jù)輸入于IDDR的D輸入端。IDDR的Q1作為數(shù)據(jù)輸入于CONTROL,當(dāng)這個(gè)數(shù)據(jù)處于穩(wěn)定狀態(tài)(一直為0或一直為1)時(shí),通過(guò)遞增或遞減IDELAYE2的節(jié)拍數(shù)量,從IDDR 的CLK中引入或刪除延遲,直至數(shù)據(jù)處于亞穩(wěn)態(tài),此時(shí)象征著內(nèi)部時(shí)鐘與外部時(shí)鐘對(duì)齊。由于當(dāng)外部硬件穩(wěn)定及FPGA邏輯布局布線(xiàn)完成后,電路的延遲已經(jīng)固定,所以通過(guò)遍歷即可確定最合適的單元[6]。
ADC是否響應(yīng)正確可以根據(jù)配置具體功能、驗(yàn)證接收數(shù)據(jù)是否吻合得以驗(yàn)證。譬如,選擇特定的通道數(shù)和有效位數(shù)會(huì)影響位時(shí)鐘頻率,所以可以測(cè)量位時(shí)鐘頻率佐證。
3.2 ?同步驗(yàn)證
在基于FPGA驅(qū)動(dòng)高速AD芯片時(shí),測(cè)試驗(yàn)證必不可少[7]。系統(tǒng)的每個(gè)模塊只有經(jīng)過(guò)了驗(yàn)證,設(shè)計(jì)的方案才具備可信性,這里同時(shí)給出經(jīng)過(guò)驗(yàn)證后的數(shù)據(jù)結(jié)果。
3.2.1 ?同步前處亞穩(wěn)態(tài)判定
主要判斷位時(shí)鐘是否存在且被正確鎖定,通過(guò)連接外部示波器或頻譜儀來(lái)確定[8]。為判斷時(shí)鐘是否實(shí)現(xiàn)了邊沿捕捉,可以發(fā)送特定數(shù)據(jù),通過(guò)查看接收端 IDDR后的數(shù)據(jù)是否穩(wěn)定來(lái)確定。本文中通過(guò)Chipscope進(jìn)行數(shù)據(jù)抓取,來(lái)驗(yàn)證IDDR數(shù)據(jù)是否已處于亞穩(wěn)態(tài)。
提取到的亞穩(wěn)態(tài)數(shù)據(jù)如圖8所示。由于時(shí)鐘與數(shù)據(jù)調(diào)用的資源和布局不同,二者在FPGA內(nèi)的路徑也不相同,導(dǎo)致二者在到達(dá)同一寄存器時(shí),相位關(guān)系可能已發(fā)生偏斜。而且亞穩(wěn)態(tài)會(huì)導(dǎo)致信號(hào)接收出現(xiàn)邏輯誤判,觸發(fā)器中出現(xiàn)中間級(jí)電平還會(huì)影響下一級(jí)傳輸,使故障擴(kuò)延[9]。
3.2.2 ?同步后正確結(jié)果判定驗(yàn)證
通過(guò)查看采樣數(shù)據(jù)是否正確來(lái)驗(yàn)證數(shù)據(jù)提取,如圖9所示。由ADC芯片測(cè)試碼的一種已知數(shù)據(jù)模式,例如通過(guò)設(shè)置ADC發(fā)送的遞增序列測(cè)試碼,查看最終數(shù)據(jù)是否完成遞增,即可驗(yàn)證。
3.2.3 ?正常采集測(cè)試
配置ADC,采集模式為250 Msps×14 Bit×2通道工作模式,分別接入正弦波/鋸齒波模擬信號(hào)進(jìn)行雙通道采集,測(cè)試采集波形如圖10所示。
當(dāng)完成上述操作后,從ADC配置到ADC發(fā)送數(shù)據(jù),到數(shù)據(jù)經(jīng)過(guò)路由進(jìn)入FPGA,再到FPGA處理數(shù)據(jù),有效性都得到了保證,只需驗(yàn)證真正的外部信號(hào)輸入時(shí)ADC采樣是否正確,而本實(shí)驗(yàn)通過(guò)觀察采樣后的波形是否失真以及頻率是否準(zhǔn)確而完成了驗(yàn)證。
4 ?結(jié)束語(yǔ)
本文基于LVDS的雙通道250 Msps×14 bit ×2通道實(shí)現(xiàn)了高速AD采集邏輯設(shè)計(jì),邏輯仿真結(jié)果正確且具有接口簡(jiǎn)單、通用性強(qiáng)的優(yōu)點(diǎn),可為并行LVDS驅(qū)動(dòng)高速AD數(shù)據(jù)采集設(shè)計(jì)提供一定的參考。
基金項(xiàng)目
北方工業(yè)大學(xué)信息學(xué)院學(xué)生科技活動(dòng)、北京市大學(xué)生科學(xué)研究與創(chuàng)業(yè)行動(dòng)計(jì)劃項(xiàng)目資助與支持
參考文獻(xiàn)
[1] 劉軒.基于FPGA的多通道高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[D].北京:北京理工大學(xué),2015.
[2] Xilinx. 7 Series FPGAs SelectIO Resources User Guide. UG471[Z]. 2015-09-18.
[3] Analog Devices. “HIGH SPEED MULTI-MODE A/D CONVERTER” HMCAD1520 Datesheet, v04. 1015[Z].
[4] 黃隸凡, 鄭學(xué)仁. FPGA設(shè)計(jì)中的亞穩(wěn)態(tài)研究[J]. 微電子學(xué), 2011, 41(2): 265-268.
[5] Xilinx. 7 Series FPGAs Clocking Resources User Guide. UG472[Z]. 2015-06-12.
[6] Marc Defossez. Serial LVDS High-Speed ADC Interface. [EB/OL]. https://www.xilinx.com/. 2012.
[7] 齊紅濤, 蘇濤. 基于FPGA的高速AD采樣設(shè)計(jì)[J]. 航空兵器, 2010(1): 35-39.
[8] 徐澤琨, 黃明, 汪弈舟, 等. 高速NRZ碼同步時(shí)鐘提取設(shè)計(jì)及FPGA實(shí)現(xiàn)[J]. 工業(yè)技術(shù)創(chuàng)新, 2019, 6(5): 28-33.
[9] 蘇延川, 穆仕博. 多通道高速AD采樣電路設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子質(zhì)量, 2018(2): 11-14.
作者簡(jiǎn)介:
饒嘉成(2000—),通信作者,男,北方工業(yè)大學(xué)2018級(jí)本科生。主要研究方向:數(shù)字信號(hào)處理。
E-mail: 2200656454@qq.com
(收稿日期:2020-07-11)
Parallel High-speed AD Interface Logic Design and Implementation Based on LVDS
RAO Jia-cheng, HUANG Ming, WANG Yi-zhou, YANG Fu-hua, MA Dong-liang
(North China University of Technology, Beijing 100144, China)
Abstract: With the wide application of high-speed AD in the fields including electronic measurement and broadband communication, the interface design of FPGA and high-speed AD has become a key and difficult point, and its performance affects the realization of application functions. Based on the FPGA driver, the LVDS parallel ADC configuration scheme and timing synchronization of clock data are realized. Xilinx XC7A200T chip and HMCAD1520 AD chip are used, so that 250 Msps×14 Bit×2 Channel acquisition design is realized. The logic simulation results verify the rationality of the design, and the actual board test is correct. Such a system has simple interface logic and strong universal scalability, which can provide effective and feasible references for the design of parallel LVDS driven high-speed AD data acquisition.
Key words: High-speed AD; Data Clock Synchronization; LVDS; FPGA; Data Acquisition