孔玉禮,陳婷婷,萬書芹,邵 杰
(1.中國人民解放軍海軍七〇一工廠,北京 100000;2.中國電子科技集團公司第五十八研究所,江蘇 無錫 214035)
隨著高速率數(shù)據(jù)應用需求的不斷增長,數(shù)據(jù)轉(zhuǎn)換器的速率和動態(tài)范圍進一步提升,串行傳輸成為轉(zhuǎn)換器與邏輯設備之間進行數(shù)據(jù)通信的主要方式[1]。聯(lián)合電子設備工程委員會參考PCIE、SRIO等串行總線傳輸協(xié)議的優(yōu)勢,制定并發(fā)布了JESD204B串行接口協(xié)議[2],可提供足夠的帶寬,并與轉(zhuǎn)換器的高采樣速率保持平衡[3]。目前,基于JESD204B協(xié)議的串行接口成為高速轉(zhuǎn)換器接口電路的首選[4]。
國內(nèi)對于轉(zhuǎn)換器接口的研究已取得了一定的進展,但在設計應用以及指標實現(xiàn)方面相較于國際先進水平尚存在較大的提升空間。付東兵[5]等基于JESD204B協(xié)議設計了接收端的數(shù)據(jù)鏈路層電路,與賽靈思(Xilinx)的JESD204B v6.1發(fā)送端知識產(chǎn)權(IP)核完成了環(huán)回對接驗證,但研究層次僅為電路綜合階段;袁曉偉[6]實現(xiàn)了接收端數(shù)字電路并成功應用于數(shù)模轉(zhuǎn)換器芯片中,其單通道最高傳輸速率為10 Gbit/s,未能達到協(xié)議所支持的12.5 Gbit/s,且該接收端電路僅有一種鏈路工作模式。
本文在深入分析JESD204B協(xié)議的基礎上,采用Verilog HDL語言設計了一款可適用于4通道、16 bit、2.5 GSa/S數(shù)模轉(zhuǎn)換器的接口電路,并建立通用驗證方法學(UVM)平臺仿真驗證電路功能的正確性?;谀?5 nm互補金屬氧化物半導體(CMOS)工藝對該接收端電路進行電路綜合和版圖設計,流片后的樣片電路單通道最高傳輸速率為12.5 Gbit/s,可支持10種鏈路工作模式,適用于多種場合。
JESD204B協(xié)議分為應用層、物理層、數(shù)據(jù)鏈路層和傳輸層4個層級。首先,物理層將接收端電路接收到的數(shù)據(jù)流進行時鐘/數(shù)據(jù)恢復(CDR)并反序列化;然后,將其傳遞到數(shù)據(jù)鏈路層,實現(xiàn)鏈路建立和數(shù)據(jù)處理[7];最后,經(jīng)由傳輸層將通道上的幀數(shù)據(jù)映射為轉(zhuǎn)換器采樣數(shù)據(jù)輸出[8],而應用層不在協(xié)議規(guī)范之內(nèi),電路的數(shù)據(jù)流向如圖1所示。
圖1 電路的數(shù)據(jù)流向
應用層的作用是配置接收端的鏈路參數(shù),鏈路參數(shù)主要根據(jù)電路設計需求和內(nèi)部結構進行合理選擇。接收端電路采用應用層配置鏈路參數(shù)時,與之實現(xiàn)數(shù)據(jù)交互的發(fā)送端電路也需要配置與之完全相同的鏈路參數(shù),從而保證傳輸數(shù)據(jù)的有效性。
物理層是數(shù)據(jù)進入接收端電路中經(jīng)過的第一個層級,由電流模式邏輯(CML)接收器、均衡器、時鐘/數(shù)據(jù)恢復和串并轉(zhuǎn)換模塊組成[9],采用模擬集成電路設計方法進行設計。JESD204B協(xié)議支持3種物理層規(guī)范,分別為LV-OIF-Sx15、LV-OIF-6G-SR和LV-OIF-11G-SR,目前,最常用的規(guī)范為LV-OIF-11G-SR,其最高數(shù)據(jù)傳輸速率可達12.5 Gbit/s,也是本文接收端電路中采用的物理層規(guī)范。
數(shù)據(jù)鏈路層主要實現(xiàn)發(fā)送端與接收端之間的鏈路建立、數(shù)據(jù)處理功能,同時接收端電路的數(shù)據(jù)鏈路層還需要實時監(jiān)測鏈路的狀態(tài)并做出錯誤統(tǒng)計,確保電路正常工作。
鏈路建立分為代碼組同步(CGS)和初始通道同步(ILS)2個過程。在CGS期間,一旦接收端電路連續(xù)檢測到固定數(shù)量的/K28.5/字符后將改變同步信號SYNC~信號的值,發(fā)送端檢測到SYNC~信號的變化則按需求進入ILS階段,此時收、發(fā)2端以初始通道同步序列(ILAS)完成信息交互。
鏈路建立完成后,接收端電路開始接收用戶數(shù)據(jù)[10],進行8 B/10 B解碼、控制字符還原、解擾,分別對應了發(fā)送端電路中的8 B/10 B編碼、控制字符替換以及加擾的操作。此外,JESD204B協(xié)議規(guī)定了接收端能夠檢測系統(tǒng)中可能出現(xiàn)的錯誤并進行相應處理。
接收端電路傳輸層的作用是將通道上的幀格式數(shù)據(jù)按照鏈路工作模式映射為轉(zhuǎn)換器原始采樣數(shù)據(jù)。鏈路工作模式主要與參數(shù)F、L、M、S有關。F為每幀中8 B的數(shù)量,L為設備中的通道數(shù)量,M為設備中轉(zhuǎn)換器的數(shù)量,S為單個轉(zhuǎn)換器每個幀時鐘周期的采樣數(shù)量。映射過程中還要考慮轉(zhuǎn)換器分辨率N和樣本寬度N'的大小。
根據(jù)JESD204B協(xié)議和項目設計要求,對接收端電路功能進行詳細的劃分。接收端電路的整體架構如圖2所示,物理層采用高精度的模擬電路實現(xiàn),且應用層不屬于協(xié)議規(guī)范,因此圖2中主要劃分的是數(shù)據(jù)鏈路層和傳輸層的各個功能模塊。數(shù)據(jù)鏈路層功能復雜,數(shù)據(jù)先后流經(jīng)數(shù)據(jù)對齊、8 B/10 B解碼器、控制字符還原、解擾器、接收緩沖器電路,同時進行鏈路同步和錯誤統(tǒng)計,傳輸層電路僅包含一個解幀器模塊,其輸出即為接收端電路的最終輸出信號。
圖2 接收端電路的整體架構
JESD204B協(xié)議中所支持的單通道數(shù)據(jù)傳輸速率最高為12.5 Gbit/s,為了便于數(shù)字電路的處理并滿足最高傳輸速率的要求,本設計在物理層串并轉(zhuǎn)換電路中,將串行輸入的數(shù)據(jù)轉(zhuǎn)換成40 bit的并行數(shù)據(jù)輸出,降低了數(shù)字電路的工作頻率。在數(shù)據(jù)鏈路層和傳輸層,本設計以4路并行的方式處理接收到的40 bit數(shù)據(jù),每路處理10 bit數(shù)據(jù),降低了電路的設計復雜度。
對于決定鏈路工作模式的參數(shù),JESD204B協(xié)議給出了寬泛的范圍??紤]到芯片的面積和功耗,選擇合適的鏈路參數(shù)組合極為重要。由于接收端電路最終作為4通道、16 bit數(shù)模轉(zhuǎn)化器接口電路,設備中包含的轉(zhuǎn)換器數(shù)量不超過4個,轉(zhuǎn)換器的分辨率N以及樣本寬度N'取16。為了減少接收端電路與轉(zhuǎn)換器模擬電路之間的串擾,每個轉(zhuǎn)換器每幀發(fā)送的樣本數(shù)S取整數(shù),從而確定了鏈路中的通道數(shù)L,L的取值滿足式(1),其中fFC為幀時鐘的頻率。根據(jù)已知參數(shù)M、S、N'和L,確定F的取值,見式(2)。最終,接收端電路確定了Mode1至Mode10共10種鏈路工作模式,鏈路工作模式如表1所示。
表1 鏈路工作模式
3.3.1 鏈路同步
為了便于代碼設計與維護,采用狀態(tài)機實現(xiàn)鏈路同步模塊中的代碼組同步和初始通道同步。圖3(a)為代碼組同步狀態(tài)轉(zhuǎn)換圖,代碼組同步由3個狀態(tài)構成。在CS_INIT狀態(tài)下,當電路檢測到4個連續(xù)的控制字符/K28.5/時,電路進入CS_CHECK狀態(tài)。在CS_CHECK狀態(tài)下,對8 B/10 B解碼器產(chǎn)生的錯誤進行計數(shù),若錯誤字節(jié)累計的數(shù)量超過3,則回到CS_INIT狀態(tài);若解碼器解碼結果完全正確,則跳轉(zhuǎn)到CS_DATA狀態(tài)。在CS_DATA狀態(tài)下,只要檢測到錯誤,狀態(tài)機跳轉(zhuǎn)回CS_CHECK狀態(tài)。
圖3(b)為初始通道同步狀態(tài)轉(zhuǎn)換圖,初始通道同步由5個狀態(tài)組成。接收端電路接收到第一個非/K28.5/字符,狀態(tài)機從INIT進入ILS,此時收、發(fā)2端通過ILAS進行交互。通過計數(shù)器對ILAS中的多幀數(shù)量進行計數(shù),當計數(shù)到4個多幀且接收到控制字符/K28.3/時,表明初始通道同步完成,開始接收用戶數(shù)據(jù)。初始通道處于ILS或DATA狀態(tài)時,若接收到控制字符/K28.5/,則會返回到DATA_CHECK甚至是INIT狀態(tài)。
圖3 鏈路同步模塊狀態(tài)轉(zhuǎn)換
3.3.2 數(shù)據(jù)處理
物理層輸出的數(shù)據(jù)流到達數(shù)據(jù)鏈路層后,采用常見的異步FIFO電路消解物理層與數(shù)據(jù)鏈路層之間的時序差異,進入數(shù)據(jù)對齊電路,確定字符的邊界。數(shù)據(jù)對齊電路如圖4所示。
圖4 數(shù)據(jù)對齊電路示意圖
輸入數(shù)據(jù)datain[39:0]首先進行數(shù)據(jù)位擴展,組合當前數(shù)據(jù)與上一個時鐘周期數(shù)據(jù)的低9位,得到擴展后的數(shù)據(jù)data_tmp[48:0],接著數(shù)據(jù)進入Comma檢測器,從最低位起依次取連續(xù)的40位字符與預期字符(40’h3e_b053_eb05或40’hc1_4fac_14fa)比較,得到字符的偏移量sel[3:0]及連續(xù)4個/K/字符的已檢測標志comma_det,最終按照偏移量的值選擇擴展后的數(shù)據(jù)輸出。
完成數(shù)據(jù)對齊后,采用4個并行的8 B/10 B解碼器將40 bit數(shù)據(jù)解碼為32 bit的數(shù)據(jù),8 B/10 B解碼原理如圖5所示。對每個周期10 bit的數(shù)據(jù)進行5 B/6 B解碼和3 B/4 B解碼,并通過K碼檢測模塊判斷輸入數(shù)據(jù)是否為控制字符,同時結合K碼檢測的輸出K_code和極性產(chǎn)生的輸出dispout,檢測編碼數(shù)據(jù)不在碼表錯誤nit_err和編碼極性錯誤disp_err,推導邏輯運算表達式表示解碼結果及錯誤檢測結果dataout[7:0]。
圖5 8 B/10 B解碼原理
解碼完成的數(shù)據(jù)進入控制字符還原電路中,將電路是否啟用加擾作為前提條件。如啟用,則將檢測到的控制字符/K28.3/替換為數(shù)據(jù)0X7C,/K28.7/替換為0XFC,反之,則直接將控制字符/K28.3/或/K28.7/替換為前一幀的幀尾。
解擾電路采用32 bit并行解擾的方式進行設計。在電路啟用加擾功能時,由于ILAS中包含了用于鏈路參數(shù)校驗的鏈路信息以及用于通道對齊的控制字符,因此,還需從鏈路同步模塊中引入數(shù)據(jù)使能信號,接收端開始接收用戶數(shù)據(jù)時方可解擾。加擾電路的具體實現(xiàn)方式參見文獻[11]。
系統(tǒng)每次上電或是同步之后每個通道產(chǎn)生的可變延遲都是不同的,在JESD204B協(xié)議中加入了子類1和子類2工作模式,實現(xiàn)系統(tǒng)的確定性延遲功能。本文設計的接收端電路支持JESD204B協(xié)議所述的子類1工作模式,通過接收緩沖器緩沖數(shù)據(jù),在以SYSREF為基準的本地多幀時鐘邊沿后的固定時刻釋放數(shù)據(jù),保證各通道數(shù)據(jù)對齊的同時系統(tǒng)的延遲不變。接收緩沖器如圖6所示。
圖6 接收緩沖器
接收緩沖器由10個位寬為32 bit的存儲單元構成,數(shù)據(jù)從最底端的存儲單元進入。每經(jīng)過一個并行時鐘(pclk)周期,當前存儲單元中的數(shù)據(jù)進入下一個存儲單元,新的數(shù)據(jù)進入當前存儲單元。輸出數(shù)據(jù)的位置由接收緩沖延遲(RBD)以及鏈路中的可變延遲決定,可變延遲等于理想情況下接收到數(shù)據(jù)的時刻與實際電路接收到數(shù)據(jù)的時刻之間的差值。
3.3.3 錯誤統(tǒng)計
本文設計的接收端電路能夠檢測到的錯誤包括控制字符錯誤、鏈路參數(shù)不一致、數(shù)據(jù)極性錯誤、數(shù)據(jù)不在碼表、幀(通道)對齊失敗以及代碼組同步失常,上述錯誤的檢測在數(shù)據(jù)處理模塊電路中實現(xiàn)。
控制字符錯誤的檢測在控制字符還原電路中實現(xiàn),數(shù)據(jù)極性錯誤、數(shù)據(jù)不在碼表的檢測在8 B/10 B解碼電路中實現(xiàn)。通過SPI寄存器配置錯誤閾值,當上述錯誤信號的累計數(shù)量超出設定閾值時,接、收端電路發(fā)起同步請求。
鏈路參數(shù)校驗電路將發(fā)送端的鏈路參數(shù)信息緩存到寄存器中,再與接收端的鏈路信息進行比較,確認是否完全相等,幀(通道)對齊監(jiān)測則通過計數(shù)器對幀/多幀中字節(jié)的位置進行計數(shù),從而判斷2次出現(xiàn)控制字符的位置是否一致,代碼組同步狀態(tài)機的狀態(tài)回到初始狀態(tài)說明代碼組同步失常。因此,若電路出現(xiàn)鏈路參數(shù)校驗不一致、幀(通道)對齊失敗和代碼組同步失常3種錯誤,不需要進行錯誤統(tǒng)計,接收端電路直接發(fā)起同步請求。
接收端電路集成了10種鏈路工作模式,本文采用3級映射結構將通道上的幀格式數(shù)據(jù)映射為轉(zhuǎn)換器的采樣數(shù)據(jù),設計前歸納每一級映射過程中所需要的鏈路參數(shù)配置共通點,并在數(shù)據(jù)映射過程中滿足通道的填充能力。傳輸層映射架構如圖7所示。
圖7 傳輸層映射架構
第一級映射以鏈路參數(shù)F和L為映射條件,將通道上的數(shù)據(jù)映射為32個字節(jié)。通道上每個pclk周期映射4L個字節(jié),4與L的乘積等于32時,32個字節(jié)并行輸出;4與L的乘積小于32時,則在通道上連續(xù)取32/(4×L)個時鐘周期的字節(jié),作為32個并行輸出的字節(jié)。
第二級映射的本質(zhì)是數(shù)據(jù)拼接,將第一級映射輸出的字節(jié)拼接為樣本數(shù)據(jù)。N=N'=16時,直接將32個并行字節(jié)拼接為16個樣本數(shù)據(jù)。字節(jié)標號為偶數(shù)的作為樣本數(shù)據(jù)的高8 bit,字節(jié)標號為奇數(shù)則作為樣本數(shù)據(jù)的低8 bit。
第三級映射方式與第一級映射類似,區(qū)別在于第三級采用鏈路參數(shù)M和S作為映射條件,完成16個樣本數(shù)據(jù)的映射。映射時用轉(zhuǎn)換器時鐘(sclk)對樣本數(shù)據(jù)進行采樣,每個時鐘周期采樣得到M×S個數(shù)據(jù),經(jīng)過16/(M×S)個時鐘周期將樣本數(shù)據(jù)完全映射到轉(zhuǎn)換器中。
搭建UVM驗證平臺對設計的接收端電路進行系統(tǒng)級仿真驗證,通過Verdi查看仿真波形和報告信息。模式1的仿真結果如圖8所示。
圖8 模式1仿真結果
圖8(a)為電路工作在鏈路模式1時的仿真波形圖,此時N=N'=16,M、S、F、L的取值分別為1、1、2、1,M的取值為1,表明只有一個轉(zhuǎn)換器處于工作狀態(tài),因此輸出信號CVT0有值且為連續(xù)遞增的數(shù)值,與UVM驗證平臺給出的激勵相同。圖8(b)為當前模式下的驗證報告信息,通過計分板比較信號CVT0的輸出與輸入的激勵,信息欄輸出Verification Passed字樣,表明該模式下電路能夠正常工作。
使用Synopsys公司的核心工具Design Compiler,基于某65 nm CMOS工藝庫,對設計的接收端電路進行邏輯綜合。綜合結果表明,在典型操作環(huán)境下該接收端電路可工作在312.5 MHz下,能夠達到協(xié)議支持的12.5 Gbit/s的單通道數(shù)據(jù)傳輸速率,此時電路占用邏輯資源面積為152444.88μm2,總功耗為69.29 mW。在此基礎上,對集成數(shù)模轉(zhuǎn)換器芯片的數(shù)字上變頻電路、SPI配置電路進行版圖設計與優(yōu)化,最終的數(shù)模轉(zhuǎn)換器的數(shù)字電路版圖尺寸約為4125μm×916μm。
對流片封裝后的數(shù)模轉(zhuǎn)換器樣片進行板級測試。通過上位機配置數(shù)模轉(zhuǎn)換器工作于2倍插值下,JESD204B接收端接口電路選用鏈路模式6,單通道串行傳輸速率為12.5 Gbit/s,圖9所示為上述配置下輸出信號的頻域特性。由圖9可知,此時輸出頻率為30 MHz,測試帶寬為1.25 GHz,無雜散動態(tài)范圍(SFDR)測試值達到57.21 dBm。多次調(diào)整轉(zhuǎn)換器樣片參數(shù),測試結果表明,本文設計的接收端電路滿足預期要求。
圖9 1.25 GHz輸入下輸出信號頻域特性
本文的接收端電路是基于特定應用需求的數(shù)模轉(zhuǎn)換器而設計,與文獻[6]的接口應用以及研究階段相同。與文獻[6]相比,本文設計的應用于數(shù)模轉(zhuǎn)換器芯片中的JESD204B高速接口在鏈路工作模式和數(shù)據(jù)傳輸速率上具有優(yōu)勢,主要對比結果見表2。
表2 本設計與文獻[6]的研究對比
本文深入研究與分析了JESD204B協(xié)議的工作原理,對接收端電路功能進行了精確的劃分。制定接收端的整體設計方案后,確定了應用層10種鏈路的工作模式;采用Verilog HDL語言實現(xiàn)數(shù)據(jù)鏈路層和傳輸層的RTL代碼設計,搭建UVM驗證平臺進行系統(tǒng)級驗證?;谀?5 nm CMOS工藝進行邏輯綜合和版圖設計,并將設計的接收端電路應用于DAC芯片并流片,經(jīng)測試該接口的單通道數(shù)據(jù)傳輸速率最高可達12.5 Gbit/s。