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

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

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

使用ISERDES接收高速串行數(shù)據(jù)

冬至配餃子 ? 來源:Bug記錄 ? 作者:woodfan ? 2022-08-20 11:11 ? 次閱讀

上一篇講到了Idelay,那么SERDES(Serialization/De-serialization)也可以順帶介紹一下。高速信號傳輸過程中,并行傳輸因為線路同步難,抗干擾性差等缺點逐漸被串行技術(shù)取代;通過提高傳輸速率的方法,串行傳輸也可以實現(xiàn)很高的傳輸速度。

但是,在內(nèi)部處理信號時,數(shù)據(jù)信號往往是多bit信號,而傳輸過程中需要用到單bit串行傳輸技術(shù),所以,中間需要有一個轉(zhuǎn)換器,實現(xiàn)并串轉(zhuǎn)換,這就需要用到SERDES技術(shù)。

從Virtes-4系列FPGA開始,Xilinx公司的FPGA支持LVDS電平和內(nèi)置的SERDES原語,所以本文適用Virtes-4及后續(xù)系列FPGA。

本文將介紹ISERDES的IP核生成,ISERDES原語介紹,Bitslip使用以及最終的仿真結(jié)果。

這次我們可以使用IP核簡化ISERDES原語的配置,找到SelectIO IP核的配置,然后使用簡化設(shè)置,如下:

poYBAGMAT5qAZrqeAADnpn94iPQ316.png

數(shù)據(jù)總線設(shè)置

簡單來說,

Interface Template:接口模板,本次數(shù)據(jù)傳輸并不符合預(yù)設(shè)的協(xié)議,所以選擇Custom

Data BUS Direction:接收數(shù)據(jù)-> input

Data Rate: 數(shù)據(jù)總線是SDR還是DDR,DDR內(nèi)容可以看(LVDS差分信號簡單處理)2. DDR信號的處理

Serialization Factor: 串化因子,也就是需要把串行信號轉(zhuǎn)換成多少bit的并行數(shù)據(jù);

SDR Rate:可設(shè)為2,3,4,5,6,7,8; DDR Rate:可設(shè)為4,6,8,10,14;

External Data Width: 外部輸入數(shù)據(jù)的位寬,默認(rèn)設(shè)1

I/O signaling:設(shè)置差分還是單端以及IO電壓標(biāo)準(zhǔn)

poYBAGMAT7KAJlKoAADsEvN8sq4065.png

時鐘設(shè)置

簡單來說,

Clock Signaling:

時鐘信號是差分還是單端以及IO電壓標(biāo)準(zhǔn)

Clock Strategy:

External Clock:

IP核內(nèi)部產(chǎn)生并行時鐘

Internal Clock:

IP核需要手動輸入并行時鐘

在xilinx的UG471文檔的P152中,提到了ISERDES的時鐘要求,可以說是要求串行鐘和并行鐘要求相位對齊,需要注意

pYYBAGMAT9uAXD2aAACGvbMTJsU209.pngpYYBAGMAT-CAS1ySAADgL_BGwlA125.png

數(shù)據(jù)和延時設(shè)置

數(shù)據(jù)延時部分,這個地方先不做設(shè)置。

pYYBAGMAT_-AT4nyAADI2TdmbLU992.png

Summary

生成IP核之后,可以找到IP核最底層的verilog文件,它的內(nèi)部實現(xiàn)的核心部分是ISERDES2,為此我們需要知道ISERDES2的參數(shù)內(nèi)容;

ISERDES2的屬性中,重點關(guān)注的是以下幾個:

DATA_RATE: 數(shù)據(jù)速率還是SDR還是DDR

DATA_WIDTH:參考上面數(shù)據(jù)總線設(shè)置的內(nèi)容

INTERFACE_TYPE:接口類型,默認(rèn)使用"NETWORKING"

NUM_CE: 時鐘使能數(shù)量,默認(rèn)使用2

SERDES_MODE:當(dāng)使用級聯(lián)ISERDES時,數(shù)據(jù)從Master ISERDES輸入,使用一個ISERDES設(shè)為"MASTER",兩個ISERDES級聯(lián)使用,另一個為"SLAVE";詳細可見下面講到級聯(lián)時的內(nèi)容

其他的屬性可以保持默認(rèn)

poYBAGMAUBuAZXzHAADMO-sOBo4557.png

UG471 Figure 3-2

ISERDES2重要端口設(shè)置:

Q1-Q8: 數(shù)據(jù)輸出;注意當(dāng)級聯(lián)時,"SLAVE" ISERDES的Q3-Q8為并行數(shù)據(jù)的第8-13位;

SHIFTOUT:級聯(lián)時使用,詳見下文

SHIFTIN:級聯(lián)時使用,詳見下文

D:從IOB來的數(shù)據(jù)

DDLY:從Idelay2來的數(shù)據(jù),D端口從輸入引腳接入后沒經(jīng)過處理,DDLY經(jīng)過Idelay2處理;Idelay詳見(LVDS差分信號簡單處理)3. Idelay對時序的補救

