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

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

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

3天內不再提示

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

FPGA設計論壇 ? 2022-12-22 14:05 ? 次閱讀

項目涉及5片FPGA之間的多機通信,1片主FPGA,4片從FPGA,5片FPGA采用星形連接的拓撲結構。4個從機與主機之間通信接口采用基于LVDS_33的差分IO接口標準,以滿足高速率,抗干擾,chip-to-chip的數據流傳輸架構。各從機與主機通信時,采用全雙工傳輸通信模式,收發雙方信號線包括時鐘信號tx_clk+,tx_clk-,rx_clk +,rx_clk-,差分數據信號tx_data+,tx_data -,rx_data +,rx_data -,共計4組差分通信鏈路。由于從主FPGA待傳輸的數據流通常不是單比特流,常見的數據流位寬為8bits或16bits,此時有以下兩種通信方案。

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

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

53d85e44-81b1-11ed-8abf-dac502259ad0.png

1 設計過程

項目使用的芯片型號為Spartan6的xc6slx16-csg324,待傳輸的數據流位寬為8位,故IOSERDES的串并因子為8:1,FPGA的IOB集成了IOSERDES軟核,故可以直接調用和自定義即可完成對ISERDES、OSERDES兩個IP核的配置。

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

UG382 — Spartan6 FPGA Clock Source;

UG381 — Spartan6 FPGA SelectIO Source;

XAPP1064 — source synchronize serialization and deserialization。

項目中使用的OSERDES配置參數如下圖所示。

540c7742-81b1-11ed-8abf-dac502259ad0.png

2 設計關鍵點

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

5429803a-81b1-11ed-8abf-dac502259ad0.png

(2)OSERDES數據流輸出時鐘信號tx_clk的構建。數據流輸出時鐘信號tx_clk分為兩種,分別基于BUFIO2和基于PLL來實現,詳見下文。

a)基于BUFIO2的SDR時鐘信號

544d628e-81b1-11ed-8abf-dac502259ad0.png

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

優點:數據流輸出時鐘信號構造簡單,無需PLL倍頻等;

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

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

547a3660-81b1-11ed-8abf-dac502259ad0.png

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

優點:外部晶振頻率要求低,且通過PLL倍頻操作,IOCLK方便工作于更高頻率;

不足:需要借助PLL/DCM時鐘單元來實現。

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

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

549b4670-81b1-11ed-8abf-dac502259ad0.png

上圖是對Bitslip信號的描述,重點關注:Bitslip信號從有效到無效最小時間間隔至少為1個CLKDIV,經過實測,項目中使用的間隔為4個CLKDIV,當使用1個CLKDIV時間間隔時,接收端數據對齊無法實現。這個細節也影響調試結果和調試進度。

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

3 設計難點

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

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

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

54bf4692-81b1-11ed-8abf-dac502259ad0.png

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

該FPGA芯片位于bank2的BUFPLL有兩個:BUFPLL_X1Y0,BUFPLL_X1Y1,對應的PLL_ADV也有兩個PLL_ADV_X0Y0,PLL_ADV_X0Y1,因為BUFPLL是用于PLL的CLKOUTx輸出緩沖的。

551896e8-81b1-11ed-8abf-dac502259ad0.png

故在ucf添加約束如下:

INST ParaToSerial/bufpll_inst LOC = BUFPLL_X1Y0;

INST clk_struc/pll_base_inst LOC = PLL_ADV_X0Y0;

本項目中單獨對BUFPLL進行位置約束還不能解決問題,于是又進一步對pll_base該instance進行相同的位置約束。此外,發現一個疑點,將約束改為

INST ParaToSerial/bufpll_inst LOC = BUFPLL_X1Y0;

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

則implement編譯時依舊還是會出現相同錯誤,這個原因我現在也解釋不了,歡迎知道的網友熱心指導,謝謝!!!

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

4 設計結果

項目對基于LVDS差分接口的IOSERDES高速串行數據通信進行了收發測試。數據流傳輸速率為625Mbps,測試碼采用FPGA發送端內部產生的0~255的遞增序列,數據流同步碼或前導碼為0x5a,待發送的并行數據位寬為8位。測試結果見下圖所示。

5568a7f0-81b1-11ed-8abf-dac502259ad0.png

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

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

558ecee4-81b1-11ed-8abf-dac502259ad0.png

