<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > FPGA實(shí)現(xiàn)中的SERDES接口設(shè)計(jì)和測(cè)試

          FPGA實(shí)現(xiàn)中的SERDES接口設(shè)計(jì)和測(cè)試

          作者: 時(shí)間:2008-01-17 來(lái)源:網(wǎng)絡(luò) 收藏
          近年來(lái),芯片功能的增強(qiáng)和數(shù)據(jù)吞吐量要求推動(dòng)了芯片產(chǎn)業(yè)從低速率數(shù)據(jù)并行連接轉(zhuǎn)變到高速串行連接。這個(gè)概念被稱為(Serializer-Deserializer),包括在高速差分對(duì)上串行地傳送數(shù)據(jù),而不是用低速的并行總線。一個(gè)典型例子是用單個(gè)PCI-Express通道取代數(shù)據(jù)速率達(dá)2.112Gbps的傳統(tǒng)32位64MHz PCI總線,PCI-Express可達(dá)到4Gbps的數(shù)據(jù)速率,但僅使用了工作在2.5GHz的4條線。簡(jiǎn)而言之,協(xié)議允許用較少的引腳實(shí)現(xiàn)較高的數(shù)據(jù)速率。

          圖1給出了在一個(gè)復(fù)雜實(shí)現(xiàn)中的各種可能的接口。這個(gè)例子展示了一個(gè)網(wǎng)絡(luò)處理器位于系統(tǒng)中心的高性能電路板。SERDES應(yīng)用用紫色標(biāo)明,可以用實(shí)現(xiàn)的芯片用黃色標(biāo)明。

          圖1:典型的FPGA應(yīng)用。
          圖1:典型的應(yīng)用。

          SERDES的類型

          有兩種基本類型的SERDES接口:源同步(SS)協(xié)議和時(shí)鐘數(shù)據(jù)恢復(fù)(CDR)協(xié)議。這兩種類型的主要差別是如何實(shí)現(xiàn)時(shí)鐘控制。源同步接口擁有一個(gè)伴隨傳送數(shù)據(jù)的時(shí)鐘信號(hào);CDR沒有單獨(dú)的時(shí)鐘信號(hào),而是把時(shí)鐘嵌入在數(shù)據(jù)中。即CDR接收器將相位鎖定在數(shù)據(jù)信號(hào)本身以獲取時(shí)鐘。表1概括了這兩種接口的基本差別。

          表1:源同步和時(shí)鐘數(shù)據(jù)恢復(fù)SERDES接口的比較。
          表1:源同步和時(shí)鐘數(shù)據(jù)恢復(fù)SERDES接口的比較。

          通常CDR協(xié)議運(yùn)行在較高的數(shù)據(jù)速率和較長(zhǎng)的傳送距離,因此帶來(lái)很大的設(shè)計(jì)挑戰(zhàn)。鑒于這個(gè)緣故,本文將主要討論CDR的相關(guān)問題。

          時(shí)鐘數(shù)據(jù)恢復(fù)的基礎(chǔ)

          顧名思義,CDR接收器必須從數(shù)據(jù)中恢復(fù)嵌入的時(shí)鐘。更準(zhǔn)確地說(shuō),是從數(shù)據(jù)信號(hào)的交換中獲取時(shí)鐘。

          CDR發(fā)送器首先串行發(fā)送數(shù)據(jù),然后將數(shù)據(jù)轉(zhuǎn)換成8b/10b編碼方案。編碼處理獲得8位數(shù)據(jù)并將其轉(zhuǎn)換成10位符號(hào)。8b/10b編碼方式可以在數(shù)據(jù)線上傳送相等數(shù)目的0和1,從而減少碼間干擾,并提供足夠多的數(shù)據(jù)邊沿,以便接收器在收到的數(shù)據(jù)流上鎖定相位。發(fā)送器將系統(tǒng)時(shí)鐘倍頻至傳送比特率,并以該速率在TX差分對(duì)上發(fā)送8b/10b數(shù)據(jù)。

          CDR接收器的任務(wù)首先是在RX差分位流上鎖定相位,然后接收器按照恢復(fù)的時(shí)鐘進(jìn)行數(shù)據(jù)位對(duì)齊,接著用接收器的參考時(shí)鐘進(jìn)行字對(duì)齊。最后,將數(shù)據(jù)進(jìn)行8b/10b解碼,供系統(tǒng)使用。

          在CDR系統(tǒng)中,發(fā)送和接收系統(tǒng)通常擁有完全獨(dú)立的系統(tǒng)時(shí)鐘。這兩個(gè)時(shí)鐘在一個(gè)特定的變化范圍內(nèi)非常關(guān)鍵,這個(gè)范圍大約是數(shù)百個(gè)PPM。

          CDR電路與抖動(dòng)

          CDR接口的主要設(shè)計(jì)挑戰(zhàn)是抖動(dòng),即實(shí)際數(shù)據(jù)傳送位置相對(duì)于所期望位置的偏移。總抖動(dòng)(TJ)由確定性抖動(dòng)和隨機(jī)抖動(dòng)組成。大多數(shù)抖動(dòng)是確定的,其分量包括碼間干擾、串?dāng)_、占空失真和周期抖動(dòng)(例如來(lái)自開關(guān)電源的干擾)。而通常隨機(jī)抖動(dòng)是半導(dǎo)體發(fā)熱問題的副產(chǎn)品,且很難預(yù)測(cè)。

          傳送參考時(shí)鐘、傳送PLL、串化器和高速輸出緩沖器都對(duì)會(huì)傳送抖動(dòng)造成影響。對(duì)于給定的比特周期或者數(shù)據(jù)眼,傳送抖動(dòng)通常用單位間隔的百分比或UI(單位間隔)來(lái)說(shuō)明。例如,.2 UI的傳送抖動(dòng)表示抖動(dòng)由比特周期的20%組成。對(duì)于傳送抖動(dòng)而言,UI數(shù)值越低越好,因?yàn)樗鼈兇磔^少的抖動(dòng)。

          同樣地,CDR接收器將指定在給定比特率時(shí)所能容忍的最大抖動(dòng)量。典型的比特誤碼率(BET)標(biāo)準(zhǔn)是1e-12。接收抖動(dòng)仍然用UI來(lái)指定。較大的UI表明接收器可以容忍更多的抖動(dòng)。典型的接收器規(guī)格是.8 UI,這意味著80%的比特周期可以是噪聲,此時(shí)接收器將仍然能夠可靠地接收數(shù)據(jù)。

          抖動(dòng)通常用統(tǒng)計(jì)鐘形分布來(lái)量化,該分布在其定點(diǎn)處有理想的邊沿位置。

          SERDES與眼圖

          由于抖動(dòng)是SERDES系統(tǒng)中的一個(gè)主要挑戰(zhàn),因此它也是和測(cè)量的關(guān)鍵所在。通過(guò)把高性能的示波器連接到SERDES信號(hào)來(lái)測(cè)量抖動(dòng),并觀察“數(shù)據(jù)眼圖”(或眼圖)。對(duì)于一個(gè)給定的差分對(duì),眼圖僅僅是由多個(gè)狀態(tài)轉(zhuǎn)換的波形圖疊加而成。采樣窗應(yīng)足夠?qū)?,能夠包含圖中的兩個(gè)交叉點(diǎn)。最終得到的畫面就象一個(gè)眼睛,它提供了信號(hào)質(zhì)量和抖動(dòng)的直觀形象。通常眼睛張得越開,信號(hào)就越好。

          圖2是一個(gè)在示波器上顯示的典型眼圖。圖中,用V度量眼睛張開的高度,該值與1.2V的總電壓擺幅(從邏輯0到邏輯1)相對(duì)。有三個(gè)寬度(或者時(shí)間)度量值:UI度量整個(gè)比特率周期,H度量在共模電壓下的張開度,T度量最小跳變電壓和最大跳變電壓下的寬度。較大的H、T和V值代表眼睛較寬,這說(shuō)明信號(hào)較好、抖動(dòng)較小。

          圖2:一個(gè)數(shù)據(jù)眼圖示例。
          圖2:一個(gè)數(shù)據(jù)眼圖示例。

          抖動(dòng)測(cè)量設(shè)置

          為檢測(cè)傳送抖動(dòng),用誤碼率器(BERT)產(chǎn)生測(cè)試圖形,并送入評(píng)估板的SERDES接收端口。同樣地,將時(shí)鐘產(chǎn)生器連接到評(píng)估板的SERDES時(shí)鐘。在測(cè)試中,F(xiàn)PGA被配置成內(nèi)部環(huán)回這個(gè)通道,因此接收到的測(cè)試圖形通過(guò)TX引腳傳送。將示波器連接到TX SERDES連接器,這樣就可以對(duì)傳送抖動(dòng)眼圖進(jìn)行分析。所有的評(píng)估板SERDES連接都采用的是50歐姆SMA連接器。整體結(jié)構(gòu)如圖3所示。

          圖3:抖動(dòng)測(cè)試設(shè)備的配置。
          圖3:抖動(dòng)測(cè)試設(shè)備的配置。

          通過(guò)在FPGA SERDES接收端口引入抖動(dòng),并監(jiān)控環(huán)回SERDES輸出的比特誤差來(lái)測(cè)量接收抖動(dòng)容限。如圖3所示,首先將抖動(dòng)發(fā)生器連接到BERT圖形產(chǎn)生器。然后BERT產(chǎn)生器將偽隨機(jī)圖形序列(PRBS)發(fā)送到評(píng)估板的SERDES SMA輸入。這種配置允許工程師以一種受控的方式將抖動(dòng)引入到SERDES RX端口。FPGA被配置成環(huán)回,SERDES TX端口連接到BERT的比特誤差檢測(cè)端口。然后工程師就可以引入抖動(dòng)并觀察由FPGA產(chǎn)生的比特誤碼率(BER)。當(dāng)BER超出規(guī)定時(shí),工程師就知道已經(jīng)超過(guò)抖動(dòng)容限域值。這個(gè)數(shù)值應(yīng)該等于或大于針對(duì)FPGA所指定的接收抖動(dòng)容限。

          高速背板性能測(cè)量

          通過(guò)背板配置驅(qū)動(dòng)FPGA的TX信號(hào),工程師可以測(cè)量FPGA的背板SERDES鏈路傳輸特性,然后分析背板輸出的眼圖。首先使用BERT圖形產(chǎn)生器把PRBS位流饋送入FPGA評(píng)估板的SMA RX端口。通過(guò)把FPGA配置成環(huán)回,PRBS將出現(xiàn)在評(píng)估板的TX端口,并將被驅(qū)動(dòng)至同軸電纜,饋入諸如XAUI Z-Pack HM-Zd的背板。然后背板將位流饋送入連接到示波器的另一長(zhǎng)度的同軸電纜。系統(tǒng)要求規(guī)定了測(cè)試參數(shù),例如PRBS圖形選擇、背板和FPGA評(píng)估板的走線長(zhǎng)度、同軸電纜的長(zhǎng)度、預(yù)加重和均衡設(shè)置、工作電壓以及VCC。

          圖4展示了采用LatticeSC FPGA的測(cè)試設(shè)備采樣到的9個(gè)眼圖。每個(gè)眼圖下的數(shù)值是測(cè)量到的眼睛高度(圖2中的V度量)。注意增加預(yù)加重在每個(gè)比特率上改善了眼圖。預(yù)加重是SERDES發(fā)送器針對(duì)電纜和背板中信號(hào)衰減的補(bǔ)償。LatticeSC要求的眼睛高度是85mV,因此在3.8Gbps下16%的預(yù)加重是唯一不滿足要求的采樣。

          圖4:采用LatticeSC FPGA的測(cè)試設(shè)備采樣到的9個(gè)眼圖。
          圖4:采用LatticeSC FPGA的測(cè)試設(shè)備采樣到的9個(gè)眼圖。

          本文小結(jié)

          值得一提的是,SERDES接口為FPGA產(chǎn)品的選擇過(guò)程增加了一個(gè)參數(shù)。當(dāng)選擇FPGA時(shí)工程師應(yīng)該考慮可能的信道數(shù)目、信道的配置靈活性、接口速度、SERDES IP(即PCS)、傳輸規(guī)范和電氣要求。

          FPGA產(chǎn)品和SERDES接口的速度和市場(chǎng)規(guī)模都在增長(zhǎng)。通過(guò)理解兩者功能和挑戰(zhàn),設(shè)計(jì)團(tuán)隊(duì)可以提升產(chǎn)品的可靠性和功能,并加快產(chǎn)品上市時(shí)間。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();