0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于LVDS差分接口之IOSERDES的高速串行通信

FPGA設(shè)計論壇 ? 來源:未知 ? 2022-12-23 06:15 ? 次閱讀

項(xiàng)目涉及5片FPGA之間的多機(jī)通信,1片主FPGA,4片從FPGA,5片F(xiàn)PGA采用星形連接的拓?fù)浣Y(jié)構(gòu)。4個從機(jī)與主機(jī)之間通信接口采用基于LVDS_33的差分IO接口標(biāo)準(zhǔn),以滿足高速率,抗干擾,chip-to-chip的數(shù)據(jù)流傳輸架構(gòu)。各從機(jī)與主機(jī)通信時,采用全雙工傳輸通信模式,收發(fā)雙方信號線包括時鐘信號tx_clk+,tx_clk-,rx_clk +,rx_clk-,差分?jǐn)?shù)據(jù)信號tx_data+,tx_data -,rx_data +,rx_data -,共計4組差分通信鏈路。由于從主FPGA待傳輸?shù)臄?shù)據(jù)流通常不是單比特流,常見的數(shù)據(jù)流位寬為8bits或16bits,此時有以下兩種通信方案。

方法1:采用基于源同步的1路差分時鐘信號線和8路并行數(shù)據(jù)信號線來傳輸8bits位寬的數(shù)據(jù)流從理論上是可行的。該方法不足之處為:(1)當(dāng)對數(shù)據(jù)流傳輸帶寬提出更高要求時,即要求時鐘信號速率更快以滿足高速通信時,就可能對出現(xiàn)8路并行信號線之間相位不同步的問題;(2)需要消耗的FPGA管腳資源更多,布線要求也更高。

方法2:將并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)進(jìn)行傳輸,然后串行數(shù)據(jù)在接收端整合為之前發(fā)送的并行數(shù)據(jù)。即在發(fā)送端,將8bits的數(shù)據(jù)流通過OSERDES單元轉(zhuǎn)換為串行數(shù)據(jù)流bit0,bit1,... ,bit7,通過1路差分信號線輸出給接收端;同理,接收端采用相反的傳輸原理,ISERDES單元將串行數(shù)據(jù)流bit0,bit1,... ,bit7通過8個移位寄存器緩存后整合為8位寬的數(shù)據(jù)流,完成串并轉(zhuǎn)換。基于LVDS的差分IO接口支持的傳輸速率高達(dá)1.9Gb/s,故滿足常用的高速串行數(shù)據(jù)通信。

b2199506-8245-11ed-8abf-dac502259ad0.png

1 設(shè)計過程

項(xiàng)目使用的芯片型號為Spartan6的xc6slx16-csg324,待傳輸?shù)臄?shù)據(jù)流位寬為8位,故IOSERDES的串并因子為8:1,F(xiàn)PGA的IOB集成了IOSERDES軟核,故可以直接調(diào)用和自定義即可完成對ISERDES、OSERDES兩個IP核的配置。

關(guān)于對ISERDES、OSERDES的相關(guān)配置可參考以下三個個用戶手冊。

UG382 — Spartan6 FPGA Clock Source;

UG381 — Spartan6 FPGA SelectIO Source;

XAPP1064 — source synchronize serialization and deserialization。

項(xiàng)目中使用的OSERDES配置參數(shù)如下圖所示。

b248b296-8245-11ed-8abf-dac502259ad0.png

2 設(shè)計關(guān)鍵點(diǎn)

(1)Spartan6 FPGA芯片僅bank0和bank2支持OSERDES,其他bank不支持;對于ISERDES,所有bank均支持。如果忽略O(shè)SERDES對bank的限制,很容易造成在設(shè)計原理圖時,出現(xiàn)LVDS的IO接口管腳分配問題。

b25b403c-8245-11ed-8abf-dac502259ad0.png

(2)OSERDES數(shù)據(jù)流輸出時鐘信號tx_clk的構(gòu)建。數(shù)據(jù)流輸出時鐘信號tx_clk分為兩種,分別基于BUFIO2和基于PLL來實(shí)現(xiàn),詳見下文。