補充說明:

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

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

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


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

    關注

    1626

    文章

    21665

    瀏覽量

    601809
  • 電阻
    +關注

    關注

    86

    文章

    5467

    瀏覽量

    171653
  • lvds
    +關注

    關注

    2

    文章

    1036

    瀏覽量

    65703
  • 串行通信
    +關注

    關注

    4

    文章

    566

    瀏覽量

    35291
  • 差分接口
    +關注

    關注

    0

    文章

    7

    瀏覽量

    11308

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

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    高速串行接口互聯小議分享

    最近看了一篇文章,也轉到了我的博里了,講的是LVDS、CML以及PECL接口以及相互之間的對接。個人總結這種差高速串行
    發表于 01-22 14:20

    LVDS低電壓分信號

    化的接口器件。兩個系列分別是:線路驅動器和接收器和串行器/解串器芯片組。 總線LVDS可以解決高速總線設計中面臨的許多挑戰。BLVDS無需特殊的終端上拉軌。它無需有源終端器件,利用常見
    發表于 04-15 16:13

    請問超高速比較的是否有輸入,LVDS輸出的?

    咨詢超高速比較的是否有輸入,LVDS輸出的?關于輸入的如何實現過零比較。
    發表于 08-07 08:13

    基于FPGA的高速串行通信GTX收發器——IO信號

    高速IO信號的基礎知識: 1、初步認識GTX 當你接觸到FPGA的高速串行通信時,比如GTX
    發表于 08-16 09:59

    串行LVDS和JESD204B的對比

    應用,以及串行LVDS和JESD204B的對比。 圖 1 – 使用JESD204A/B接口的典型高速轉換器至FPGA互連配置(來源:Xilinx)應用推動對JESD204B的需求無線基
    發表于 05-29 05:00

    介紹一種串行接口方案

    折疊式手機面臨哪些問題?一種滿足手機高速圖像數據傳輸的串行接口方案
    發表于 06-01 06:51

    滿足手機高速圖像數據傳輸的串行接口方案

    滿足手機高速圖像數據傳輸的串行接口方案 ROHM公司獨自開發的Mobile Shrink DataLink(以下簡稱MSDL)
    發表于 12-21 09:20 ?758次閱讀

    高速LVDS(低壓分信號)接口電路設計

    隨著數字電路數據量的提高,數據的傳輸速率也越來越快,LVDS(低壓分信號)標準越來越多的應用在FPGA和ASIC器 件中。文章對LVDS信號的特點進行了分析,說明了PCB設計中分走
    發表于 02-23 09:54 ?340次下載
    <b class='flag-5'>高速</b><b class='flag-5'>LVDS</b>(低壓<b class='flag-5'>差</b>分信號)<b class='flag-5'>接口</b>電路設計

    (Xilinx)FPGA中LVDS高速傳輸的實現

    (Xilinx)FPGA中LVDS高速傳輸的實現
    發表于 03-01 13:12 ?66次下載

    ADN4663:雙路3 V CMOS LVDS高速驅動器數據表

    ADN4663:雙路3 V CMOS LVDS高速驅動器數據表
    發表于 05-08 14:25 ?2次下載
    ADN4663:雙路3 V CMOS <b class='flag-5'>LVDS</b><b class='flag-5'>高速</b><b class='flag-5'>差</b><b class='flag-5'>分</b>驅動器數據表

    基于LVDS接口IOSERDES高速串行通信

    項目涉及5片FPGA之間的多機通信,1片主FPGA,4片從FPGA,5片FPGA采用星形連接的拓撲結構。4個從機與主機之間通信接口采用基于LVDS_33的
    的頭像 發表于 12-23 06:15 ?976次閱讀

    LVDS接口有哪些分類

    低電壓分信號傳輸技術,廣泛應用于高速數據傳輸領域,如液晶顯示器、嵌入式系統、網絡通信等。LVDS接口具有低功耗、低噪聲、高帶寬等特點,能夠
    的頭像 發表于 01-18 11:20 ?1733次閱讀

    高速接收機SN65LVDS/T33數據表

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

    高速接收機SN55LVDS33數據表

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

    lvds接口在工業顯示中的應用

    隨著工業自動化和智能化的不斷發展,工業顯示技術也在不斷進步。LVDS(Low Voltage Differential Signaling,低壓分信號)接口作為一種高速、低功耗的
    的頭像 發表于 11-21 16:12 ?132次閱讀