章 睿,楊瑞瑞,張文沛
隨著數字通信業務的蓬勃發展導致通信系統對傳輸帶寬提出了更高的挑戰,例如10 Gb/s高速并行接口在光纖通信、數據交換、網絡通信等方面有著廣泛的應用。目前主流元器件解決方案中,主要采用高速串行接口(SerDes)實現高速接口,但SerDes接口工作頻率高、設計復雜、價格昂貴。文中設計了一種高速并行差分接口方式,利用國內流片廠商IP,結合自行設計的控制和同步邏輯,可以實現雙向10 Gb/s數據接口,滿足高速接口的國產化需求。
高速并行傳輸的瓶頸之一是對數據的有效恢復,數據恢復中主要存在兩個問題:一是當單線傳輸速率越來越快時,相應的每位數據所占的時間窗口不斷減小,導致時鐘很難在數據的有效窗口準確采樣;二是由于并行傳輸的各條數據路徑延遲不同,導致接收端無法有效的同步接收并行傳輸的各路數據。
文中描述一種基于數字的高速并行數據恢復和同步的設計方法,通過對訓練數據采樣時鐘相位的計算反饋輸出到DLL鎖相環從而改變時鐘的采樣相位,使時鐘采樣發生在數據有效窗口的中央,因此能夠保證時鐘、數據在外界溫度、濕度和干擾等情況下正確地采樣和恢復出數據。
系統結構如圖1所示,其包括接收RX與發送TX兩個獨立部分。

圖1 系統結構框Fig.1 System structure
接收部分包括每個通道的低電壓差分信號(LVDS)接收電路[1],每個通道的接收串行轉并行電路,每個通道的數據采樣時鐘相位計算和調整模塊以及所有通道的字同步模塊。其中采樣時鐘相位調整模塊包括一個DLL鎖相環和每個通道對應的時鐘相位調整無毛刺選擇電路MUX。
發送部分包括訓練序列產生器[2]和數據輸出,每個通道的并行轉串行電路,每個通道的低電壓差分信號(LVDS)發送電路,見圖2。
發送部分的電路設計比較簡單,控制好640 MHz、320 MHz、160 MHz這三組時鐘的相位關系[3],保證64位并行數據通過兩次并串轉換壓縮到16位并行數據,從160 MHz時鐘域逐級進入320 MHz時鐘域、640 MHz時鐘域,最終數據以DDR方式伴隨320 MHz隨路時鐘輸出。

圖2 并串轉換電路Fig.2 P-to-Scircuit
下文重點介紹數據接收部分電路的設計。
在10G高速并行接收電路中,以16對低電壓差分信號(LVDS)差分對接收10G并行數據流[4]。每對LVDS管腳通道的數據為雙沿串行數據(DDR),隨路時鐘320 MHz,經過圖3描述的串并轉換電路后轉換為4位并行數據,并降頻進入160 MHz時鐘域。

圖3 串并轉換電路Fig.3 S-to-P circuit
如圖3所示,串行數據流進入串并轉換電路后,同時接入一個上升沿采樣寄存器和一個下降沿采樣寄存器[5],采樣時鐘320 MHz。然后對采樣后的數據進行組合,由下一級160 MHz時鐘將4 bit的并行數據輸出。
圖4為采樣時鐘相位同步電路框圖,包括一個采樣時鐘相位計算模塊和一個由DLL與異步無毛刺時鐘切換MUX組成的時鐘相位調整模塊。
DLL可以對每個數據通道的采樣時鐘進行1/16精度的相位調整,每個通道每次調整的相位由相位計算模塊對采樣數據進行處理后反饋給相位調整模塊。在高速并行接口正常工作前,發送端與接收端首先發送多組訓練數據,選擇與每個通道數據相位匹配的時鐘信號。

