本身接觸過許多家的高速serdes,無奈數學基礎太差,只能像烏魚爬同樣,一點一點的積累知識和經驗,這裏把平日裏學到的點點滴滴記錄下來,但願對本身和同事有所幫助。算法
channel的特性。這裏第一張圖給出了三種它的傳輸函數,或者說它的s21。在不一樣的長度,loss區別很大。咱們看到第一個藍色的,它的loss就會比較小,在2.5Gbps時loss大概不到5db;而紅色的這種比較長,它的loss在2.5Gbps的時候就有10個dB多一些。這個綠色的一根線,它不光loss多一點,還在10Gbps時有一個不好的一個點的loss,到-60多dB。
通常在設計的時候,會拿一個channel的model通常是Sparameter或者是LGC這種model,而後在前仿真/後仿真去驗證咱們的design。
從它的衝擊響應能夠看到紅色的在4ns前面一點開始上升,好比說在4ns前一點去sample它,那麼能夠獲得一個數據。可是在後面,好比說4ns多一點的時候去sample它,也可能獲得1個1,原本應該是獲得了1個0,這就會產生一個錯誤的數據。
單位衝激響應疊加以後,就會產生一個眼圖。或者在PRBS的輸入下,摺疊輸出以後會獲得一個眼圖。咱們看到這個眼圖在不一樣的channel上它的opening,就是高度、寬度差異很是大的編程
SerDes的基本結構圖。前面就是把並行數據轉換成串行數據(通常也叫MUX),而後再給TX發送出去。由於channel本徵阻抗是50Ω,因此TX這邊加一個termination,50Ω的特徵阻抗來保證阻抗匹配。Rx這邊一樣加一個50Ω特徵阻抗來保證匹配,這樣纔沒有反射。而後RX和TX這邊分別有負責時序的,好比說PLL和Timing Recovery,這些模塊專門爲這些電路提供clock。
把它能夠分紅兩個主要部分,第一部分就是timing,爲發送和接收數據提供clock;第二部分就是signaling,就是信號處理。TX邊主要是把數據發送出去保證必定的眼高,而後Rx這邊把數據恢復出來。由於channel loss以後,signal多是看不到的。這就說RX主要作兩件事,既要恢復數據、又要恢復時序。恢復數據就是要知道是0仍是,對於這種PAM 2也就是NRZ類數據來講。而且要找到怎麼去、在哪一個時間點上去sample這個data,也就是恢復出一個最好的timing。Rx clock的上升沿採在這個數據它的正中間,這樣通常是最好的。函數
data上面的jitter其實不是那麼在意,只要保證setuptime、hold time,而clock上的jitter就相當重要。post
RING VCO,通常來講可能在5GHz的clock能作到1.5ps的RMS Jitter。有可能會作的更好,但問題是功耗在繼續增長。
對於PAM4來講,它的eye opening會更小,由於它的上升沿有不一樣transition,這樣PAM4的eye opening會小30%。這裏的30%具體指的是EYE的寬度,另外EYE的高度比較明顯的會小1/3,也就是9.5dB。
對於14GHz的clock或者28Gbps datarate來講,用RING產生時鐘比較困難,而且對這種data rate,jitter要求會更高。好比說RMS jitter 0.2ps,這時候大概佔UI的11%。在高頻的時候,數據恢復這邊(signaling)也會更困難,因此要儘可能保證這邊的Jitter margin多留一點。性能
另一部分就是在RX的timing recovery。CDR的主要目的就是找到一個最好的sample點,使得sample的數據儘可能是對準數據的中心店,也就是說BER儘可能的小。
CDR的主要性能就是jitter tolerance,它能夠track PLL的一部分jitter。還有就是CDR的bandwidth和它的功耗,bandwidth越高功耗就要更高。ui
數據處理主要是均衡器,TX這邊叫emphasis,或者叫FFE。RX這邊的均衡器會比較多一些,好比說CTLE。有有源的、無源的,可能還會有些其它的濾波器。而後最重要的還有DEF,它有各類結構。spa
若是channel的insertion loss特別小(<15dB),TX那邊直接把信號給發送出來,經過一個50Ω的阻抗匹配。而後RX這邊有個50Ω的阻抗匹配,最後直接一個比較器就把它收過來了,這樣也是能夠的。
可是,當channel的insertion loss比較大(>25dB)的時候,這個問題就十分重要了,TX FFE可使得頻率響應曲線變得平坦,減小ISI。TX輸出阻抗和RX端口阻抗要保證50Ω來匹配channel的阻抗,保證沒有反射。
在下面的三張圖表示均衡器的做用。好比說,Channel一開始時隨着頻率升高loss愈來愈大的,可是若是在5GHz的點給一個gain,而在低頻時候沒有gain。這樣就把5GHz這個頻點給boost上去,看到第三張圖綠色的這個就顯得比較平坦,這樣的ISI就會小。
TX端的Equalization是TX的equalization。通常用4-tap FFE,除了一個主的之外,前面有一個,後面還有個POST一、POST2,而後都加在一塊兒後通過50Ω輸出。
看一下TX FFE的做用,它是如何消除ISI的。若是沒有FFE就是沒有post-emphasis。那麼data出來以後高頻的信號就變得小。而若是有第一個post的emphasis,能夠看到第二張圖紅色的輸出的響應,高頻的信號明顯變大了,低頻信號稍微小一點設計
Rx的均衡技術。第一個就是CTLE,連續時間線性均衡器。它主要來補償channel對高頻信號的insertion loss。它是一種無源的,只有RC或者有L。無源的就意味着沒有Gain。它只能把低頻的減弱,把高平的相對來講是增高能量。而且無源design有個好處就是它不會產生noise,除了R會產生的noise,可是通常來講R會比較小。而晶體管的noise相對多一些。
CTLE通常是RX的第一級。
在奈奎斯特頻率,CTLE通常都會有一些Gain。這樣後邊的noise就不那麼敏感了,好比後面VGA、DFE、sampler。
CTLE通常都是採用可編程的CS、RS,由於channel都不同,甚至有時還會有自適應算法來自動配置RS、CS(有待商榷??)。下圖中的fp1就是Nyquist頻率,對於10Gbps的baud rate而言,fp1=5GHz。
3d
DFE技術(decisionfeedback equalization)code
因此總結下來,DFE包含3點,一個就是decision,第二個就是feedback,而後第三個就是它非線性。
這裏有兩個channel,這兩個channel的insertion loss不同,那麼接收端的DFE就要自適應這兩個channel。而且通常的自適應電路是always on,用它來去cover一些電路或者是那些channel的溫飄效應獲得。自適應的話就須要額外的比較器,而且一直工做。
通常對於10Gbps信號咱們用@5GHz Nyquist頻率來看它的Insertion Loss點,25.78125Gbps速率的信號用12.89GHz
以25.78125Gbps速率信號爲例,serdes內部的恢復時鐘不會是25.78125GHz,由於這樣時鐘信號過高了,只會恢復出12.89GHz的時鐘,而後經過移相90度,對於25.78125Gbps這麼高速信號,通常只會sample一個點
對於10Gbps信號,會用2個不一樣相位的時鐘(0相位的5GHz,和移相90度的5GHz)採樣4個點。
另外,能夠把25.78125Gbps速率的信號接入到頻率分析儀的輸入端,能夠看到它的能量最大的頻點是12.89GHz,因此這也能夠說明內部恢復出來的時鐘不是25.78125GHz,而是12.89GHz.
Muller-Muller
Bang-Bang
如何調節TX FFE參數
根據接收端的眼圖來調整:
如何調整RX參數
高速串行信號通過一段距離傳輸以後,每每在接收端每一個bit信號的信號寬度會發生變化,好比發送端發送 1111_0_1111, 這樣在接收端的"0"這個數據bit的信號寬度就會特別窄,極可能時鐘沒法對準信號的中間採樣,致使誤碼。通過re-timer或者repeater的信號從新整形以後,把過窄的信號寬度從新整造成1個UI,而後再發送出去,這樣後續的接收器就不容易出錯
post-cursor和pre-cursor名稱中的post和pre的由來:
跳變以後
的預加劇跳變以前
的預加劇