精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SerDes是怎么設計的?(一)

摩爾學堂 ? 來源:摩爾學堂 ? 作者:摩爾學堂 ? 2023-10-16 14:50 ? 次閱讀

FPGA發展到今天,SerDes(Serializer-Deserializer)基本上是器件的標配了。從PCI發展到PCI-E,從ATA發展到SATA,從并行ADC接口到JESD204,從RIO到Serial RIO……等等,都是在借助SerDes來提高數據傳輸的性能。SerDes是非常復雜的數?;旌显O計,用戶手冊的內容只是描述了相對粗略的概念以及使用方法,并不能完全解釋SerDes是怎么工作的。在使用SerDes的過程中,設計者有太多的疑惑:為什么在傳輸的過程中沒有時鐘信號?什么是加重和均衡?抖動和誤碼是什么關系?各種抖動之間有什么關系?時鐘怎么恢復?等等這些問題,如果設計者能夠完全理解這些問題,那么對于SerDes的開發也不再是難事。本文試著從一個SerDes用戶的角度來理解SerDes是怎么設計的。

SerDes的價值

并行總線接口

芯片之間的數據傳輸,最早的時候是以串行傳輸的方式完成的,但隨著數據量的越來越大,串行數據傳輸的缺點變得特別明顯:速率太低。所以芯片設計者就想著增加數據傳輸的位寬,用并行的方式傳輸數據,這樣相對于串行傳輸就有更高的傳輸速率。芯片之間的互聯通古系統同步或者源同步的并行接口傳輸數據。圖1.1演示了系統同步和源同步并行接口。

29621f6c-699e-11ee-939d-92fbcf53809c.jpg

隨著接口頻率的提高,在系統同步接口方式中,有幾個因素限制了有效數據串口寬度的繼續增加。

時鐘到達兩個芯片的傳播延時不相等(clock skew)

并行數據各個bit的傳播延時博相等 (data skew)

時鐘的傳播延時和數據的傳播延時不一致(skew between data and clock)

