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

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

3天內不再提示

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

冬至子 ? 來源:Bug記錄 ? 作者:woodfan ? 2023-06-16 14:14 ? 次閱讀

OSERDES實現(xiàn)并串轉換,只需要管發(fā)送并不需要管接收到的數(shù)據(jù)如何,所以它的操作相對于ISERDES來說簡單;

本文將介紹OSERDES的IP核生成,OSERDES原語介紹,OSERDES級聯(lián)使用以及ISERDES,Idelay接收串行數(shù)據(jù)的幾種方法。

與上一篇文章的結構對應,這篇也將從可視化的SelectIO的設置講起,從簡單到復雜;

在IP Catalog里面找到"SelectIO",接下來跟著這般操作:

圖片

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

參數(shù)的意義如下:

  • Interface Template:接口模板,本次數(shù)據(jù)傳輸并不符合預設的協(xié)議,所以選擇Custom
  • Data BUS Direction:這一次需要發(fā)送數(shù)據(jù),選擇Output
  • Data Rate: 數(shù)據(jù)總線是SDR還是DDR,DDR內容可以看(LVDS差分信號簡單處理)2. DDR信號的處理
  • Serialization Factor: 串化因子,也就是IP核的輸入并行數(shù)據(jù)位寬;SDR Rate:可設為2,3,4,5,6,7,8;DDR Rate:可設為4,6,8,10,14;
  • External Data Width: 外部輸出數(shù)據(jù)的位寬,默認設1
  • I/O signaling:設置差分還是單端以及IO電壓標準

圖片

時鐘設置

這一部分的內容可以參考使用ISERDES接收高速串行數(shù)據(jù),內容一樣;

圖片

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

這個地方不做設置的原因是因為,我們在測試ISERDES和OSERDES,需要排除使用Idelay的影響,因此這個地方不做任何延時;

最后一鍵OK,OSERDES的相關IP核就生成好了。從IP核最底層的verilog文件可以看到,它的實現(xiàn)跟OSERDES2原語有關,從UG471我們可以知道OSERDES2的相關內容;

首先關注OSEDES2的屬性內容,它的重要屬性決定的因素如下:

  • DATA_RATE_OQ:決定OQ端口輸出的數(shù)據(jù)速率,可選SDR或DDR;
  • DATA_RATE_TQ:決定TQ端口輸出的數(shù)據(jù)速率,可選BUF, SDR或DDR;
  • DATA_WIDTH: 根據(jù)"DATA_RATE_OQ"確定具體數(shù)值;SDR Rate:可設為2,3,4,5,6,7,8;DDR Rate:可設為4,6,8,10,14;
  • SERDES_MODE:確定OSERDES是主模塊還是從模塊,這跟OSERDES級聯(lián)使用有關,具體內容請看下面的內容;
  • TRISTATE_WIDTH:這跟"DATA_RATE_TQ"有關,大多情況都設為1,它的具體設置關系如下:

圖片

TRISTATE_WIDTH設置參數(shù)表 UG471 Table 3-8

圖片

OSERDES原語圖 UG471 Figure 3-14

OSERDES原語的端口定義如上圖所示,其中重要的端口設置如下:

  • OQ:串行數(shù)據(jù)輸出,直接到IOB,也就是直接連接到IOBUF,ODELAY等特殊結構
  • SHIFTOUT1/2:級聯(lián)時使用,詳見下文
  • CLK:高速時鐘,串行數(shù)據(jù)時鐘輸入
  • CLKDIV:慢速時鐘,并行數(shù)據(jù)時鐘輸入
  • D1 to D8:并行數(shù)據(jù)輸入,當并行數(shù)據(jù)多于8bit不超過14bit,可以使用OSERDES級聯(lián),級聯(lián)的使用方法詳見下文
  • OCE:串行數(shù)據(jù)時鐘使能信號輸出
  • RST:高復位信號輸入
  • SHIFTIN1/2: 級聯(lián)時使用,詳見下文

其他沒有提到的輸入信號可以設為0,輸出信號可以不用連接;

CLKDIV與CLK的聯(lián)系:

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

SDR:CLKDIV = CLK/DATA_WIDTH

DDR: CLKDIV = 2 * CLK/DATA_WIDTH

注意CLK和CLKDIV不一定是相位對齊的;

OSERDES2數(shù)據(jù)時延:

雖然與ISERDES2相比,沒有"Mode"屬性設置,但CLK和CLKDIV不一定是相位對齊的,它的輸出數(shù)據(jù)相對于輸入數(shù)據(jù)也有相應的時延,具體的延時與DATA_WIDTH,DATA_RATE_OQ,DATA_RATE_TQ有關;關系如下:

圖片

OSERDES時延參數(shù)對照表 UG471 Table 3-11

以最簡單的2:1 SDR串化為例:

圖片

2:1 SDR UG471 Figure 3-16

  1. Event1時,數(shù)據(jù)從FPGA其他部分邏輯傳到OSERDES2的D1-2端口
  2. Event2時,數(shù)據(jù)在CLKDIV上升沿被OSERDES2采樣
  3. Event3時,OQ端口產(chǎn)生相應的輸出串行數(shù)據(jù)