圖4 相位同步電路Fig.4 Phase synchronization circuit
高速并行接口正常工作之前,外部器件首先按照約定的方式發送訓練數據“0000_0000_0000_0000_0011_1111_1111_1111_1111”,重復發送多次訓練數據。
接收端將串行數據轉為并行4位數據進行處理,其過程如下:
1)首先通過相位計算電路搜索出串行數據電平的變化沿即對4為數據進行異或,如以“0001”為例得到右邊沿“001”。
2)然后每次對采樣時鐘相位加1/16,即選擇DLL的一個相鄰輸出,直到數據沿變化為“010”的中間沿,此時記下移相次數counter1。
3)重復上述移相過程直到得到左邊沿“100”,同樣記下移相次數counter2。
4)最終計算出采樣時鐘移相位(counter1+counter2)/2。
圖5為并行數據字同步框圖,包括一個移位計算模塊和一個基于流處理的異步FIFO。
每個通道數據相位調整完成后給出BitRdy信號,字同步模塊即可以對數據進行處理。字同步同樣會用到訓練數據的跳變沿,且以“0011”為同步字,例如,當接收到并行數據是“0001”時則移位計算模塊會將數據向左移一位。
當每個通道都計算出移位數后會產生WrdRdy,將所有通道的WrdRdy作邏輯與處理得到AllRdy信號,如圖5所示。

圖5 字同步電路Fig.5 Word synchronization circuit
當AllRdy有效且同步字到來時將數據存入到異步FIFO中,對于異步FIFO的讀信號則在AllRdy有效至少一個周期同時在將FIFO寫滿之前有效,因此理論上本字同步方法能夠糾正的周期偏差在于FIFO深度,即將FIFO寫滿的周期數。
采用文中設計的高速接口方法,在中芯國際(SMIC)的0.13μm工藝上,已經設計實現了雙向10 Gb/s傳輸速率的高速接口芯片。
為驗證文中設計的高速接口方法的正確性,設計了高速接口芯片專用測試板,如圖6所示。

圖6 測試板框Fig.6 Test circuit diagram
1)用FPGA對接所設計的高速接口芯片。
2)用PC機通過USB接口,與FPGA通信。
3)由FPGA發起數據傳輸,將內置于FPGA內的待處理數據,分成大數據包,通過FPGA發送給高速接口芯片的10G數據接收口(其中數據總線16位,時鐘320 MHz,DDR采樣方式,傳輸帶寬達10 240 Mb/s,即10.24 Gb/s,超過了10 G光纖信道接口規范要求的10 Gb/s)。
4)高速接口芯片接收到FPGA發送的數據后,進行算法運算處理。
5)運算結果通過高速接口芯片的10 G數據發送口輸出給FPGA。
6)FPGA接收高速接口芯片發送的運算結果,與FPGA內置的理想結果對比,如一致則證明在傳輸過程中沒有發生數據錯誤。
7)因數據量較大,循環使用FPGA內置的數據來實現接口上的大數據量傳輸。
8)一旦有一個數據包發生數據錯誤,FPGA將出錯信息通過USB接口發給PC機報警。
經48小時實際測試,高速接口芯片連續傳輸數據無錯誤產生。
該設計方法已用于某款“核高基”高速芯片,該芯片經過第三方測試機構測試證明接口性能超過雙向10 Gb/s,并以成功應用于10 G SDH光纖信道設備。
文中首次公開披露利用國內流片廠商IP,結合自行設計的控制和同步邏輯,可以實現雙向10 Gb/s數據接口的方法。
文中研究內容基礎上,今后將通過擴展數據位寬、提高接口隨路時鐘頻率等方法,進一步提升接口帶寬,實現10 Gb/s以上,甚至40 Gb/s的高速數據接口。
[1] IEEE1596.3 ,1996[S].USA:IEEE.
[2] WAKERLY J F.Digital Design:Principles and Practices[M].Third Edition.NJ,USA:Prentice-Hall,2000.
[3] 陳春章,艾霞,王國雄.數字集成電路物理設計[M].北京:科學出版社,2008:60.
CHEN Chun-zhang,AI Xia,WANG Guo-xiong.Digital Integrated Circuit Design[M].Beijing:Science Press,2008:60.
[4] 唐杉,徐強,王莉薇.數字IC設計-方法、技巧與實踐[M].北京:機械工業出版社,2006:50.
TANG Shan,XU Qiang,WANG Li- wei.Method,the Design of Digital ICSkills and Practice[M].Beijing:Machinery Industry Press,2006:50.
[5] 王彬,任艷穎.數字IC系統設計[M].西安:西安電子科技大學出版社,2005:22.
WANG Bin,REN Yan-ying.Digital IC System Design[M].Xi'an:Xi'an Electronic and Science University press,2005:22.