a)基于BUFIO2的SDR時鐘信號

b27a0a80-8245-11ed-8abf-dac502259ad0.png

由于上圖可知,將圖中ISERDES用OSERDES等價替換即可。BUFIO2的IOCLK為數(shù)據(jù)流發(fā)送時鐘,CLKDIV為FPGA內(nèi)部控制并行數(shù)據(jù)輸送給OSERDES的邏輯時鐘,二者對應(yīng)關(guān)系為:IOCLK = DIVCLK * DataWidth。例如,現(xiàn)在數(shù)據(jù)位寬為8,要求OSERDES串行通信速率為400Mbps,則IOCLK 為400MHz,DIVCLK經(jīng)過BUFIO2以8分頻后為50MHz,則外部晶振輸入時鐘CLOCK頻率也為400MHz。該方法優(yōu)缺點(diǎn)如下。

優(yōu)點(diǎn):數(shù)據(jù)流輸出時鐘信號構(gòu)造簡單,無需PLL倍頻等;

不足:對外部晶振要求過高,例如要求400M甚至更高頻率的外部晶振是不太實(shí)際的,故需要借助PLL/DCM時鐘單元來實(shí)現(xiàn)。

b)基于PLL和BUFPLL的SDR時鐘信號

b286e4e4-8245-11ed-8abf-dac502259ad0.png

由上圖可知,方法二增加了PLL和BUFPLL時鐘單元,CLKDIV和IOCLK時鐘構(gòu)建依據(jù)上圖即可完成,注意點(diǎn)是PLL_BASE的CLKOUT0輸出沒有BUFG做緩沖。例如,同樣要求OSERDES串行通信速率為400Mbps,外部晶振CLOCK可以為50MHz,通過PLL倍頻,CLKOUT0(8倍頻)輸出為400MHz,用于IOCLK時鐘,CLKOUT2直接作為CLKDIV時鐘源,即可滿足要求。

優(yōu)點(diǎn):外部晶振頻率要求低,且通過PLL倍頻操作,IOCLK方便工作于更高頻率;

不足:需要借助PLL/DCM時鐘單元來實(shí)現(xiàn)。

(3)ISERDES數(shù)據(jù)流輸入對BITSLIP信號的控制。

在ISERDES數(shù)據(jù)流接收端,提供一個Bitslip信號用于將接收到的數(shù)據(jù)流進(jìn)行位對齊。例如發(fā)送端發(fā)送的數(shù)據(jù)TX_Data為8'b0110_0010,接收端初始接收到的數(shù)據(jù)為RX_Data為8'b0011_0001,通過使能Bitslip信號(Bitslip上升沿跳變有效)一次,接收端數(shù)據(jù)流向左移動一位,RX_Data則由8'b0011_0001變?yōu)?'b0110_0010,實(shí)現(xiàn)了接收端數(shù)據(jù)對齊操作。由于發(fā)送端和接收端相位關(guān)系未知,通常情況下,Bitslip需要使能有效的次數(shù)也不確定,但移位操作次數(shù)不會超過數(shù)據(jù)的位寬,否則就是通信鏈路出現(xiàn)故障。

b299f750-8245-11ed-8abf-dac502259ad0.png

上圖是對Bitslip信號的描述,重點(diǎn)關(guān)注:Bitslip信號從有效到無效最小時間間隔至少為1個CLKDIV,經(jīng)過實(shí)測,項(xiàng)目中使用的間隔為4個CLKDIV,當(dāng)使用1個CLKDIV時間間隔時,接收端數(shù)據(jù)對齊無法實(shí)現(xiàn)。這個細(xì)節(jié)也影響調(diào)試結(jié)果和調(diào)試進(jìn)度。

此外,對于ISERDES數(shù)據(jù)流接收端,由于差分?jǐn)?shù)據(jù)信號和差分時鐘均有OSERDES端提供,該差分時鐘rx_clk+/-頻率等于數(shù)據(jù)流傳輸速率,故接收端可以采用基于BUFIO2對rx_clk+/-進(jìn)行時鐘緩沖處理,無需使用PLL等時鐘單元,即可得到IOCLK和CLKDIV。

