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

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

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

Xilinx SRIO IP介紹和使用經(jīng)驗(yàn)分享

gvxiaot ? 來源:gvxiaot ? 作者:gvxiaot ? 2022-08-02 10:00 ? 次閱讀

1. 為什么選擇SRIO

隨著PCIe接口、以太網(wǎng)接口的飛速發(fā)展,以及SOC芯片的層出不窮,芯片間的數(shù)據(jù)交互帶寬大大提升并且正在向片內(nèi)交互轉(zhuǎn)變;SRIO接口的應(yīng)用市場在縮小,但是由于DSP和PowerPC中集成了SRIO接口,因此在使用DSP/Power PC + FPGA的使用場景中仍然占有一席之地。

同時,由于SRIO接口一些獨(dú)特的特性,使得SRIO接口在一些應(yīng)用中仍然不可替代:

A. 不同的數(shù)據(jù)包類型,支持使用SRIO傳輸不同的數(shù)據(jù)類型;

B. 支持?jǐn)?shù)據(jù)包優(yōu)先級;

C. 支持響應(yīng)機(jī)制;

D. 支持重傳機(jī)制;

E. 支持帶目的地址的路由;

F. 方便研發(fā)工程師定義靈活的硬件結(jié)構(gòu)和變化的負(fù)荷分擔(dān);

2. XilinxSRIO IP特性

Xilinx SRIO IO具有如下特性:

A. 支持RapidIO互連Rev2.2協(xié)議;

B. 支持1x、2x、4x,并且可以從x4、x2向下train down;

C. 每條lane支持的線速率為1.25Gbs、2.5Gbs、3.125Gbs、5.0Gbs和6.25Gbs;

D. 支持同時發(fā)生的Initiator和Target接口操作;

E. 支持Doorbell傳輸和Message傳輸;

F. 專有的Maintenance傳輸端口;

G. 使用標(biāo)準(zhǔn)的AXI4-Lite和AXI4-Stream接口實(shí)現(xiàn)簡單的握手機(jī)制和數(shù)據(jù)流控制;

H. 所有發(fā)送數(shù)據(jù)包支持source ID可配置;

I. 針對復(fù)雜的互連系統(tǒng),支持16bit device ID配置;

J. TXbuffer和RX buffer深度獨(dú)立可配置,可配置深度分別為8包、16包和32包;

K. 支持TX flow control和RX flow control;

L. 支持multi-cast傳輸;

3. Xilinx SRIO IP架構(gòu)

Xilinx SRIO IP包含LOG(邏輯和傳輸層)、BUF(傳輸層)、PHY(物理層)、Clock&Reset四個組成部分,其中:

A. 邏輯和傳輸層定義了操作協(xié)議,包含數(shù)據(jù)組包和解包,提供用戶邏輯接口、傳輸接口和配置接口;

B. 傳輸層定義了包交換、路由和尋址機(jī)制,包含發(fā)送和接收數(shù)據(jù)緩存、數(shù)據(jù)包傳輸和流控、優(yōu)先級控制和數(shù)據(jù)包排序、跨時鐘域處理和重傳管理;

C. 物理層定義了電氣特性、鏈路控制和糾錯重傳等,包含鏈路訓(xùn)練、初始化和協(xié)議實(shí)現(xiàn)、CRC和響應(yīng)機(jī)制、提供和Transceiver的接口;

D. Clock&Reset部分實(shí)現(xiàn)SRIO時鐘、復(fù)位、寄存器管理(Clock、Reset、Register Manager):該部分實(shí)現(xiàn)SRIO接口時鐘方案、復(fù)位策略及寄存器配置和管理功能;

Xilinx SRIO IP核的結(jié)構(gòu)如下圖所示:

poYBAGGYHbCAMlT6AADgwzHxUJU523.png

其中,邏輯層提供給用戶的接口包括Initiator Request接口、Initiator Response接口、TargetRequest接口、Target Response接口、Maintenance Request接口、Maintenance Response接口和配置寄存器接口。如下圖所示:

pYYBAGGYHbGAazlrAADwzErj3Bg925.png

由于在SRIO IP版本升級的過程中,在Gen2 IP中引入了AXI接口,因此Xilinx SRIO IP LOG層提供給用戶的接口也發(fā)生了變化。

以Initiator接口為例,Xilinx SRIO IP Gen1 V5.6以前的版本提供給用戶的接口信號如下圖所示,Target和Maintenance接口提供給用戶的接口也和Initiator接口基本類似。

pYYBAGGYHbOAesE4AAIpU636n9Q682.png

以Initiator接口為例,Xilinx SRIO IP Gen2 V1.0以后的版本提供給用戶的接口信號如下圖所示,變更為AXI接口,Target和Maintenance接口提供給用戶的接口也和Initiator接口基本類似。

poYBAGGYHbSAaj4mAACyvFs7R94279.png

以Initiator接口為例,Xilinx SRIO IP Gen1 V5.6以前的版本提供給用戶的接口時序如下圖所示:

poYBAGGYHbWAQQZzAAFoZlKF2n0781.png

以Initiator接口為例,Xilinx SRIO IP Gen2 V1.0以后的版本提供給用戶的接口時序如下圖所示,這里發(fā)生了一個顯著的變化是在每一包數(shù)據(jù)發(fā)送時tready會先變低一個周期,因此此處的時序要控制好,不然很容易造成SRIO IP核堵塞。

pYYBAGGYHbeAPS-kAAE55dtCi2U472.png

4. SRIO數(shù)據(jù)包格式

在SRIO數(shù)據(jù)包格式中,主要分為包頭、數(shù)據(jù)payload、包尾三部分。包頭的ackID、crf、prio、ftype、ttype、source ID、destination ID、address等信息需要用戶根據(jù)數(shù)據(jù)包的類型、優(yōu)先級、源地址、目的地址、讀寫操作地址等信息填入;data部分是我們需要操作當(dāng)前數(shù)據(jù)包的payload;包尾的CRC等信息為IP核自動插入。

poYBAGGYHbiAY5MrAAIdaut4-fc542.png

5. XilinxSRIO IP使用和調(diào)試中的注意事項(xiàng)

Xilinx SRIO IP在使用和調(diào)試的時候,我們強(qiáng)調(diào)如下注意事項(xiàng):

A. LOG接口的時序控制必須精準(zhǔn),否則可能會造成SRIO IP核堵塞;以IREQ接口為例說明:

pYYBAGGYHbmAUw4OAAEJTDyLSyY672.png

B. LOG接口使用組合邏輯來控制時序,在實(shí)際上板測試過程中要考慮tready信號 隨時可能變無效的情況,通常我用一個不使能任何輸出寄存器的FIFO來做組合邏輯時序控制,在Gen2 IP使用時我的一個例子如下圖所示;

poYBAGGYHbuAJ5mFAAE9W51Csc4691.png

C. Gen1 IP和Gen2 IP的差別在于:Gen1的控制信號為低有效,Gen2的控制信號為高有效;Gen1使用sof、eof、valid來控制有效數(shù)據(jù)進(jìn)入IP核,Gen2使用tvalid和tlast來控制有效數(shù)據(jù)進(jìn)入IP核;Gen1的包頭信息是獨(dú)立的接口,sof對應(yīng)的就是第一個payload數(shù)據(jù),Gen2的包頭信息是作為數(shù)據(jù)寫入tdata接口;

pYYBAGGYHbyAbRP0AAEn8HZl8G0377.png

D. 非法的數(shù)據(jù)包會造成SRIO IP核堵塞,比如數(shù)據(jù)長度和包頭里的size不匹配,比如沒有tlast信號等;

E. 如果一個數(shù)據(jù)包payload不足2N,經(jīng)過SRIO IP核后會自動補(bǔ)充到2N,例如我們發(fā)送一個payload為48byte的包,到達(dá)接收端的將會是一個64byte的數(shù)據(jù)包;