雖然可以通過在目的芯片(chip #2)內使用PLL補償時鐘延時差(clock skew),但是PVT(Process Verification Test)變化時,時鐘沿是的變化量和數據延時的變化量是不一樣的。這又進一步惡化了數據窗口,即無法通過簡單的、不斷增加的數據總線數達到增加數據傳輸速率的目的。

源同步接口方式中,發送端Tx把時鐘伴隨數據一起發送出去,限制了clock skew對有效數據窗口的危害。通常在發送測芯片內部,源同步接口把時鐘信號和數據信號當作一樣來處理,也就是讓它和數據信號經過相同的路徑,以保證相同的延時。這樣PVT變化時,時鐘和數據會朝著同一個方向增大或者減小相同的量,對skew最有利。

我們來做一些合理的典型假設,假設一個32bit數據的并行總線:

發送端的數據skew = 50 ps (很高的要求)

PCB總線引入的skew = 50 ps (很高的要求)

時鐘的周期抖動jitter = +/- 50 ps (很高的要求)

接收端觸發器采樣窗口 = 250 ps (Xilinx V7 高端器件的IO觸發器)

可以大致估算出并行接口的最高時鐘 = 1/(50+50+100+250) = 2.2GHz (DDR)或者1.1GHz(SDR).

利用源同步接口,數據的有效窗口可以提高很多,通常頻率都是在1GHz以下。在實際使用中可以見到如SPI4.2接口的時鐘可以高達DDR 700HNz * 16 bits位寬。DDR Memory接口也是一種源同步接口,如DDR3在FPGA中可以做到大約800MHz的時鐘(DDR)。

要提高接口的傳輸帶寬有兩種方法:一種是提高時鐘頻率;一種是加大數據位寬。那么數據位寬是不是可以無限制地加大呢?這就要牽扯到另外一個非常重要的問題----同步切換噪聲(SSN)。

SSN的計算公式:SSN = L * N * di/dt

L是芯片封裝電感,N是數據位寬,di/dt是電流變化的斜率。隨著頻率的提高,數據位寬的增加,SSN成為提高傳輸帶寬的主要瓶頸。圖1.2是一個DDR3串擾的例子。途中低電平的理論值在0V,由于SSN的影響,低電平表現為震蕩,震蕩噪聲的最大值達610mv,因此噪聲余量只有1.5V/2 - 610mV = 140mV。

297b1076-699e-11ee-939d-92fbcf53809c.jpg

因此也不可能靠無限地提高數據位寬來繼續增加帶寬。一種解決SSN的辦法是使用差分信號替代單端信號,使用差分信號可以很好地解決SSN的問題,代價是使用更多的芯片引腳。使用差分信號仍然解決不了數據skew的問題,很大位寬的差分信號再加上嚴格的時序限制,給并行接口帶來了很大的挑戰。

SerDes接口

源同步接口的時鐘頻率已經遇到瓶頸,由于信道(channel)的非理想特性,在繼續提高頻率,信號會被嚴重損傷,這就需要采用均衡和數據時鐘相位檢測等技術。這也就是SerDes所采用的技術。SerDes是串行器和解串器的簡稱。串行器也成為SerDes發送端(Tx),解串器也成為接收端(Rx)。圖1.3是一個N對SerDes收發通道的互連演示,一般N小于4.

298f791c-699e-11ee-939d-92fbcf53809c.jpg

可以看到,SerDes不傳送時鐘信號,這也是SerDes最特別的地方,SerDes在接收端集成了CDR(Clock Data Recovery)電路,利用CDR從數據的邊沿信息中抽取時鐘,并找到最優的采樣位置。

SerDes采用差分方式傳送數據。一般會有多個通道的數據放在一個group中以共享PLL資源,每個通道仍然是相互獨立工作的。

SerDes需要參考時鐘(Reference Clock),一般也是差分的形式以降低噪聲。接口端Rx和發送端Tx的參考時鐘可以允許幾百個ppm的頻差(plesio-synchronous system),也可以是同頻的時鐘,但是對相位差沒有要求。

做個簡單的比較,一個SerDes通道(Channel)使用4個引腳(Tx+/-, Rx+/-),目前的FPGA可以做到高達28Gbps。而一個16bit的DDR3-1600的線速率為1.6Gbps*16 = 25Gbps,卻需要50多個引腳。這樣對比之下可以看出SerDes在傳輸帶寬上的優勢。

相比于源同步接口,SerDes的主要特點包括:

SerDes在數據線中時鐘內嵌,不需要傳送時鐘信號。

SerDes通過加重/均衡技術可以實現高速長距離傳輸,如背板。

SerDes使用了較少的芯片引腳。

中間類型

也存在一些介于SerDes和并行接口之間的接口類型,相對源同步接口而言,這些中間類型的接口也使用串行器和解串器,同時也傳送用于同步的時鐘信號。這類接口如視頻顯示接口7:1 LVDS等。

SerDes結構

SerDes的主要構成可以分為三部分:PLL模塊,發送模塊Tx,接收模塊Rx。為了方便維護和測試,還會包括控制和狀態寄存器,換回測試,PRBS測試等功能。如圖2.1

29b51668-699e-11ee-939d-92fbcf53809c.jpg

圖中藍色背景子模塊為PCS層,是標準的可綜合CMOS數字邏輯,可以使用硬件邏輯實現,也可以使用FPGA軟邏輯實現,相對容易理解。褐色背景的子模塊是PMA層,是數模混合CML/CMOS電路,是理解SerDes區別于并行接口的關鍵,也是本文討論的重點內容。

發送方顯(Tx)信號的流向:FPGA邏輯(Fabric)發送過來的并行信號,通過接口FIFO(Interface FIFO),發送到 8B/10B編碼器(8B/10B encoder)或擾碼器(scambler),以避免數據含有較多的0或者較多的1。之后送給串行器(Serializer)進行并串轉換。串行數據警告過均衡器(equalizer)調理,由驅動器(driver)發送出去。

接收方向(Rx)信號的流向,外部串行信號由線性均衡器(Linear Equalizer)或者DFE(Decision Feedback Equalizer)結構均衡器條例,去除一部分確定性抖動(Deterministic jitter).CDR從數據中恢復出來采樣時鐘,經解串器變為對齊的并行信號。8B/10B解碼器(8B/10B decoder)或解擾其(de-scambler)完成解碼或者解擾。如果是異步時鐘系統(Plesio-synchronous system),在用戶FIFO之前還應該有彈性FIFO來補償頻差。

PLL負責產生SerDes各個模塊所需要的時鐘信號,并管理這些時鐘之間的相位關系。以圖中線速率10Gbps為例,參考時鐘頻率250MHz。Serializer/Deserializer至少需要5GHz 0相位時鐘和5GHz 0相位時鐘和5GHz 90度相位時鐘,1GHz(10bit并行)/1.25GHz(8bit并行)時鐘等。

一個SerDes通常還需要調試能力,例如偽隨機碼劉產生和比對,各種環回測試,控制狀態寄存器以及訪問接口,LOS檢測,沿途測試等。

串行器解串器

串行器(Serializer)把并行信號轉化為串行信號,解串器(Deserializer)把串行信號轉化為并行信號,一般地,并行信號為8/10bit或者16/20bit寬度,串行信號為1bit寬度(也可以分階段串行化,如8bit->4bit->2bit->1bit以降低equalizer的工作頻率)。采用擾碼(scrambled)的協議和SDH/SONET,SMPTE SDI使用8/16bit的并行寬度,如PCI-Express采用8B/10B編碼的協議,GbE使用10bits/20bits寬度。

一個4:1的串行器圖下圖2.2所示.8:1或16:1的串行器采用類似的方法實現。在實現時,為了降低均衡器的工作頻率,串行器會先把并行數據變為2bit,送給均衡器濾波,最后一步再做2:1串行化。

29cbdf88-699e-11ee-939d-92fbcf53809c.png

一個1:4的解串器如圖2.3所示,8:1或16:1的解串器采用類似的實現。實現時,為了降低均衡器的工作頻率,均衡器工作在DDR模式下,解串器的輸入是2bit或者更寬。

29df3132-699e-11ee-939d-92fbcf53809c.png

串行器解串器的實現采用雙沿DDR的工作方式,利用面積換速度的策略,降低了電路中高頻率電路的比例,從而降低了電路的噪聲。

接收方向除了解串器以外,一般還有對齊功能邏輯(Aligner)。相對SerDes發送端,SerDes接收端起始工作的時刻是任意的,接收器正確收到的第一個bit可能是發送并行數據的任意bit位置。因此需要對齊邏輯來判斷從什么bit位置開始,以組成正確的并行邏輯。對齊邏輯通過在串行數據流中搜索特征碼字(Alignment Code)來決定串并轉換的起始位置。比如8B/10B編碼的協議通常用K28.5(正碼10‘b1110000011,負碼:10’b0001111100)來作為對齊字。圖2.4為一個對齊邏輯的演示。通過滑窗,逐bit比對,比找到對起碼(Align-Code)的位置,經過多次在相同的位置找到對起碼之后,狀態機鎖定位置并選擇相應的位置輸出對齊數據。

29edd890-699e-11ee-939d-92fbcf53809c.jpg

發送均衡器(Tx Equalizer)

SerDes信號從發送芯片到達接收芯片所經過的路徑成為信道(Channel),包括芯片封裝,PCB總線,過孔,電纜,連接器等元件。從頻域上看,信道可以簡化為一個低通濾波器(LPF)模型,如果SerDes的速率大于信道(channel)的截止頻率,就會一定程度上損傷信號。均衡器的作用就是不讓信道對信號的損傷。

發送端的均衡器采用FFE(Feed Forward Equalizers)結構,發送端的equalizer也稱作加重器(emphasis).加重分為去加重(de-emphasis)和預加重(pre-emphasis)。de-emphasis降低差分信號的擺幅(swing).Pre-emphasis增加差分信號的擺幅。FPGA大部分使用de-emphasis的方式,加重越強,信號的平均幅度就越小。

發送測均衡器設計為一個高通濾波器(HPF),大致為信道頻響H(f)的反函數,FFE(Feed Forward Equalization 前行反饋均衡)的目標是讓到達接收端的信號為一個干凈的信號,FFE的實現方式有很多,典型的例子如下圖2.5所示:

2a013da4-699e-11ee-939d-92fbcf53809c.jpg

調節濾波器的系數可以改變濾波器的頻響,以補償不同的信道特性,一般可以動態配置。以10Gbps線速率為例,圖2.6為DFE頻率響應演示,可以看到對于C0 = 0, C1 = 1, C2 = -0.25的配置,5GHz處高頻增益比低頻區域高出4dB,從而補償信道對高頻頻譜的衰減。

2a2484f8-699e-11ee-939d-92fbcf53809c.png

采樣時鐘的頻率限制了這種FFE,最高只能補償到Fs/2(上例中Fs/2 = 5GHz)。根據采樣定理,串行數據里的信息都包含在5GHz以內,從這個角度看也就足夠了。如果要補償Fs/2以上的頻率,就要求DDE高于Fs的工作頻率,或者連續時間域濾波器(Continuous Time FFE).

圖2.7為DFE時序濾波效果的演示,以10Gbps線速率為例,一個UI = 0.1 ns = 100 ps.演示的串行數據碼流為二進制[00000000100001111011110000].

2a35585a-699e-11ee-939d-92fbcf53809c.jpg

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1626

    文章

    21678

    瀏覽量

    602006
  • PCI
    PCI
    +關注

    關注

    4

    文章

    662

    瀏覽量

    130191
  • 總線接口
    +關注

    關注

    0

    文章

    82

    瀏覽量

    30717
  • SerDes
    +關注

    關注

    6

    文章

    197

    瀏覽量

    34860
  • 時鐘信號
    +關注

    關注

    4

    文章

    445

    瀏覽量

    28512

原文標題:深入理解SerDes系列之一

文章出處:【微信號:moorexuetang,微信公眾號:摩爾學堂】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    GMII、SGMII和SerDes的差異總結

    GMII、SGMII和SerDes的區別和聯系? GMII和SGMII區別,上篇已經介紹了,這篇重點介紹SGMII和SerDes區別。 GMII和SGMII SGMII接口 SGM
    的頭像 發表于 10-09 11:31 ?3.2w次閱讀
    GMII、SGMII和<b class='flag-5'>SerDes</b>的差異總結

    SERDES的作用 SerDes基礎知識詳解

    SERDES是英文SERializer(串行器)/DESerializer(解串器)的簡稱。
    的頭像 發表于 01-04 09:04 ?4089次閱讀
    <b class='flag-5'>SERDES</b>的作用 <b class='flag-5'>SerDes</b>基礎知識詳解

    請問6678中的srio的serdes和以太網的serdes是共用還是各自有自己的serdes?

    6678中的srio的serdes和以太網的serdes是共用還是各自有自己的serdes?
    發表于 08-02 06:11

    請教關于C6678的serdes模塊

    請教:C6678的PCIE SRIO Hyperlink和SGMII模塊的配置中都涉及到對serdes模塊的配置,故希望知道以下幾個問題:1、這些模塊的serdes是同個,還是各自有各自
    發表于 08-06 06:17

    serdes和奴隸serdes,如果我使用主人,奴隸能使用嗎

    大家好, 在個I / O塊中有個主serdes個slave serdes。如果我使用主設備,奴隸不能使用,是不是?謝謝。最好的祝福。
    發表于 06-08 15:03

    什么是SerDes?

    什么是SerDes
    發表于 06-24 07:52

    SerDes是怎么工作的

    到Serial RIO,…等等,都是在借助SerDes來提高性能。SerDes是非常復雜的數?;旌显O計,用戶手冊的內容只是描述了森林里面的棵小樹,并不能夠解釋SerDes是怎么工作的
    發表于 07-28 07:02

    怎樣去更好地使用SerDes

    SerDes的基本結構是由哪些部分組成的?怎樣去更好地使用SerDes?
    發表于 09-22 06:25

    怎樣去設計SerDes

    SerDes是怎么工作的?SerDes有傳輸時鐘信號嗎?
    發表于 10-18 08:53

    Cadence與是德科技在PAM4領域深度合作

    系列誤碼儀和最新采樣示波器平臺N1000A及精密波形分析儀N1060A等測試方案作為南京高速實驗室測試驗證平臺。該產品將進步加強Cadence中國本土高速SerDes的研發能力,同時也將成
    的頭像 發表于 09-30 14:20 ?2446次閱讀

    SERDES的優勢 SERDES演變的看法

    ,另個優勢是能夠通過對差分對信號引腳(而不是8、16、32或N個數據引腳和個時鐘引腳)發送數據。在串行傳輸這個方面得益于更小的數據包和更密集的pcb而節省了成本。具體取決于晶片成本、封裝成本、PCB成本和PCB擁塞等因素。
    的頭像 發表于 07-23 11:59 ?4307次閱讀

    介紹種采用光SerDes而非電SerDes的高速收發器

    同時介紹種采用光電集成技術的,即采用光SerDes而非電SerDes的高速收發器。
    的頭像 發表于 04-01 09:28 ?1564次閱讀

    什么是SerDes?SerDes的應用場景又是什么呢?

    首先我們要了解什么是SerDes,SerDes的應用場景又是什么呢?SerDes又有哪些常見的種類?
    的頭像 發表于 06-06 17:03 ?9731次閱讀
    什么是<b class='flag-5'>SerDes</b>?<b class='flag-5'>SerDes</b>的應用場景又是什么呢?

    為什么我們需要SERDES?SERDES的優點有哪些?

    盡管設計和驗證很復雜,SERDES 已成為 SoC 模塊不可或缺的部分。隨著 SERDES IP 模塊現已推出,它有助于緩解任何成本、風險和上市時間問題。
    的頭像 發表于 10-23 14:44 ?1505次閱讀
    為什么我們需要<b class='flag-5'>SERDES</b>?<b class='flag-5'>SERDES</b>的優點有哪些?

    汽車以太網發明人押寶SerDes!文詳解車載SerDes技術

    SerDes,即Serializer(串行器)和Deserializer(解串器)的簡稱,是種高速串行數據傳輸技術。
    的頭像 發表于 03-12 14:05 ?2082次閱讀
    汽車以太網發明人押寶<b class='flag-5'>SerDes</b>!<b class='flag-5'>一</b>文詳解車載<b class='flag-5'>SerDes</b>技術