3 設(shè)計難點(diǎn)

在整個設(shè)計中,有很多需要注意的設(shè)計要點(diǎn),前文其實(shí)已有所提及。例如OSERDES僅支持bank0和bank2;IOSERDES的IOCLK和CLKDIV的時鐘構(gòu)建和合理選擇;Bitslip數(shù)據(jù)流對齊控制信號的操作細(xì)節(jié)。這些都會影響設(shè)計和調(diào)試結(jié)果。除此之外,遇到過的一個最頭疼的設(shè)計難點(diǎn)如下。

Bufpll mapping error:Constrain Resolved NO placeable site for bufpll。

為避免錯誤,項(xiàng)目中所有差分時鐘信號和數(shù)據(jù)信號管腳均分配在bank2。當(dāng)對OSERDES的IOCLK和CLKDIV的時鐘信號構(gòu)建完畢后(外部晶振輸入管腳為V10,位于bank2,頻率為50MHz),進(jìn)行Implement Design步驟,但是編譯結(jié)果出現(xiàn)錯誤提示:Constrain Resolved NO placeable site for bufpll。

b2ac4126-8245-11ed-8abf-dac502259ad0.png

由圖示錯誤提示可知,BUFPLL這個instance也需要設(shè)置為bank2,才能將BUFPLL和IOB的其他parts,如oserdes放置在同一個bank中,故需要對BUFPLL進(jìn)行位置限制。

該FPGA芯片位于bank2的BUFPLL有兩個:BUFPLL_X1Y0,BUFPLL_X1Y1,對應(yīng)的PLL_ADV也有兩個PLL_ADV_X0Y0,PLL_ADV_X0Y1,因?yàn)锽UFPLL是用于PLL的CLKOUTx輸出緩沖的。

b2c226d0-8245-11ed-8abf-dac502259ad0.png

故在ucf添加約束如下:

INST ParaToSerial/bufpll_inst LOC = BUFPLL_X1Y0;

INST clk_struc/pll_base_inst LOC = PLL_ADV_X0Y0;

本項(xiàng)目中單獨(dú)對BUFPLL進(jìn)行位置約束還不能解決問題,于是又進(jìn)一步對pll_base該instance進(jìn)行相同的位置約束。此外,發(fā)現(xiàn)一個疑點(diǎn),將約束改為

INST ParaToSerial/bufpll_inst LOC = BUFPLL_X1Y0;

INST clk_struc/pll_base_inst LOC = PLL_ADV_X0Y1;(此處更改)

則implement編譯時依舊還是會出現(xiàn)相同錯誤,這個原因我現(xiàn)在也解釋不了,歡迎知道的網(wǎng)友熱心指導(dǎo),謝謝!??!

備注:能順利解決上述bufpll mapping error,得到了下面博文的啟發(fā),在此非常感謝該網(wǎng)友的思路分享。

4 設(shè)計結(jié)果

項(xiàng)目對基于LVDS差分接口的IOSERDES高速串行數(shù)據(jù)通信進(jìn)行了收發(fā)測試。數(shù)據(jù)流傳輸速率為625Mbps,測試碼采用FPGA發(fā)送端內(nèi)部產(chǎn)生的0~255的遞增序列,數(shù)據(jù)流同步碼或前導(dǎo)碼為0x5a,待發(fā)送的并行數(shù)據(jù)位寬為8位。測試結(jié)果見下圖所示。

b2d514fc-8245-11ed-8abf-dac502259ad0.png

由上圖可知,發(fā)送端和接收端經(jīng)過3次Bitslip完成數(shù)據(jù)流的位對齊操作,當(dāng)數(shù)據(jù)對齊之后,發(fā)送端開始輸出0~255的測試遞增序列,接收端經(jīng)過4個時鐘延遲后,正確的接收到數(shù)據(jù)流。