F. 如果device ID錯誤,數(shù)據(jù)包將會被過濾;

G. 在FPGA和對端器件調(diào)試SRIO的時候,DSP和Power PC的SRIO通常也支持不同的幾種環(huán)回模式,遇到鏈路不通的問題可以借助這些環(huán)回模式來進(jìn)行定位;

H. 如果系統(tǒng)中接的有SRIO Switch芯片,一般IIC接口和SRIO接口的Maintenance包都可以用于配置Switch芯片;

審核編輯:湯梓紅

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

    關(guān)注

    71

    文章

    2167

    瀏覽量

    121428
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1708

    瀏覽量

    149554
  • sRIO
    +關(guān)注

    關(guān)注

    1

    文章

    31

    瀏覽量

    21013
收藏 人收藏

    評論

    相關(guān)推薦

    FPGA優(yōu)質(zhì)開源模塊-SRIO IP核的使用

    本文介紹一個FPGA常用模塊:SRIO(Serial RapidIO)。SRIO協(xié)議是一種高速串行通信協(xié)議,在我參與的項(xiàng)目中主要是用于FPGA和DSP之間的高速通信。有關(guān)SRIO協(xié)議的
    的頭像 發(fā)表于 12-12 09:19 ?2243次閱讀
    FPGA優(yōu)質(zhì)開源模塊-<b class='flag-5'>SRIO</b> <b class='flag-5'>IP</b>核的使用

    下載Xilinx IP Core

    除了在Xilinx官網(wǎng)上在哪里能下載到Xilinx IP Core 及l(fā)icense? 如FFTFIRCORDIC核等!
    發(fā)表于 06-20 23:51

    srio_v5_6 IP核使用發(fā)生錯誤

    現(xiàn)在,我在ISE13.1軟件中使用srio_v5_6 Ip內(nèi)核。我使用CORE生成器為X6VLX240T-1156-1設(shè)備生成一個srio_v5_6 IP內(nèi)核。然后我用ISE13.1軟
    發(fā)表于 10-08 11:10

    Xilinx TCP_IP協(xié)議實(shí)現(xiàn)

    Xilinx FPGA工程例子源碼:Xilinx TCP_IP協(xié)議實(shí)現(xiàn)
    發(fā)表于 06-07 14:54 ?32次下載

    Xilinx CORE生成器IP列表名稱及說明詳解

    本頁包含通過LabVIEW FPGA模塊可用的Xilinx CORE生成器IP的列表。LabVIEW通過Xilinx IP節(jié)點(diǎn)實(shí)現(xiàn)該IP
    發(fā)表于 11-18 05:55 ?4845次閱讀

    Xilinx FIR IP介紹及仿真

    Xilinx FIR IP介紹與仿真 1 xilinx fir ip 簡介 1)符合 AXI4-Stream 的接口 2)高性能有限脈沖響
    的頭像 發(fā)表于 10-30 12:29 ?899次閱讀

    在Vivado中使用SRIO高速串行協(xié)議的IP演示官方例程

    在FPGA開發(fā)過程中不可避免的要使用到一些IP,有些IP是很復(fù)雜的,且指導(dǎo)手冊一般是很長的英文,僅靠看手冊和網(wǎng)絡(luò)的一些搜索,對于復(fù)雜IP的應(yīng)用可能一籌莫展。 這里以Xilinx為例,在
    的頭像 發(fā)表于 04-15 15:19 ?6565次閱讀
    在Vivado中使用<b class='flag-5'>SRIO</b>高速串行協(xié)議的<b class='flag-5'>IP</b>演示官方例程

    Xilinx平臺Aurora IP介紹(二)時鐘與復(fù)位

    對于我們使用Xilinx或其他的成熟IP而言,IP相當(dāng)于一個黑匣子,內(nèi)部實(shí)現(xiàn)的邏輯功能我們知道,但是控制不了,只能默認(rèn)OK;一般而言,成熟IP都是經(jīng)過反復(fù)驗(yàn)證和使用,確實(shí)沒有什么問題。
    的頭像 發(fā)表于 02-19 18:30 ?5409次閱讀
    <b class='flag-5'>Xilinx</b>平臺Aurora <b class='flag-5'>IP</b><b class='flag-5'>介紹</b>(二)時鐘與復(fù)位

    Xilinx FFT IP介紹與仿真測試

    Xilinx快速傅立葉變換(FFT IP)內(nèi)核實(shí)現(xiàn)了Cooley-Tukey FFT算法,這是一種計算有效的方法,用于計算離散傅立葉變換(DFT)。
    的頭像 發(fā)表于 03-30 11:01 ?3027次閱讀

    SRIO IP核的三層協(xié)議的作用解析

    SRIO這種高速串口復(fù)雜就復(fù)雜在它的協(xié)議上,三層協(xié)議:邏輯層,傳輸層以及物理層。 數(shù)據(jù)手冊會說這三層協(xié)議是干什么的呢?也就是分工(【FPGA】SRIO IP核系統(tǒng)總覽以及端口介紹
    的頭像 發(fā)表于 04-25 11:20 ?1663次閱讀
    <b class='flag-5'>SRIO</b> <b class='flag-5'>IP</b>核的三層協(xié)議的作用解析

    Xilinx Vivado DDS IP使用方法

    DDS(Direct Digital Frequency Synthesizer) 直接數(shù)字頻率合成器,本文主要介紹如何調(diào)用Xilinx的DDS IP核生成某一頻率的Sin和Cos信號。
    的頭像 發(fā)表于 07-24 11:23 ?4992次閱讀
    <b class='flag-5'>Xilinx</b> Vivado DDS <b class='flag-5'>IP</b>使用方法

    基于FPGA的SRIO協(xié)議設(shè)計

    本文介紹一個FPGA常用模塊:SRIO(Serial RapidIO)。SRIO協(xié)議是一種高速串行通信協(xié)議,在我參與的項(xiàng)目中主要是用于FPGA和DSP之間的高速通信。有關(guān)SRIO協(xié)議的
    的頭像 發(fā)表于 09-04 18:19 ?1389次閱讀
    基于FPGA的<b class='flag-5'>SRIO</b>協(xié)議設(shè)計

    srio交換芯片是什么?srio交換芯片的原理和作用

    SRIO(Serial RapidIO)交換芯片是一種高性能的通信芯片,專門設(shè)計用于實(shí)現(xiàn)基于SRIO協(xié)議的數(shù)據(jù)交換和傳輸。SRIO是一種點(diǎn)對點(diǎn)串行通信協(xié)議,廣泛應(yīng)用于嵌入式系統(tǒng)、高性能計算、網(wǎng)絡(luò)通信
    的頭像 發(fā)表于 03-16 16:40 ?3435次閱讀

    如何申請xilinx IP核的license

    在使用FPGA的時候,有些IP核是需要申請后才能使用的,本文介紹如何申請xilinx IP核的license。
    的頭像 發(fā)表于 10-25 16:48 ?345次閱讀
    如何申請<b class='flag-5'>xilinx</b> <b class='flag-5'>IP</b>核的license

    SRIO介紹xilinx的vivado 2017.4中生成srio例程代碼解釋

    介紹 本處將從SRIO的數(shù)據(jù)流,數(shù)據(jù)協(xié)議,常用FPGA支持模式,以及IP例程中的時鐘大小計算等部分介紹SRIO的情況。 3.1
    的頭像 發(fā)表于 12-10 16:24 ?362次閱讀
    <b class='flag-5'>SRIO</b><b class='flag-5'>介紹</b>及<b class='flag-5'>xilinx</b>的vivado 2017.4中生成<b class='flag-5'>srio</b>例程代碼解釋