所以,是不是也可以推出下圖Event所發(fā)生的事情呢?條件為8:1 DDR。

圖片

8:1 DDR UG471 Figure 3-17

OSERDES級聯(lián)使用:

當并行數(shù)據(jù)多于8bit不超過14bit時,可以采用兩個OSERDES2級聯(lián)的使用方法,示意圖如下,

圖片

擴展并行輸入數(shù)據(jù)位寬 UG471 Figure 3-15

上圖已經(jīng)示意的比較清楚,操作步驟可分為三步。

  1. 兩個OSERDES2的"SERDES_MODE"設置,一個需要設為"MASTER",另一個設為"SLAVE";
  2. 將"SLAVE"的"SHIFTOUT1/2"連接至"MASTER"的"SHIFTIN1/2";
  3. "MASTER"的D1-D8輸入并行數(shù)據(jù)的低8位,"SLAVE"的D3-D8可以連接輸入并行數(shù)據(jù)的高6位;

我在調試一款AD的過程中接觸到了SelectIO中的相關知識,由表及里,看過一些I/OSERDES接收數(shù)據(jù)的調節(jié)方法:

  1. 首先讓發(fā)送方發(fā)送特殊字符,接收方接收數(shù)據(jù)轉為并行數(shù)據(jù),調節(jié)Idelay的參數(shù),直到出現(xiàn)穩(wěn)定的結果(不一定是發(fā)送的特殊字符),Idelay參數(shù)記為C1;
  2. 繼續(xù)調節(jié)Idelay的參數(shù),直到結果不再穩(wěn)定,Idelay參數(shù)記為C2;
  3. Idelay參數(shù)設為(C1+C2)/2 ,此時接收的并行數(shù)據(jù)穩(wěn)定為一個定值;
  4. 如果穩(wěn)定的輸出結果不是約定的特殊字符,調節(jié)Bitslip移動字符的邊界,直至輸出結果為約定的特殊字符;
  5. 利用其他的通信方式或方法,告知發(fā)送方可以正常發(fā)送數(shù)據(jù);

更有甚者直接使用ISERDES,Idelay調節(jié)CLK,

  1. 將CLK作為串行數(shù)據(jù),使用ISERDES轉為并行數(shù)據(jù)后,調節(jié)Idelay;
  2. 記錄最后一次并行數(shù)據(jù)全為0的時候的Idelay參數(shù)C1;
  3. 繼續(xù)調節(jié),記錄第一次并行數(shù)據(jù)全為1的時候的Idelay參數(shù)C2;
  4. Idelay參數(shù)設為(C1+C2)/2 ,此時CLK的時鐘對應數(shù)據(jù)的位置裕量充足;

仿真結果可以參看使用ISERDES接收高速串行數(shù)據(jù)

總結:

  1. OSERDES2可以使用SelectIO IP核設置簡化原語設置流程;但OSERDES2原語設置會更加精細。
  2. OSERDES的數(shù)據(jù)時延以及級聯(lián)使用方面見上面的內容。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA設計
    +關注

    關注

    9

    文章

    428

    瀏覽量

    26567
  • DDR
    DDR
    +關注

    關注

    11

    文章

    712

    瀏覽量

    65434
  • SDR
    SDR
    +關注

    關注

    7

    文章

    233

    瀏覽量

    50528
  • RST
    RST
    +關注

    關注

    0

    文章

    31

    瀏覽量

    7411
  • CLK
    CLK
    +關注

    關注

    0

    文章

    127

    瀏覽量

    17198
收藏 人收藏

    評論

    相關推薦

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

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

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

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

    【proteus練一練】串行數(shù)據(jù)轉換為并行數(shù)據(jù)

    /*名稱:串行數(shù)據(jù)轉換為并行數(shù)據(jù) 說明:串行數(shù)據(jù)由 RXD 發(fā)送給串并轉換芯片 74164,TXD 則用于輸出移位時鐘脈沖,74164 將串行
    發(fā)表于 03-01 09:40

    【proteus練一練3.2】 并行數(shù)據(jù)轉換為串行數(shù)據(jù)

    /*名稱:并行數(shù)據(jù)轉換為串行數(shù)據(jù) 說明:切換連接到并串轉換芯片74LS165 的撥碼開關,該芯片將并行數(shù)據(jù)串行方式發(fā)送到 8051 的RX
    發(fā)表于 03-02 09:38

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

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

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

    本文介紹了基于Xilinx Virtex-6 FPGA的高速串行數(shù)據(jù)傳輸系統(tǒng)的設計與實現(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

    高速串行數(shù)據(jù)通信發(fā)送芯片CY7B923的原理及應用

    文章介紹了CYPRESS半導體公司推出的一種用于點對點之間高速串行數(shù)據(jù)通信的發(fā)送芯片CY7B923的原理及應用.較詳細的介紹了CY7B923的管腳功能、內部組成、工作原理及工作方式.同時給出
    發(fā)表于 04-27 16:45 ?37次下載

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

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

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

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

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

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

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

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

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

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

    高速串行數(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>鏈路的分析

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

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