簡介 JESD204是一種連接數據轉換器(ADC和DAC)和邏輯器件的高速串行接口,該標準的 B 修訂版支持高達 12.5 Gbps串行數據速率,并可確保 JESD204 鏈路具有可重復的確定性延遲。隨著轉換器的速度和分辨率不斷提升,JESD204B接口在ADI高速轉換器和集成RF收發器中也變得更為常見。此外,FPGA和ASIC中靈活的串行器/解串器(SERDES)設計正逐步取代連接轉換器的傳統并行LVDS/CMOS接口,并用來實現 JESD204B物理層。本文介紹如何快速在Xilinx? FPGA上實現JESD204B接口,并為FPGA設計人員提供部分應用和調試建議。 JESD204B 協議實現概述 JESD204B規范定義了實現該協議數據流的四個關鍵層,如圖1所示。傳輸層完成樣本和未加擾的幀數據之間的映射和解映射。可選的加擾層可用來加擾/解擾8 位字,以擴散頻譜尖峰來降低EMI。數據鏈路層處理鏈路的同步、建立與保持,并對加擾后的數據進行8B10B編碼或譯碼。物理層負責以比特速率發送和接收編碼后的字符。 圖1. JESD204B標準的關鍵層級 不同的JESD204B IP供應商可能以不同的方式實現這些層級。圖 2和圖3顯示ADI如何實現JESD204B的發送和接收協議。 圖2. JESD204B發送器實現 圖3. JESD204B接收器實現 傳輸層實現和特定的轉換器配置及其樣本與幀之間的映射方式強相關,因此大部分FPGA供應商將其排除在各自的JESD204 IP之外。此外,FPGA集成了高度可配置、高集成度的SERDES收發器,這些SERDES收發器可用來支持所有類型的串行協議,包括PCIe、SATA、SRIO、CPRI和JESD204B。因此,一個實現鏈路層的邏輯核和實現物理層的可配置SERDES 便構成了JESD204B 鏈路的基礎。圖4 和圖5 顯示Xilinx FPGA上的JESD204B發送器和接收器框圖。發送器/接收器通道實現加擾和鏈路層;8B/10B 編碼器/解碼器和物理層在 GTP/GTX/GTH Gbit 收發器中實現。 圖4. 使用Xilinx FPGA實現JESD204B發送器 圖5. 使用Xilinx FPGA實現JESD204B接收器 采用Xilinx FPGA的JESD204B設計示例 最新的 Xilinx JESD204 IP 核通過 Vivado?設計套件以黑盒子加密交付。Xilinx還提供使用高級 eXtensible接口(AXI)的Verilog設計示例,但該示例項目對大部分應用而言是過設計的, 因為用戶通常采用自己的配置接口,無需針對JESD204B 邏輯集成一個額外的AXI。圖6 顯示的是一個JESD204簡化設計,旨在幫助FPGA用戶理解JESD204結構,并讓他們快速著手設計自己的JESD204 FPGA項目。 圖6. JESD204B設計示例 Vivado產生的JESD204邏輯IP核,即經過加密的 RTL 摸塊相當于圖4和圖5中的發送和接收模塊,其加密接口定義可在Xilinx示例設計文件中找到。然后,可將經過加密的RTL 模塊嵌套入JESD204B用戶頂層。來自加密RTL 模塊的控制、配置、狀態和JESD 數據接口直接通過嵌套層連接到用戶邏輯和GTX/GTH收發器。GTX/GTH符號對齊配置經優化和更新,使收發器工作更為穩定。 給SERDES收發器的GTX/GTH參考時鐘應采用專用引腳,對用于FPGA邏輯的全局時鐘設計必須仔細的考慮,包括內部PLL、并行接口時鐘、JESD204邏輯核以及用戶邏輯時鐘。此外,必須 確保給JESD204B邏輯核(子類1)的SYSREF輸入被準確采到,以確保JESD204鏈路的確定性延遲。 若要獲得可靠的JESD鏈路初始化性能,GTX/GTH收發器和JESD204核的復位序列十分關鍵;因此,JESD204核應處于復位狀態,直到GTX/GTH收發器的內部PLL 鎖定,且GTX/GTH復位完成。 F2S 模塊實現JESD204的傳輸層,該模塊根據特定JESD204B配置將樣本映射至幀,或從幀解映射至樣本。然后根據特定的應用去處理樣本數據。采用輔助模塊監測JESD204邏輯和物理層(PHY)狀態,供系統調試。/p> Xilinx SERDES收發器的符號對齊 在SERDES接收器中,串行數據必須與符號邊界對齊,才能用作 并行數據。為了對齊數據,可讓發送器發送一個可供識別的序 列,通常稱為"逗號"。接收器搜索輸入串行數據流中的逗號, 一旦找到便將其移到符號邊界。這樣可讓接收到的并行字與發 送的并行字相匹配。逗號通常用K 碼表示,它是8B/10B表中用 作控制符的一些特殊字符。對于JESD204B應用,發送器發送K = K28.5符號流,以便進行碼組同步(CGS)。因此,FPGA可采用 K28.5 作為逗號,來對齊符號邊界,而用戶可以指定逗號匹配是 由極性為正的逗號或是由極性為負的逗號所組成,或由兩者共同 組成。JESD204B針對GTX/GTH逗號檢測的默認設置允許利用 正極性逗號或負極性逗號來對齊。 某些應用中,默認逗號設置可能導致符號的重新對齊,或者對齊至錯誤的符號邊界。這可能會導致大量的8B/10B解碼錯誤,并使JESD204B鏈路斷鏈。而正極性逗號加上負極性逗號使用會更穩定,可以使逗號對齊模塊連續搜索兩個逗號,并僅當收到的數據為正極性逗號(或負極性)后跟一個負極性逗號(或正極性逗號)且中間無額外位時才認為檢測到逗號。當線路速率較高或系統噪聲過多時,這樣做有助于保持符號邊界和鏈路穩定性。 FPGA上的JESD204項目設計考慮因素 來自JESD204 接收器輸出到發送器的同步、低電平有效SYNC信號用于表示同步狀態。正常工作時,鏈路重新初始化將導致樣本數據混亂,因此必須實時監測鏈路狀態。具體而言,SYNC上的連續低電平表示接收器在接收到的數據流中無法識別出至少四個連續K28.5符號。如果發生這種情況,請檢查發送器/接收器SERDES 配置,或確保發送器正在發送K28.5。SYNC上的連續高電平表示鏈路已建立,且保持穩定。若SYNC從高電平變為低電平然后返回高電平,則必須記錄低電平狀態的持續時間。如果持續時間長于5個幀加9 個字節,則表示接收器檢測到了較大的錯誤,并將發送請求以重新初始化JESD204鏈路。如果持續時間等于兩個幀時鐘,則表示接收器檢測到了較小的錯誤,但不會觸發鏈路重新初始化。這個功能可極大地簡化系統調試,并為進一步的鏈路監測提供便利。因此,用戶應當在設計中包含這個功能。 8B/10B解碼錯誤可能導致JESD204B鏈路重新初始化,但這并非是唯一的原因;因此,用戶在設計時應能夠對各通道的解碼錯誤進行計數,從而確定鏈路重新同步的原因。此外,可通過8B/10B解碼錯誤狀態實時確定SERDES鏈路質量。 偽隨機位序列(PRBS)提供了一個測量高速鏈路中信號質量和抖動容差的有用資源。大部分FPGA 中的SERDES收發器都內置了PRBS發生器和檢查器,無需額外的FPGA資源。因此,不要忘了實例化此功能,在評估比特誤碼率(BER)或眼圖時會使用到這個功能。 SERDES收發器中通常會使用一個緩沖器,來改變內部時鐘域。如果發送器和接收器的時鐘設計不佳或者時鐘數據恢復模塊(CDR)設置錯誤,那么就會導致緩沖器上溢或下溢。此時可能會發生某些鏈路錯誤,因此有必要監測緩沖器狀態。緩沖器上溢或下溢的中斷記錄對于系統調試而言是很有用的,所以同樣應當監測用戶邏輯中不允許發生下溢或上溢的其它內部緩沖器的狀態。 結論 本文討論了如何在Xilinx FPGA上快速實現JESD204模塊,實現方法同樣可用于其它FPGA。首先,應了解FPGA供應商提供的JESD204邏輯核和收發器的功能以及接口,然后將其實例化并與您的邏輯整合。其次,從全局角度出發設計FPGA時鐘樹,和整個工程的復位順序。然后,仔細定義JESD204邏輯核、用戶邏輯和收發器之間的接口。最后,加入必要的調試資源。遵循這些步驟有助于您快速、成功地設計JESD204接口。 |