CLK,CLKB:串行時鐘,快鐘,CLKB是CLK取反處理

CE1,CE2:快慢鐘的使能

RST:原語復(fù)位,高復(fù)位

CLKDIV:并行鐘,慢鐘

BITSLIP:bit移位功能,詳見下文

時鐘部分說明:

SDR下:假設(shè)接收的串行數(shù)據(jù)時鐘為256MHz,解串因子為8,則CLKDIV為32MHz;

CLKDIV = CLK/DATA_WIDTH

DDR: CLKDIV = 2 * CLK/DATA_WIDTH

注意CLK和CLKDIV要相位對齊;

在NETWORKING模式下,ISERDES輸出要晚于輸入2個CLKDIV周期;

BITSLIP功能說明:

數(shù)據(jù)串轉(zhuǎn)并的過程中,如果沒有確定好數(shù)據(jù)邊界,解串的數(shù)據(jù)也不是正確的,這個時候就需要使用BITSLIP功能:

在SDR和DDR下,bitslip移位的位數(shù)并不一樣:

poYBAGMAUC6AIAPVAAC7M4TOYXg066.png

SDR下,一個bitslip脈沖使數(shù)據(jù)左移一位;DDR下,一個bitslip脈沖使數(shù)據(jù)右移一位或左移三位;

poYBAGMAUEOAByVdAACnxkrc8q0228.png

BITSLIP時序 UG471 Figure 3-12

可以從上圖看出,BITSLIP在CLKDIV時鐘下,一個完整的脈沖可以使輸出數(shù)據(jù)產(chǎn)生相應(yīng)的變化;

所以在某些傳輸過程中,可以先開始傳輸預(yù)設(shè)值,等待接收方調(diào)整Idelay和BITSLIP解出正確的預(yù)設(shè)值后,開始傳輸真正的數(shù)據(jù)。

ISERDES級聯(lián)使用:

SDR Rate下,一個ISERDES能夠解串的最大數(shù)據(jù)寬度為8;在某些ADC中,其并行數(shù)據(jù)寬度大于8位,這個時候可以使用上ISERDES的級聯(lián)功能:

pYYBAGMAUFmAIgglAACKQT3pTTs288.png

級聯(lián)示意圖 UG471 Figure 3-8

首先 設(shè)置一個ISERDES的SERDES_MODE屬性為"MASTER",另一個為"SLAVE";

設(shè)置"MASTER"和"SLAVE" ISERDES2的DATA_WIDTH數(shù)據(jù)寬度為同一個數(shù)(10或14);

將"MASTER"的SHIFTOUT1,2連接至"SLAVE"的SHIFTIN1,2

DATA_WIDTH為10時,"SLAVE"的Q3-4為第8-9位;DATA_WIDTH為14時,"SLAVE"的Q3-8為第8-13位。

仿真結(jié)果:

poYBAGMAUG6ASpBTAAA8hdr4v4M699.png

找到預(yù)設(shè)值才開始傳輸真正的數(shù)據(jù)

注意,獨立使用VCS,VERDI仿真ISERDES時,需要使用某些設(shè)置才能仿真成功,具體請參考VCS獨立仿真Vivado IP核的一些方法總結(jié)

總結(jié):

ISERDES2可以使用SelectIO IP核設(shè)置簡化原語設(shè)置流程;但ISERDES2原語設(shè)置會更加精細

BITSLIP功能很有用,需要用它找到數(shù)據(jù)的正確邊界。



審核編輯:劉清

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

    關(guān)注

    1630

    文章

    21782

    瀏覽量

    604982
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    8741

    瀏覽量

    147664
  • DDR
    DDR
    +關(guān)注

    關(guān)注

    11

    文章

    712

    瀏覽量

    65434
  • SerDes
    +關(guān)注

    關(guān)注

    6

    文章

    200

    瀏覽量

    34983
  • 數(shù)據(jù)總線
    +關(guān)注

    關(guān)注

    2

    文章

    58

    瀏覽量

    17601
