前言
隨著SERDES應用越來越多,速率也越來越高,SI的問題漸漸變得越來越重要,它對PCB設計,SERDES參數優(yōu)化都有著非常重要的指導作用。而器件選型也往往以SI仿真開始。
但是在仿真時,工具會讓用戶自己設置一些信息,比如抖動,擺幅,預加重等等。擺幅和預加重之類都可以在手冊里找到。但抖動的設置卻沒有一個明確的指導。而且不同抖動設置的會得到完全不同的結果。所以錯誤的設置往往會誤導我們的設計和優(yōu)化。特別在器件評估階段還會決定器件選型的成敗。
這篇短文就是給大家仿真中設置抖動一個簡單的指導。
抖動
簡單而言,抖動就是信號的沿對理想位置偏移。在示波器上,如果沒有抖動,我們可以看到信號沿應該是一條清晰的線。但是由于抖動的存在,我們在沿上看到的是模糊的一片。

根據抖動的特性及其形成原因,抖動可以分成2種:隨機抖動(RJ: Random Jitter)和確定抖動(DJ: Deterministic Jitter)。
隨機抖動RJ
隨機抖動是由熱噪聲、散粒噪聲等隨機噪聲引起。它的分布符合高斯分布。由于高斯分布的尾部擴展到無窮大,RJ的峰峰值沒有邊界。而RJ的均方根(RMS: Root Mean Square)收斂到高斯分布的寬度上。所以 隨機抖動一般測量的都是其均方根值,以ps RMS或UI RMS為單位。
當我們要在RMS和峰峰值間近似轉換時,就需要有一個轉換系數,它根據不同的誤碼率有對應的值,如下表所示:

確定性抖動DJ
確定性抖動有3個基本的分類
數據相關抖動(DDJ: Data Dependent Jitter)
1. 占空比失真 (DDC:Duty Cycle Distortion)
2. 碼間干擾(ISI: Inter-Symbol Interference)
周期性抖動 (PJ: Periodic Jitter)
有界不相關抖動 (BUJ: Bounded Uncorrelated Jitter)
周期性抖動PJ是在某個周期或頻率上重復出現的抖動信號,相當于對信號有一個調頻。所以會看到周期性地出現信號周期的變大和變小。
有界不相關抖動BUJ主要是由電磁干擾(EMI)、串擾引起。其中串擾是BUJ的主要成因。由于串擾形成的隨機性,BUJ是有界的,但他和數據模式無關。順便說一下,這個抖動在接收側是無法補償的,在測試接收抖動容忍度時,插入的就是BUJ。
數據相關抖動DDJ由于電或光系統(tǒng)的“記憶”效應,當前bit的跳變時刻會受到前面bit跳變時刻的影響而引入的。它和數據的模式(pattern)相關,其中和游程(Run Length)密切相關,另外一個是占空比失真。同時DDJ還和信號經過的信道或媒質的沖擊/階躍響應有關。由于不同數據模式所帶不同的游程使得脈沖跳變沿不均勻,使得出現了ISI。最大的干擾來自于短脈沖和與其極性相反的長脈沖之間的干擾,反之亦然。
確定性抖動測量的是峰峰值,以ps或UI為單位。
為了方便理解,下面是抖動的整個分類圖:

對于抖動的詳細說明,有很多資料可查,所以這里只是簡單說明一下,以方便理解后面的正題。
在XILINX的IBIS-AMI模型里對抖動的處理如下:
1. PJ、DCD等DJ這些SERDES固有的抖動元素在建模時都已經包含在內,所以在EDA/仿真工具里,所以相應的值可以放心地設成0;
2. RJ是需要用戶自己設置的;
3. ISI和線路相關,所以在這個DJ元素會在仿真中體現,不需要在TX側設置(否則會重復計入)。
仿真中抖動的設置
抖動設置
在XILINX的每款芯片出來后,都會有特性報告。在仿真里,我們需要用的是Generic Characterization Report,因為這是大批量測試的結果。
在這里我們以ADS上仿真GTX為例做說明,線速率是9.8304Gbps。

在仿真中,我們需要看TX信號經過一段PCB走線后的眼圖。需要說明一點的是,在ADS中,用bit-by-bit模式是符合仿真結果的。特別當我們在線路中間加上EYE_PROBE_DIFF時,STATISTIC模式的結果是不可用的。
接收側的模型是一個IDLE_RX。它沒有均衡設置,只相當于是一個終端匹配。這樣是為了能夠客觀顯示遠端眼圖,而不是經過RX均衡后的眼圖。

從通道(包括FPGA封裝和PCB走線)的S參數看,在4.9152GHz上的插損是
1. 單端(紅色): -6.5dB
2. 差分(黃色): -5.1dB
從K7 GTX的Generic Characterization Report,我們可以看到發(fā)送側在9.8304Gbps速率下的發(fā)送抖動。

表格中的RJ是峰峰值。
不管是TJ還是DJ, RJ, 都有MIN和MAX值。但不是簡單的把DJMAX 和RJMAX簡單相加就是TJMAX。這些都是各自的最大值,但不是最大DJ的通道有最大RJ。從表格里值簡單相加也說明不是這樣的。
所以我們在選擇參數是,就選最大值MAX, 0.114 UI。
在ADS的設置里,RJ是RMS值。由于我們設置的誤碼率是1E-12, RJ需要除以系數14.069:
0.114/14.069 = 0.0081 UI

前面說到,ISI的的原因是不均勻的脈沖沿經過PCB走線后由于其“記憶”效應導致。這是信號經過傳輸線后的必然效應。所以這個不能設置在發(fā)送側的DJ里,否則會重復計算ISI的值。
仿真結果
由于信號需要走一段PCB,我們在發(fā)送側還設置了預加重。
TXPRECURSOR = 3 (0.68dB)
TXPOSTCURSOR = 8 (1.94dB)
下面是擺幅為677mV時的結果。

由于PCB板子的原因,遠端眼圖的抖動大于特性報告的值。這是可以理解的。
總結
在SERDES的仿真里,抖動的正確設置至關重要。
在XILINX SERDES的IBIS-AMI模型里,已經包括的DJ的主要要素,而ISI是信號經過傳輸線引入的。所以在仿真時,DJ設成0, RJ則是SERDES的Generic Characterization Report的最大值以得最壞結果。
電子發(fā)燒友App






















評論