在Xilinx FPGA上快速實(shí)現JESD204B
簡(jiǎn)介
本文引用地址:http://dyxdggzs.com/article/281798.htmJESD204是一種連接數據轉換器(ADC和DAC)和邏輯器件的高速串行接口,該標準的 B 修訂版支持高達 12.5 Gbps串行數據速率,并可確保 JESD204 鏈路具有可重復的確定性延遲。隨著(zhù)轉換器的速度和分辨率不斷提升,JESD204B接口在A(yíng)DI高速轉換器和集成RF收發(fā)器中也變得更為常見(jiàn)。此外,FPGA和ASIC中靈活的串行器/解串器(SERDES)設計正逐步取代連接轉換器的傳統并行LVDS/CMOS接口,并用來(lái)實(shí)現 JESD204B物理層。本文介紹如何快速在Xilinx® FPGA上實(shí)現JESD204B接口,并為FPGA設計人員提供部分應用和調試建議。
JESD204B 協(xié)議實(shí)現概述
JESD204B規范定義了實(shí)現該協(xié)議數據流的四個(gè)關(guān)鍵層,如圖1所示。傳輸層完成樣本和未加擾的幀數據之間的映射和解映射??蛇x的加擾層可用來(lái)加擾/解擾8 位字,以擴散頻譜尖峰來(lái)降低EMI。數據鏈路層處理鏈路的同步、建立與保持,并對加擾后的數據進(jìn)行8B10B編碼或譯碼。物理層負責以比特速率發(fā)送和接收編碼后的字符。

圖1. JESD204B標準的關(guān)鍵層級
不同的JESD204B IP供應商可能以不同的方式實(shí)現這些層級。圖 2和圖3顯示ADI如何實(shí)現JESD204B的發(fā)送和接收協(xié)議。

圖2. JESD204B發(fā)送器實(shí)現

圖3. JESD204B接收器實(shí)現
傳輸層實(shí)現和特定的轉換器配置及其樣本與幀之間的映射方式強相關(guān),因此大部分FPGA供應商將其排除在各自的JESD204 IP之外。此外,FPGA集成了高度可配置、高集成度的SERDES收發(fā)器,這些SERDES收發(fā)器可用來(lái)支持所有類(lèi)型的串行協(xié)議,包括PCIe、SATA、SRIO、CPRI和JESD204B。因此,一個(gè)實(shí)現鏈路層的邏輯核和實(shí)現物理層的可配置SERDES 便構成了JESD204B 鏈路的基礎。圖4 和圖5 顯示Xilinx FPGA上的JESD204B發(fā)送器和接收器框圖。發(fā)送器/接收器通道實(shí)現加擾和鏈路層;8B/10B 編碼器/解碼器和物理層在 GTP/GTX/GTH Gbit 收發(fā)器中實(shí)現。

圖4. 使用Xilinx FPGA實(shí)現JESD204B發(fā)送器

圖5. 使用Xilinx FPGA實(shí)現JESD204B接收器
采用Xilinx FPGA的JESD204B設計示例
最新的 Xilinx JESD204 IP 核通過(guò) Vivado®設計套件以黑盒子加密交付。Xilinx還提供使用高級 eXtensible接口(AXI)的Verilog設計示例,但該示例項目對大部分應用而言是過(guò)設計的, 因為用戶(hù)通常采用自己的配置接口,無(wú)需針對JESD204B 邏輯集成一個(gè)額外的AXI。圖6 顯示的是一個(gè)JESD204簡(jiǎn)化設計,旨在幫助FPGA用戶(hù)理解JESD204結構,并讓他們快速著(zhù)手設計自己的JESD204 FPGA項目。

