一種時鐘數據恢復電路的抖動容限仿真驗證方法與流程
2023-06-27 06:38:56 1
本發明公開了一種時鐘數據恢復電路抖動容限的仿真驗證方法,可以在設計階段對接收端的抗抖動性能進行評估。具體是通過在偽隨機碼產生模塊的時鐘上加抖動,得到帶抖動的偽隨機碼作為CDR的串行輸入數據,然後進行電路仿真,得到CDR的輸出數據文件,然後對CDR的輸出數據文件進行誤碼檢測處理。
背景技術:
隨著數字通信技術的快速發展和數據處理能力的不斷提高,使得晶片、板卡以及系統之間的信息交換量變得越來越大,這導致I/O傳輸速率成為了限制系統性能的瓶頸。早期的並行總線,由於時鐘偏斜、串擾、耦合等問題的影響,在數據傳輸率的提升上受到限制,已不能適用於目前的高速通信系統。一種基於低壓差分信號的高速串行傳輸技術SerDes(Serializer-Deserializer)經過不斷的發展和改進成為了高速通信系統的主要技術。高速串行差分信號傳輸,能夠節約連線資源和成本,同時屏蔽傳輸路徑中的電磁幹擾,不僅提高傳輸速度,還可以提高信號傳輸質量。
在高速串行數據傳輸系統SerDes中,發送端將較低速的並行數據進行編碼並完成數據的串行化,然後通過驅動電路將發送數據轉化為差分信號,輸出到互連線上。在接收端,接收器從數據流中提取出時鐘信息,並用恢復的時鐘對數據進行採樣,恢復出傳送的數據信號,這個過程叫時鐘數據恢復(CDR,Clock Data Recovery),恢復的數據做進一步的串並轉換和解碼處理。時鐘數據恢復電路是實現高速串行通信的關鍵模塊,它從串行數據中恢復出時鐘信號,然後對數據重定時恢復出數據,並消除了數據傳輸過程中引入的抖動。
隨著數據率不斷提高,噪聲等非理想因素對信號的影響越來越大,使信號質量下降,使波形退化,從而引起數據的誤識別,也就是誤碼。對於高速串行傳輸系統中,由於傳輸過程中非理想因素的影響,接收端接收的數據並非理想的,而是理想信號和傳輸過程中的影響的疊加。抖動是引起誤碼的重要因素。接收端的CDR電路能否從疊加有抖動信號的數據流中恢復出正確的時鐘信號,並採樣到正確的數據,是高速串行接口電路的一個重要性能指標,因此,對接收端CDR電路的抖動容限進行驗證非常有必要。
目前針對CDR電路的抖動容限的驗證方法,多數是在流片後對抖動容限進行測試。一般情況是,在流片後基於ATE進行測試,測試抖動容限分為四個步驟:(1)產生不同頻率和大小可控的抖動信號;(2)產生測試數據流;(3)將抖動信號施加到被測數據流中;(4)測量輸出信號的誤碼率。然後通過改變抖動的大小和頻率來得到晶片的抖動容限。該方法能夠較準確的得到CDR的抖動容限,但需要先流片,得到測試晶片,而在設計階段評估晶片的抖動容限可以大大降低流片的風險。
在設計階段評估CDR的抖動容限,即通過仿真的方式驗證CDR的抖動容限。仿真驗證的難點在於:1、如何在CDR的輸入端加入帶抖動的測試信號,一般的SerDes系統有一定的編碼規則(如:8B/10B編碼),測試序列應為對應編碼規則的偽隨機碼,即PRBS碼(如:針對8B/10B編碼的SerDes系統的測試碼一般是PRBS7碼。),如何在CDR的輸入端加入疊加抖動的PRBS碼是仿真驗證CDR抖動容限的一個難點;2、仿真次數多,驗證的時間長,驗證CDR的抖動容限,需要驗證多個頻率點,且每個頻率點需要測試多個抖動值才能得到對應的抖動容限值,即仿真次數較多,所以每次的仿真時間應儘量短。
用ATE進行抖動容限的測試時,產生帶抖動測試數據的方法是:先產生測試數據流,再將抖動疊加在測試數據流上(在數據上疊加抖動可以理解為使數據的跳變沿在理想跳變沿的前後進行擺動。)。在實現仿真驗證時可以參考測試的思想,但因為在仿真驗證時,疊加抖動只能將數據在時間軸上向後延遲,不能延時間軸的反方向疊加,所以難以實現理想的抖動疊加效果。
技術實現要素:
本發明的技術目的是:對高速串行接收端的CDR電路的抖動容限進行仿真驗證,通過測試數據產生模塊得到帶抖動的測試數據,將該測試數據作為CDR模塊的輸入,然後進行電路仿真得到CDR的輸出數據文件,用誤碼檢測模塊對CDR的輸出數據文件進行誤碼檢測處理,改變抖動的幅度和抖動的頻率得到CDR的抖動容限。
本發明實現目的的技術方案是:
本發明的技術方案包括三個部分:驗證模塊的設計、仿真驗證方法和抖動容限的驗證流程。
本發明驗證模塊框圖如圖1所示,包含測試數據產生模塊、CDR電路模塊和誤碼檢測模塊。測試數據產生模塊由抖動調製時鐘JCLK和偽隨機碼產生模塊PRBS組成。抖動調製時鐘即疊加有抖動的時鐘,可由Hspice中的SFFM(Single-frequency FM)實現或用VerilogA語言實現,可根據所需疊加的抖動幅度和抖動頻率調整該時鐘的抖動幅度和抖動頻率。偽隨機碼產生模塊用VerilogA語言設計,採用線性反饋移位寄存器(LFSR)的思想實現,輸出指定高低電平的串行差分偽隨機信號。將抖動調製時鐘作為隨機碼產生模塊的時鐘即能得到帶抖動的測試數據JPRBS,圖3即為帶抖動的測試數據眼圖,通過調節抖動時鐘的抖動幅度可以改變眼圖的眼寬,通過設置PRBS模塊的輸出高低電平可以調節眼圖的眼高。
誤碼檢測模塊由Python語言實現,在CDR仿真完成後,對CDR輸出數據文件進行處理,根據PRBS碼的碼型特徵判斷是否出現誤碼。
本發明仿真驗證方法的實施步驟圖如圖2所示,將測試數據產生模塊產生的抖動信號JPRBS作為CDR電路模塊的輸入串行差分信號,對CDR電路進行仿真,仿真得到CDR恢復後的並行輸出數據RXD,圖4是並行輸出數據RXD的仿真截圖,上面的是RXD的仿真波形,下面是RXD經過模數轉換後的結果,然後將輸出數據RXD保存在文本文件中。在CDR仿真完成後,用誤碼檢測模塊對CDR輸出數據文件進行處理。
抖動容限的驗證流程如圖4所示:(1)設置測試數據產生模塊中抖動時鐘的抖動頻率;(2)設置測試數據產生模塊中抖動時鐘的抖動幅度;(3)對CDR電路模塊進行仿真,並調用測試數據產生模塊;(4)查看仿真結果,即CDR恢復後的數據,並將該恢復後的數據保存到文本文件中;(5)用誤碼檢測模塊對CDR恢復後的數據文件進行誤碼檢測處理;(6)如果檢測結果有錯則降低抖動幅值後重複(2)~(5)的步驟,如果檢測結果正確則提高抖動幅值後重複(2)~(5)的步驟,直到找出對應抖動頻率下的抖動最大容限值;(6)改變抖動頻率重複(1)~(5)的步驟,直到所需頻率點驗證完畢。
本發明的技術效果在於:
首先,本發明在晶片設計階段對SerDes晶片接收端的抖動容限進行仿真驗證,降低了流片風險;
第二,本發明由帶抖動的時鐘產生帶抖動的測試信號,可以得到理想的抖動測試信號(抖動信號的跳變沿在理想信號跳變沿的兩側擺動。),並且可通過調節時鐘抖動參數值來調節數據抖動的幅度和頻率;
第三,本發明中的測試數據產生模塊由VerilogA語言實現,可在CDR電路仿真時直接調用,操作簡單,易於工程實現;
第四,本發明的測試數據產生模塊可由SFFM時鐘和偽隨機碼產生模塊實現,實現簡單,且由測試數據產生模塊所增加的仿真時間短;
第五,本發明將CDR電路的仿真與誤碼檢測分開進行,節省了仿真時間,且誤碼檢測模塊用Python語言實現,可以方便快捷的得到誤碼檢測結果;
最後,本發明在晶片設計階段進行仿真驗證,有效的降低了流片風險,產生的數據抖動理想且易調整,驗證方案實現簡單,仿真時間短,是對CDR抖動容限的一種實際有效的仿真驗證方法。
附圖說明
圖1驗證模塊框圖。
圖2仿真驗證方法的實施步驟圖。
圖3生成的測試數據眼圖。
圖4接收端並行輸出數據仿真結果波形圖。
圖5抖動容限的驗證流程圖。
具體實施方式
為使本發明的方法和優點更加清楚易懂,下面詳細描述本發明所提供的抖動容限仿真驗證方法的設計方案,但不構成對本發明的限制。
本發明是一種時鐘數據恢復電路的抖動容限仿真驗證方法,其具體實施步驟包括:
第一階段:抖動容限的驗證模塊設計。
Step1:設計抖動容限的驗證模塊,抖動容限的驗證模塊包括兩部分:測試數據產生模塊和誤碼檢測模塊。測試數據產生模塊用於產生包含抖動信息的低壓串行差分信號,包括抖動調製時鐘JCLK和偽隨機碼產生模塊PRBS。抖動調製時鐘用Hspice中的SFFM實現,抖動調製時鐘的抖動幅值和抖動頻率可調節。
偽隨機碼產生模塊用抖動調製時鐘JCLK作為輸入時鐘,由線性移位寄存器的思想實現偽隨機信號產生邏輯,輸出信號為高低電平可調節的差分低壓偽隨機信號(輸出信號的高低電平由輸入端的要求決定。)。將測試數據產生模塊用VerilogA語言實現後作為獨立模塊保存,在CDR仿真時調用。CDR仿真後得到恢復出的並行數據RXD的波形,將RXD通過模數轉換後,輸出到文本文件中。
誤碼檢測模塊用Python語言實現,根據PRBS碼的碼型特點對仿真結果進行誤碼判斷,即對保存RXD信息的文本文件進行處理。誤碼檢測模塊的檢測思想是,首先找出PRBS碼中的最長連1串,然後再判斷接下來的數據是否和對應偽隨機碼的數據一致。
第二階段:在一定頻率下,測量SerDes接收端對抖動的最大容忍能力。
Step2:設置測試數據產生模塊中的抖動時鐘的抖動幅度和抖動頻率,編寫電路仿真激勵,並在仿真激勵中調用測試數據產生模塊的VerilogA模型,並將產生的測試數據作為SerDes的輸入差分串行數據。
Step3:運行仿真文件。
Step4:查看仿真結果中CDR恢復後的並行輸出數據波形,並將該並行數據波形輸出到文本文件中。
Step5:運行誤碼檢測模塊的Python腳本,對並行輸出數據進行誤碼檢測。
Step6:如果檢測結果有錯,則降低抖動時鐘的抖動幅值後重複Step2~Step5的步驟,如果檢測結果正確,則提高抖動時鐘的抖動幅值後重複Step2~Step4的步驟,直到找出對應抖動頻率下的抖動最大容限值。
Step7:改變抖動頻率重複Step2~Step6的步驟,直到所需頻率點驗證完畢。
本發明提供了一種時鐘數據恢復電路的抖動容限仿真驗證方法,包含測試數據產生模塊和誤碼檢測模塊,實現了在晶片設計階段對CDR的抖動容限的仿真驗證。接收端的CDR電路是高速串行接口電路SerDes的重要組成部分,它能否從疊加有抖動信號的數據流中恢復出時鐘信號,並採樣到正確的數據,是SerDes電路的一個重要的性能指標,在設計階段對CDR的抖動容限進行仿真驗證非常重要。本發明中的驗證模塊實現簡單,仿真耗時短,驗證方便,調節靈活。綜上所述,本發明有效的降低了流片風險,易於實現,是一種有效的驗證方法。
上述各實施例僅用於說明本發明,其中各模塊的具體實現都是可以有所變化的,凡是在本發明技術方案的基礎上進行的等同變換和改進,均不應排除在本發明的保護範圍之外。