此外,為什么接收端與發(fā)送端數(shù)據(jù)流傳輸間隔為4個時鐘,而不是其他? 原因?yàn)轫?xiàng)目配置ISERDES工作模式為retimed,接收端要經(jīng)過4級流水線緩沖器后,才將數(shù)據(jù)接收到的數(shù)據(jù)輸送給FPGA內(nèi)部邏輯,故有4個時鐘的延遲。如果采用NETWORKING_PIPELINED Mode,則只經(jīng)過3級流水線寄存器,故只有3個時鐘延遲,測試結(jié)果見下圖。

b2e8ce34-8245-11ed-8abf-dac502259ad0.png

補(bǔ)充說明:

(1)LVDS信號輸入端需要進(jìn)行阻抗匹配,阻值通常為100Ω;該匹配電阻可以外接或者開啟FPGA內(nèi)部片上輸入電阻,屬性設(shè)置為DIFF_TERM = "TRUE";

(2)硬件設(shè)計時,差分信號線走等長線,設(shè)置該走線阻抗為50Ω;可以在差分信號線兩側(cè)采用平行GND走線進(jìn)行屏蔽,減少差分信號線受到的干擾。

(3)基于該LVDS差分IO接口的高速串行通信尚未考慮對傳輸數(shù)據(jù)流進(jìn)行數(shù)據(jù)編碼,如8b10b編碼。采用不同的編碼方式可以應(yīng)用于不同的場合,且可以提高通信鏈路的穩(wěn)定性。

b2fd9b70-8245-11ed-8abf-dac502259ad0.jpg

精彩推薦 至芯科技12年不忘初心、再度起航12月17日北京中心FPGA工程師就業(yè)班開課、線上線下多維教學(xué)、歡迎咨詢! 鎖存器、觸發(fā)器、寄存器的關(guān)聯(lián)與區(qū)別及其相應(yīng)的verilog描述 FPGA學(xué)習(xí)-FIFO深度H的計算


原文標(biāo)題:基于LVDS差分接口之IOSERDES的高速串行通信

文章出處:【微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598879

