文獻標識碼: A
OI:10.16157/j.issn.0258-7998.180772
中文引用格式: 蔣林,衡茜,張春茗,等. 基于3 GS/s 12 bit ADCs的高速串行接口控制層電路的設計與實現[J].電子技術應用,2018,44(8):47-51.
英文引用格式: Jiang Lin,Heng Qian,Zhang Chunming,et al. Design and implementation of high speed serial interface controller circuit for 3 GS/s 12 bit ADCs[J]. Application of Electronic Technique,2018,44(8):47-51.
0 引言
在第五代移動通信中,高性能A/D、D/A轉換器是其發展的核心器件。因此,隨著轉換器分辨率和采樣速率的提高,多路并行數據傳輸不僅增加芯片的引腳設計,還增加板級布線和系統互聯的硬件開銷,直接增加系統成本。而且當數據速率超過1 Gb/s時,低電壓差分信號(Low-Voltage Differential Signaling,LVDS)技術難以滿足轉換器帶寬的需要。因此,用于數據轉換器的高速串行接口正在形成一種趨勢,以支持更高速轉換器、靈活的時鐘以及確定性延遲等日漸嚴苛的要求[1]。
JESD204B針對高速數據轉換器的串行數據接口,不僅可以克服LVDS并行數據傳輸帶來的性能下降,同時最高可支持12.5 Gb/s,比LVDS吞吐量提高10倍,降低I/O需求及封裝尺寸,降低靜態功耗和節省系統成本。
目前,主流的高速高精度數據轉換器芯片均采用JESD204B接口,如ADI近期發布的14 bit 2.6 GS/s雙通道模數轉換器AD9689和TI推出的12 bit 8 GS/s射頻模數采樣芯片ADC12J4000[2]等。國內相關技術雖然落后于國外,但各高校和科研機構針對不同的應用均做了相關研究,并取得了一定的進展。本文根據JESD204B標準設計了高速串行接口發送端控制層電路,主要包括傳輸層、數據鏈路層。通過搭建的硬件仿真平臺,驗證了控制層電路的正確性,并且其性能也很理想。
1 JESD204B標準概述
JESD204B是一種數模轉換器通過串行接口鏈路連接后端數字信號處理設備的標準。該標準的體系結構可分為應用層、傳輸層、鏈路層和物理層,在功能上可將接收接口作為發送接口的逆過程。應用層是負責JESD204B鏈路配置和數據映射。傳輸層主要是用戶根據數據格式的配置來對數據結構重新打包,以便映射為8位字節。加擾層為可選擇模塊,主要通過對8位字節的加解擾來擴展頻譜,從而減少電磁干擾效應。數據鏈路層主要實現同步字符的產生、多幀同步、鏈路對齊、鏈路同步等用于通道對準監控和維護的操作,以及8 B/10 B編解碼。物理層用于支持高速串行數據的發送與接收、串行與并行之間的轉換。其結構如圖1所示。
2 發送端控制層電路的設計與實現
根據3 GS/s 12 bit高速高精度A/D轉換器以及JESD204B標準中子類1工作模式的要求,搭建了一個完整的發送端控制層電路框架,如圖2所示。本文設計的電路主要包括3個模塊:傳輸層模塊、數據鏈路層模塊和8 B/10 B編碼器模塊。首先根據轉換器數量M=4和樣本數S=4,將ADC過來的3 GS/s 12 bit數據送入傳輸層,然后對其降頻后通過讀取串行外設接口(Serial Parallel Interface,SPI)發送過來的配置信息來添加控制字符和尾字符的方式把數據打包成通道數L=8的并行數組;之后把每個通道的32 bit數據送入數據鏈路層,通過碼組同步(Code Group Synchronization,CGS)、初始通道對齊序列(Initial Lane Alignment Sequence,ILAS)階段和字符替換來實現同步字符的產生、多幀同步、鏈路對齊與同步等操作;最后把數據送入8 B/10 B編碼模塊來完成控制層接口的數據傳輸。
2.1 傳輸層模塊設計
傳輸層對于發送端控制層接口來說,是整個電路模塊設計的開始,它主要通過添加控制字符和尾字符把接收的3 GS/s 12 bit ADC數據打包成8位并行數組。由于從ADC過來的數據速率很高,并且考慮在FPGA板上可實現的最高頻率問題,因此在傳輸層的第一級將其轉換為4路并行的750 MS/s 12 bit的ADCs,并利用多相時鐘產生器對每一路數據進行下采樣,產生4相、相位間隔90°的187.5 MHz的采樣時鐘。然后根據SPI寄存器配置參數來進行合理的數據映射,即把多位樣本數據轉換成一系列非擾碼的8位字節。因此傳輸層總體電路結構可分為5個模塊:下采樣模塊、樣本緩存模塊、SPI寄存器配置參數讀取模塊、模式控制模塊和組幀器模塊。
下采樣模塊是對數據進行S取4的采樣,進而達到對整個系統降頻的目的。樣本緩存模塊是對前面下采樣模塊的樣本數據按由低到高依次先暫存在樣本緩存器中,緩存空間大小定義為256 bit。圖3為下采樣模塊送入樣本緩存模塊的數據組合格式,這樣的組合也有益于組幀時數據的讀取。SPI寄存器配置參數模塊主要是讀取SPI發送過來的配置信息,根據配置寄存器中定義的10 bit存儲參數值,為模式控制模塊提供組幀判斷信息。模式控制模塊是根據不同的配置參數組合對當前的工作模式進行判斷。表1是根據項目需求提出的6種工作模式以及所支持的映射組幀參數。組幀器模塊主要是根據模式控制模塊的組幀模式信息,按照JESD204B標準的數據映射方法完成對樣本緩存模塊采樣數據的組幀。這種映射方式有利于降低電路功耗,節省電路資源和減小電路面積。
2.2 數據鏈路層設計
數據鏈路層是整個發送端的關鍵組成部分。在數據鏈路層中,需要對傳輸層傳輸過來的數據進行初始化幀同步、初始化通道同步和字節產生替換來建立正確的傳輸通道,然后采用8 B/10 B方式對數據進行編碼,并生成特殊控制符來實現通道對準監控和維護。同時,在設計該模塊電路時要兼顧速度、面積和功耗等資源。所以,將數據鏈路層分為鏈路控制模塊、CGS模塊、ILAS模塊、字符替換模塊以及多路數據選擇器模塊。
2.2.1 鏈路控制模塊
鏈路控制模塊是對整個數據鏈路層的控制,主要負責在鏈路層初始化過程、同步維持過程和重同步過程中發送對應的數據和控制信號,方便其余模塊根據其反饋信息進行調整,從而完成鏈路初始化到正常數據發送操作的過程,如圖4所示的跳轉機制。
首先,鏈路在復位結束或收到再同步請求時,進入到CGS階段,不斷發送規定的碼組同步字符。若發現同步請求信號取消,狀態機就會轉移到ILAS階段。ILAS階段會將4個多幀序列發送完,然后發送相應的指示信號給狀態機,表明已完成該序列并請求狀態轉移。控制模塊接收到該信號有效后,將狀態機轉換到正常的數據發送階段,并選擇字符替換模塊輸出數據。
2.2.2 CGS模塊
CGS階段是鏈路層進行初始化操作的第一步。主要通過Comma碼進行字符邊界的檢測,使得接收端在連續的串行數據流中檢測出字符的邊界。
具體實現過程是,當鏈路系統發生復位或者重同步時,接收端SYNC同步信號拉低置0,由此進入CGS階段。在CGS階段期間,發送端發射一系列連續的標志符/K28.5/(不少于F+9個/K28.5/字節,F為每幀的字節數目),接收端在收到至少4個連續/K28.5/字符,并對無序比特流定邊界后就解除對發送端同步請求信號。發送端檢測到同步請求解除后,在下一個本地多幀時鐘上升沿停止發送/K28.5/字符,然后進入ILAS階段。
2.2.3 ILAS模塊
當系統完成CGS階段之后,發送端緊接著就進入ILAS階段。在ILAS階段,一方面是為了發送鏈路配置數據,另一方面是完成幀以及多幀初始化同步。ILAS由4個多幀組成,這4個多幀均以/R/=/K28.0/控制字符開頭,以/A/=/K28.3/控制字符結尾,中間為正常數據。這樣可以讓接收端通過/A/字符來完成多幀末尾的對齊。除此之外,第二個多幀的第二個8位字節是/Q/=/K28.4/控制字符,它標示著鏈路配置數據傳輸的開始,其中配置數據有14個字節。
2.2.4 字符替換模塊
在JESD204B協議中,用碼組同步和初始通道對齊序列來完成字節邊界同步和多通道對齊。當系統完成了上述兩個階段后,在非擾碼模式下傳輸層將用戶數據直接發送到數據鏈路層的用戶數據階段。此時,要對數據進行同步字符替換,達到監控、校正和通道對準,從而建立在發送端與接收端正確的傳輸通道,提高傳輸的準確性。DATA字符替換模塊遵循如下規則:
(1)當前幀的最后一個字節與多幀的最后一個字節不一致時,如果當前幀的最后一個字節和前一幀的最后一個字節相同時,發送端應該把當前幀的最后一個字節用控制字符/F/=/K28.7/進行替換。但如果前一幀的最后一個字節已經是特殊控制字符,則當前幀的最后一個字節不對其進行替換,保持原始數據的正常傳輸。
(2)當前幀的最后一個字節與多幀的最后一個字節一致時,如果當前幀的最后一個字節和前一幀的最后一個字節相同時,發送端應該把當前幀的最后一個字節用控制字符/A/=/K28.3/進行替換。與規則1不同的是,即使前一幀已經用特殊控制字符替換過了,也應該對原始數據進行替換。
2.2.5 8 B/10 B編碼模塊
8 B/10 B編解碼最早由IBM公司提出,早期的查表法雖然實現起來較簡單,但其速率、面積和功耗等資源方面受到了很大的限制。為了滿足JESD204B協議接口,本文采用極性信息簡化編碼表對8 B/10 B編碼進行實現。
對于新型8 B/10 B編碼來說,它主要是在保證DC平衡和轉換密度的情況下,利用3 B/4 B和5 B/6 B并行編碼來提升電路工作頻率。同時還采用一些特殊控制符來進行誤碼監測。本文就是基于這樣的設計將編碼電路分為K字符編碼器模塊和D字符編碼器模塊,其中K字符編碼器模塊采用直接編碼的方法,而D字符編碼器模塊分為5 B/6 B編碼和3 B/4 B編碼。首先進行K字符編碼和D字符編碼的選擇,并且進行對應的初步編碼;然后對所對應的編碼進行修正,最后進行選擇性輸出。其相關的主要編碼流程如圖5所示。
3 仿真與驗證
3.1 驗證方法
本文采用Modelsim 10.1軟件完成了JESD204B發送端控制層電路的前端仿真驗證。采用Vivado 16.1軟件和Zynq-7000系列芯片XC7Z045FFG900-2 FPGA中的JESD204B PHY IP和Receiver IP[11]搭建硬件仿真驗證平臺,把控制層輸出的并行數據發送給PHY IP,經過串化等一系列操作送給JESD204B Receiver IP,最后通過用ILA核抓取數據傳輸的實時波形圖和對比發送、接收的數據,來實現硬件仿真驗證,如圖6所示。
3.2 驗證結果
用Vivado16.1將功能仿真正確的RTL級代碼綜合后的電路燒寫到ZC706開發板上,并使用ILA核抓取信號的實時波形進行分析。圖7(a)和圖7(b)是鏈路建立后用戶數據傳輸的實時波形截圖,在經過傳輸層輸出32 bit數據、鏈路層用戶數據、8 B/10 B編解碼和JESD204B Receiver IP輸出的32 bit數據后,對比發現發送和接收的數據無錯碼,即驗證了發送端控制層電路數據傳輸的正確性。
本文設計電路占用的FPGA資源如表2所示。除此之外,整個發送端控制層電路的功耗為0.467 W,建立時間的slack為0.235 ns,保持時間的slack為0.068 ns,并且經過IP串化后的位速率達到7.5 Gb/s。
4 結論
隨著轉換器分辨率和速度不斷提高,JESD204B串行接口電路成為高速高精度數據轉換器的標準接口。本文根據JESD204B標準設計了應用于3 GS/s 12 bit ADC發送端控制層接口,在滿足速率的前提下,采用預分頻技術和極性信息簡化編碼技術實現功耗和資源優化,并采用Xilinx公司的Zynq-7000系列芯片XC7Z045FFG900-2 FPGA驗證系統,完成了硬件仿真驗證,串化后的位速率可以達到7.5 Gb/s,相較于同類型的接口設計,其傳輸速度提高了50%。
參考文獻
[1] Ian Beavers.以JESD204B開始您的系統設計[J].中國電子商情(基礎電子),2014(6):31-33.
[2] 樊周華.基于JESD204B標準的高速串行接口設計與實現[D].西安:西安電子科技大學,2016.
[3] YOU S,LI F,ZHANG C,et al.High speed serial interface transmitter controller based on JESD204B for 1 GSPs ADCs[C].IEEE International Conference on Electron Devices and Solid-State Circuits.IEEE,2015:87-90.
[4] 田瑞,劉馬良.JESD204B協議的高速串行轉換器接口[J].西安電子科技大學學報,2017,44(4):69-74.
[5] 歐陽靖,姚亞峰,霍興華,等.JESD204B協議中發送端同步電路設計與實現[J].電子器件,2017,40(1):118-124.
[6] 周典淼,徐暉,陳維華,等.基于JESD204B協議的數據傳輸接口設計[J].電子科技,2015,28(10):53-55,60.
[7] 李長慶,程軍,李梁,等.采用并行8 B/10 B編碼的JESD-204B接口發送端電路設計[J].微電子學與計算機,2017,34(8):70-75.
[8] 霍興華,姚亞峰,賈茜茜,等.JESD204B接口協議中的8 B/10 B編碼器設計[J].電子器件,2015,38(5):1017-1021.
[9] 詹介秋.JESD204B高速串行接口的FPGA實現[J].電子世界,2017(18):109-110.
[10] JEDEC Solid State Technology Association.JEDEC Standard JESD204B.2011.
[11] Xilinx.Xilinx transceiver PHY IP core user guide[EB/OL].[2018-03-20].www.xilinx.com.
作者信息:
蔣 林,衡 茜,張春茗,鄧軍勇,王喜娟
(西安郵電大學 電子工程學院,陜西 西安710121)