圖6. JESD204B設計示例
Vivado產(chǎn)生的JESD204邏輯IP核,即經(jīng)過(guò)加密的 RTL 摸塊相當于圖4和圖5中的發(fā)送和接收模塊,其加密接口定義可在Xilinx示例設計文件中找到。然后,可將經(jīng)過(guò)加密的RTL 模塊嵌套入JESD204B用戶(hù)頂層。來(lái)自加密RTL 模塊的控制、配置、狀態(tài)和JESD 數據接口直接通過(guò)嵌套層連接到用戶(hù)邏輯和GTX/GTH收發(fā)器。GTX/GTH符號對齊配置經(jīng)優(yōu)化和更新,使收發(fā)器工作更為穩定。
給SERDES收發(fā)器的GTX/GTH參考時(shí)鐘應采用專(zhuān)用引腳,對用于FPGA邏輯的全局時(shí)鐘設計必須仔細的考慮,包括內部PLL、并行接口時(shí)鐘、JESD204邏輯核以及用戶(hù)邏輯時(shí)鐘。此外,必須 確保給JESD204B邏輯核(子類(lèi)1)的SYSREF輸入被準確采到,以確保JESD204鏈路的確定性延遲。
若要獲得可靠的JESD鏈路初始化性能,GTX/GTH收發(fā)器和JESD204核的復位序列十分關(guān)鍵;因此,JESD204核應處于復位狀態(tài),直到GTX/GTH收發(fā)器的內部PLL 鎖定,且GTX/GTH復位完成。
F2S 模塊實(shí)現JESD204的傳輸層,該模塊根據特定JESD204B配置將樣本映射至幀,或從幀解映射至樣本。然后根據特定的應用去處理樣本數據。采用輔助模塊監測JESD204邏輯和物理層(PHY)狀態(tài),供系統調試。/p>
Xilinx SERDES收發(fā)器的符號對齊
在SERDES接收器中,串行數據必須與符號邊界對齊,才能用作 并行數據。為了對齊數據,可讓發(fā)送器發(fā)送一個(gè)可供識別的序 列,通常稱(chēng)為"逗號"。接收器搜索輸入串行數據流中的逗號, 一旦找到便將其移到符號邊界。這樣可讓接收到的并行字與發(fā) 送的并行字相匹配。逗號通常用K 碼表示,它是8B/10B表中用 作控制符的一些特殊字符。對于JESD204B應用,發(fā)送器發(fā)送K = K28.5符號流,以便進(jìn)行碼組同步(CGS)。因此,FPGA可采用 K28.5 作為逗號,來(lái)對齊符號邊界,而用戶(hù)可以指定逗號匹配是 由極性為正的逗號或是由極性為負的逗號所組成,或由兩者共同 組成。JESD204B針對GTX/GTH逗號檢測的默認設置允許利用 正極性逗號或負極性逗號來(lái)對齊。
某些應用中,默認逗號設置可能導致符號的重新對齊,或者對齊至錯誤的符號邊界。這可能會(huì )導致大量的8B/10B解碼錯誤,并使JESD204B鏈路斷鏈。而正極性逗號加上負極性逗號使用會(huì )更穩定,可以使逗號對齊模塊連續搜索兩個(gè)逗號,并僅當收到的數據為正極性逗號(或負極性)后跟一個(gè)負極性逗號(或正極性逗號)且中間無(wú)額外位時(shí)才認為檢測到逗號。當線(xiàn)路速率較高或系統噪聲過(guò)多時(shí),這樣做有助于保持符號邊界和鏈路穩定性。
FPGA上的JESD204項目設計考慮因素
來(lái)自JESD204 接收器輸出到發(fā)送器的同步、低電平有效SYNC信號用于表示同步狀態(tài)。正常工作時(shí),鏈路重新初始化將導致樣本數據混亂,因此必須實(shí)時(shí)監測鏈路狀態(tài)。具體而言,SYNC上的連續低電平表示接收器在接收到的數據流中無(wú)法識別出至少四個(gè)連續K28.5符號。如果發(fā)生這種情況,請檢查發(fā)送器/接收器SERDES 配置,或確保發(fā)送器正在發(fā)送K28.5。SYNC上的連續高電平表示鏈路已建立,且保持穩定。若SYNC從高電平變?yōu)榈碗娖饺缓蠓祷馗唠娖?,則必須記錄低電平狀態(tài)的持續時(shí)間。如果持續時(shí)間長(cháng)于5個(gè)幀加9 個(gè)字節,則表示接收器檢測到了較大的錯誤,并將發(fā)送請求以重新初始化JESD204鏈路。如果持續時(shí)間等于兩個(gè)幀時(shí)鐘,則表示接收器檢測到了較小的錯誤,但不會(huì )觸發(fā)鏈路重新初始化。這個(gè)功能可極大地簡(jiǎn)化系統調試,并為進(jìn)一步的鏈路監測提供便利。因此,用戶(hù)應當在設計中包含這個(gè)功能。
8B/10B解碼錯誤可能導致JESD204B鏈路重新初始化,但這并非是唯一的原因;因此,用戶(hù)在設計時(shí)應能夠對各通道的解碼錯誤進(jìn)行計數,從而確定鏈路重新同步的原因。此外,可通過(guò)8B/10B解碼錯誤狀態(tài)實(shí)時(shí)確定SERDES鏈路質(zhì)量。
偽隨機位序列(PRBS)提供了一個(gè)測量高速鏈路中信號質(zhì)量和抖動(dòng)容差的有用資源。大部分FPGA 中的SERDES收發(fā)器都內置了PRBS發(fā)生器和檢查器,無(wú)需額外的FPGA資源。因此,不要忘了實(shí)例化此功能,在評估比特誤碼率(BER)或眼圖時(shí)會(huì )使用到這個(gè)功能。
SERDES收發(fā)器中通常會(huì )使用一個(gè)緩沖器,來(lái)改變內部時(shí)鐘域。如果發(fā)送器和接收器的時(shí)鐘設計不佳或者時(shí)鐘數據恢復模塊(CDR)設置錯誤,那么就會(huì )導致緩沖器上溢或下溢。此時(shí)可能會(huì )發(fā)生某些鏈路錯誤,因此有必要監測緩沖器狀態(tài)。緩沖器上溢或下溢的中斷記錄對于系統調試而言是很有用的,所以同樣應當監測用戶(hù)邏輯中不允許發(fā)生下溢或上溢的其它內部緩沖器的狀態(tài)。
結論
本文討論了如何在Xilinx FPGA上快速實(shí)現JESD204模塊,實(shí)現方法同樣可用于其它FPGA。首先,應了解FPGA供應商提供的JESD204邏輯核和收發(fā)器的功能以及接口,然后將其實(shí)例化并與您的邏輯整合。其次,從全局角度出發(fā)設計FPGA時(shí)鐘樹(shù),和整個(gè)工程的復位順序。然后,仔細定義JESD204邏輯核、用戶(hù)邏輯和收發(fā)器之間的接口。最后,加入必要的調試資源。遵循這些步驟有助于您快速、成功地設計JESD204接口。
評論