原文標(biāo)題:基于LVDS差分接口之IOSERDES的高速串行通信

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    DS90LV027A LVDS雙通道高速驅(qū)動器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《DS90LV027A LVDS雙通道高速驅(qū)動器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-05 11:29 ?0次下載
    DS90LV027A <b class='flag-5'>LVDS</b>雙通道<b class='flag-5'>高速</b><b class='flag-5'>差</b><b class='flag-5'>分</b>驅(qū)動器數(shù)據(jù)表

    DS90LV027 LVDS雙通道高速驅(qū)動器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《DS90LV027 LVDS雙通道高速驅(qū)動器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-05 11:25 ?0次下載
    DS90LV027 <b class='flag-5'>LVDS</b>雙通道<b class='flag-5'>高速</b><b class='flag-5'>差</b><b class='flag-5'>分</b>驅(qū)動器數(shù)據(jù)表

    TPD2E009高速(6 Gbps)接口雙通道ESD解決方案

    電子發(fā)燒友網(wǎng)站提供《TPD2E009高速(6 Gbps)接口雙通道ESD解決方案.pdf》資料免費(fèi)下載
    發(fā)表于 07-02 09:51 ?0次下載
    TPD2E009<b class='flag-5'>高速</b>(6 Gbps)<b class='flag-5'>差</b><b class='flag-5'>分</b><b class='flag-5'>接口</b>雙通道ESD解決方案

    高速接收機(jī)SN65LVDS/T33數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《高速接收機(jī)SN65LVDS/T33數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 06-26 10:58 ?0次下載
    <b class='flag-5'>高速</b><b class='flag-5'>差</b><b class='flag-5'>分</b>接收機(jī)SN65<b class='flag-5'>LVDS</b>/T33數(shù)據(jù)表

    高速接收機(jī)SN55LVDS33數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《高速接收機(jī)SN55LVDS33數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 06-26 10:01 ?0次下載
    <b class='flag-5'>高速</b><b class='flag-5'>差</b><b class='flag-5'>分</b>接收機(jī)SN55<b class='flag-5'>LVDS</b>33數(shù)據(jù)表

    SN65LVDS33.SN65LVDT33.SN65LVDS34.SN65LVDT34高速接收器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《SN65LVDS33.SN65LVDT33.SN65LVDS34.SN65LVDT34高速接收器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 06-24 10:28 ?0次下載
    SN65<b class='flag-5'>LVDS33.SN65LVDT33.SN65LVDS</b>34.SN65LVDT34<b class='flag-5'>高速</b><b class='flag-5'>差</b><b class='flag-5'>分</b>接收器數(shù)據(jù)表

    FPGA | Xilinx ISE14.7 LVDS應(yīng)用

    。 其中,clk_div_out_1和clk_div_out_2是8頻得到的(ISERDESE2、 OSERDESE2核實(shí)現(xiàn)),OSERDESE2輸出的LVDS 分時鐘可作為ISERDESE2的接收時鐘。
    發(fā)表于 06-13 16:28

    高速串行通信協(xié)議詳解

    隨著信息技術(shù)的飛速發(fā)展,數(shù)據(jù)通信已成為現(xiàn)代社會不可或缺的一部。在數(shù)據(jù)通信中,串行通信作為一種基本的通信
    的頭像 發(fā)表于 05-16 16:45 ?554次閱讀

    基于FPGA的內(nèi)部LVDS接收器設(shè)計

    LVDS是一種低壓低功耗的高速串行分?jǐn)?shù)據(jù)傳輸標(biāo)準(zhǔn),在高速數(shù)據(jù)互聯(lián)和數(shù)據(jù)通信領(lǐng)域得到廣泛的應(yīng)用,
    發(fā)表于 04-26 09:50 ?1185次閱讀
    基于FPGA的內(nèi)部<b class='flag-5'>LVDS</b>接收器設(shè)計

    面向高速串行通信的工程設(shè)計實(shí)現(xiàn)

    高速串行通信系統(tǒng)中,阻抗的精確控制是實(shí)現(xiàn)信號完整性和降低電磁干擾的關(guān)鍵因素,對電子工程師來說,理想中的
    的頭像 發(fā)表于 02-22 09:08 ?360次閱讀

    LVDS接口有哪些分類

    低電壓分信號傳輸技術(shù),廣泛應(yīng)用于高速數(shù)據(jù)傳輸領(lǐng)域,如液晶顯示器、嵌入式系統(tǒng)、網(wǎng)絡(luò)通信等。LVDS接口具有低功耗、低噪聲、高帶寬等特點(diǎn),能夠
    的頭像 發(fā)表于 01-18 11:20 ?1389次閱讀

    gmsl和lvds差異

    GMSL (Gigabit Multimedia Serial Link)和LVDS (Low-Voltage Differential Signaling)是兩種常見的串行通信接口
    的頭像 發(fā)表于 12-08 14:13 ?5342次閱讀

    電平標(biāo)準(zhǔn)LVDS接口學(xué)習(xí)筆記

    LVDS: 英文全稱Low-Voltage Differential Signaling,中文全稱:低電壓分信號,其基本特點(diǎn)即:“低電壓”、“”,引申特點(diǎn)“
    的頭像 發(fā)表于 11-22 16:31 ?1.5w次閱讀
    電平標(biāo)準(zhǔn)<b class='flag-5'>LVDS</b><b class='flag-5'>接口</b>學(xué)習(xí)筆記

    基于LVDS和PCI接口高速圖像傳輸系統(tǒng)設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于LVDS和PCI接口高速圖像傳輸系統(tǒng)設(shè)計.pdf》資料免費(fèi)下載
    發(fā)表于 11-03 14:18 ?0次下載
    基于<b class='flag-5'>LVDS</b>和PCI<b class='flag-5'>接口</b>的<b class='flag-5'>高速</b>圖像傳輸系統(tǒng)設(shè)計

    基于LVDS和PCI接口高速圖像傳輸系統(tǒng)設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于LVDS和PCI接口高速圖像傳輸系統(tǒng)設(shè)計.doc》資料免費(fèi)下載
    發(fā)表于 11-03 14:17 ?2次下載
    基于<b class='flag-5'>LVDS</b>和PCI<b class='flag-5'>接口</b>的<b class='flag-5'>高速</b>圖像傳輸系統(tǒng)設(shè)計