收藏 人收藏

    評論

    相關(guān)推薦

    80SJNB Advanced 均衡和串行數(shù)據(jù)分析方法

    和其它8000 系列采樣示波器上使用。關(guān)閉的眼圖、接收端均衡和發(fā)送端目前,大量的串行數(shù)據(jù)鏈路設(shè)計和標(biāo)準(zhǔn)進入了信道(互連)嚴(yán)重限制高速信號、使接收端一端眼圖關(guān)閉的時代。經(jīng)過鏈路傳輸后可
    發(fā)表于 11-26 10:44

    多FPGA系統(tǒng)中自定義高速串行數(shù)據(jù)接口設(shè)計

    多FPGA系統(tǒng)中自定義高速串行數(shù)據(jù)接口設(shè)計.pdf
    發(fā)表于 03-21 17:28

    多FPGA系統(tǒng)中自定義高速串行數(shù)據(jù)接口設(shè)計

    多FPGA系統(tǒng)中自定義高速串行數(shù)據(jù)接口設(shè)計為方便多FPGA系統(tǒng)中主從FPGA之間的命令與數(shù)據(jù)傳輸,節(jié)省連接的引腳數(shù)量,設(shè)計了一種基于FPGA的自定義高速
    發(fā)表于 08-11 11:49

    Sync_Header Bits如何從串行數(shù)據(jù)中獲取正確的Header Bits?

    嗨,我正在使用XILINX IP-Core Generator的GTX。我正在使用Kintex-7。在接收器中,接收接收串行數(shù)據(jù)并轉(zhuǎn)換成并行數(shù)據(jù)
    發(fā)表于 07-23 08:14

    怎么實現(xiàn)基于FPGA的具有流量控制機制的高速串行數(shù)據(jù)傳輸系統(tǒng)設(shè)計?

    本文介紹了基于Xilinx Virtex-6 FPGA的高速串行數(shù)據(jù)傳輸系統(tǒng)的設(shè)計與實現(xiàn),系統(tǒng)包含AXI DMA和GTX串行收發(fā)器,系統(tǒng)增加了流量控制機制來保證高速
    發(fā)表于 05-25 06:45

    高速CAN通訊總線接收到無效串行數(shù)據(jù)是何原因?怎么解決呢?

    高速CAN通訊總線接收到無效串行數(shù)據(jù)是何原因?怎么解決呢?
    發(fā)表于 05-09 10:39

    【verilog每日一練】位拼接符的應(yīng)用:如何實現(xiàn)串行數(shù)據(jù)接收與輸出

    若1bit串行信號data_in按高位先發(fā)的順序傳輸一個8bit的數(shù)據(jù),data_en為使能信號,請用位拼接符實現(xiàn)串行數(shù)據(jù)接收并輸出接收
    發(fā)表于 08-07 16:05

    串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)

    。。。。。。串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)。。。。。。。
    發(fā)表于 11-10 10:01 ?9次下載

    行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù).hex

    。。。。。。并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)。。。。。。。
    發(fā)表于 11-10 10:00 ?0次下載

    多FPGA系統(tǒng)中自定義高速串行數(shù)據(jù)接口設(shè)計

    多FPGA系統(tǒng)中自定義高速串行數(shù)據(jù)接口設(shè)計
    發(fā)表于 05-10 11:24 ?24次下載

    基于8051的Proteus仿真-串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)

    基于8051的Proteus仿真-串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)
    發(fā)表于 09-01 23:32 ?10次下載

    高速串行數(shù)據(jù)挑戰(zhàn)與TDR阻抗測試和高速串行鏈路的分析

    本文介紹了TDR阻抗測試和高速串行鏈路分析,首先介紹了高速串行數(shù)據(jù)鏈路的挑戰(zhàn),然后對高速串行數(shù)據(jù)
    發(fā)表于 10-12 16:42 ?9次下載
    <b class='flag-5'>高速</b><b class='flag-5'>串行數(shù)據(jù)</b>挑戰(zhàn)與TDR阻抗測試和<b class='flag-5'>高速</b><b class='flag-5'>串行</b>鏈路的分析

    使用ISERDES接收高速串行數(shù)據(jù)

    高速信號傳輸過程中,并行傳輸因為線路同步難,抗干擾性差等缺點逐漸被串行技術(shù)取代;通過提高傳輸速率的方法,串行傳輸也可以實現(xiàn)很高的傳輸速度。
    發(fā)表于 06-16 14:11 ?2233次閱讀
    使用<b class='flag-5'>ISERDES</b><b class='flag-5'>接收</b><b class='flag-5'>高速</b><b class='flag-5'>串行數(shù)據(jù)</b>

    使用OSERDES發(fā)送高速串行數(shù)據(jù)

    OSERDES實現(xiàn)并串轉(zhuǎn)換,只需要管發(fā)送并不需要管接收到的數(shù)據(jù)如何,所以它的操作相對于ISERDES來說簡單;
    的頭像 發(fā)表于 06-16 14:14 ?1319次閱讀
    使用OSERDES發(fā)送<b class='flag-5'>高速</b><b class='flag-5'>串行數(shù)據(jù)</b>

    測量串行數(shù)據(jù)信號:選擇合適的示波器帶寬

    1.考慮測量帶寬的高速串行數(shù)據(jù) 在測量高速串行數(shù)據(jù)信號和設(shè)備時,無論是為了合規(guī)性、設(shè)計還是為了故障排除,測量帶寬都是一個重要的考慮因素。相對于信號的頻率成分,測量示波器可以有一個或大或
    的頭像 發(fā)表于 07-19 11:04 ?498次閱讀
    測量<b class='flag-5'>串行數(shù)據(jù)</b>信號:選擇合適的示波器帶寬