1. 為什么選擇SRIO
隨著PCIe接口、以太網(wǎng)接口的飛速發(fā)展,以及SOC芯片的層出不窮,芯片間的數(shù)據(jù)交互帶寬大大提升并且正在向片內(nèi)交互轉(zhuǎn)變;SRIO接口的應(yīng)用市場在縮小,但是由于DSP和PowerPC中集成了SRIO接口,因此在使用DSP/Power PC + FPGA的使用場景中仍然占有一席之地。
同時(shí),由于SRIO接口一些獨(dú)特的特性,使得SRIO接口在一些應(yīng)用中仍然不可替代:
A. 不同的數(shù)據(jù)包類型,支持使用SRIO傳輸不同的數(shù)據(jù)類型;
B. 支持?jǐn)?shù)據(jù)包優(yōu)先級(jí);
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. 支持同時(shí)發(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. 針對(duì)復(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四個(gè)組成部分,其中:
A. 邏輯和傳輸層定義了操作協(xié)議,包含數(shù)據(jù)組包和解包,提供用戶邏輯接口、傳輸接口和配置接口;
B. 傳輸層定義了包交換、路由和尋址機(jī)制,包含發(fā)送和接收數(shù)據(jù)緩存、數(shù)據(jù)包傳輸和流控、優(yōu)先級(jí)控制和數(shù)據(jù)包排序、跨時(shí)鐘域處理和重傳管理;
C. 物理層定義了電氣特性、鏈路控制和糾錯(cuò)重傳等,包含鏈路訓(xùn)練、初始化和協(xié)議實(shí)現(xiàn)、CRC和響應(yīng)機(jī)制、提供和Transceiver的接口;
D. Clock&Reset部分實(shí)現(xiàn)SRIO時(shí)鐘、復(fù)位、寄存器管理(Clock、Reset、Register Manager):該部分實(shí)現(xiàn)SRIO接口時(shí)鐘方案、復(fù)位策略及寄存器配置和管理功能;
Xilinx SRIO IP核的結(jié)構(gòu)如下圖所示:
![poYBAGGYHbCAMlT6AADgwzHxUJU523.png](https://file.elecfans.com/web2/M00/1F/61/poYBAGGYHbCAMlT6AADgwzHxUJU523.png)
其中,邏輯層提供給用戶的接口包括Initiator Request接口、Initiator Response接口、TargetRequest接口、Target Response接口、Maintenance Request接口、Maintenance Response接口和配置寄存器接口。如下圖所示:
![pYYBAGGYHbGAazlrAADwzErj3Bg925.png](https://file.elecfans.com/web2/M00/1F/68/pYYBAGGYHbGAazlrAADwzErj3Bg925.png)
由于在SRIO IP版本升級(jí)的過程中,在Gen2 IP中引入了AXI接口,因此Xilinx SRIO IP LOG層提供給用戶的接口也發(fā)生了變化。
以Initiator接口為例,Xilinx SRIO IP Gen1 V5.6以前的版本提供給用戶的接口信號(hào)如下圖所示,Target和Maintenance接口提供給用戶的接口也和Initiator接口基本類似。
![pYYBAGGYHbOAesE4AAIpU636n9Q682.png](https://file.elecfans.com/web2/M00/1F/68/pYYBAGGYHbOAesE4AAIpU636n9Q682.png)
以Initiator接口為例,Xilinx SRIO IP Gen2 V1.0以后的版本提供給用戶的接口信號(hào)如下圖所示,變更為AXI接口,Target和Maintenance接口提供給用戶的接口也和Initiator接口基本類似。
![poYBAGGYHbSAaj4mAACyvFs7R94279.png](https://file.elecfans.com/web2/M00/1F/61/poYBAGGYHbSAaj4mAACyvFs7R94279.png)
以Initiator接口為例,Xilinx SRIO IP Gen1 V5.6以前的版本提供給用戶的接口時(shí)序如下圖所示:
![poYBAGGYHbWAQQZzAAFoZlKF2n0781.png](https://file.elecfans.com/web2/M00/1F/61/poYBAGGYHbWAQQZzAAFoZlKF2n0781.png)
以Initiator接口為例,Xilinx SRIO IP Gen2 V1.0以后的版本提供給用戶的接口時(shí)序如下圖所示,這里發(fā)生了一個(gè)顯著的變化是在每一包數(shù)據(jù)發(fā)送時(shí)tready會(huì)先變低一個(gè)周期,因此此處的時(shí)序要控制好,不然很容易造成SRIO IP核堵塞。
![pYYBAGGYHbeAPS-kAAE55dtCi2U472.png](https://file.elecfans.com/web2/M00/1F/68/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)先級(jí)、源地址、目的地址、讀寫操作地址等信息填入;data部分是我們需要操作當(dāng)前數(shù)據(jù)包的payload;包尾的CRC等信息為IP核自動(dòng)插入。
![poYBAGGYHbiAY5MrAAIdaut4-fc542.png](https://file.elecfans.com/web2/M00/1F/61/poYBAGGYHbiAY5MrAAIdaut4-fc542.png)
5. XilinxSRIO IP使用和調(diào)試中的注意事項(xiàng)
Xilinx SRIO IP在使用和調(diào)試的時(shí)候,我們強(qiáng)調(diào)如下注意事項(xiàng):
A. LOG接口的時(shí)序控制必須精準(zhǔn),否則可能會(huì)造成SRIO IP核堵塞;以IREQ接口為例說明:
![pYYBAGGYHbmAUw4OAAEJTDyLSyY672.png](https://file.elecfans.com/web2/M00/1F/69/pYYBAGGYHbmAUw4OAAEJTDyLSyY672.png)
B. LOG接口使用組合邏輯來控制時(shí)序,在實(shí)際上板測試過程中要考慮tready信號(hào) 隨時(shí)可能變無效的情況,通常我用一個(gè)不使能任何輸出寄存器的FIFO來做組合邏輯時(shí)序控制,在Gen2 IP使用時(shí)我的一個(gè)例子如下圖所示;
![poYBAGGYHbuAJ5mFAAE9W51Csc4691.png](https://file.elecfans.com/web2/M00/1F/61/poYBAGGYHbuAJ5mFAAE9W51Csc4691.png)
C. Gen1 IP和Gen2 IP的差別在于:Gen1的控制信號(hào)為低有效,Gen2的控制信號(hào)為高有效;Gen1使用sof、eof、valid來控制有效數(shù)據(jù)進(jìn)入IP核,Gen2使用tvalid和tlast來控制有效數(shù)據(jù)進(jìn)入IP核;Gen1的包頭信息是獨(dú)立的接口,sof對(duì)應(yīng)的就是第一個(gè)payload數(shù)據(jù),Gen2的包頭信息是作為數(shù)據(jù)寫入tdata接口;
![pYYBAGGYHbyAbRP0AAEn8HZl8G0377.png](https://file.elecfans.com/web2/M00/1F/69/pYYBAGGYHbyAbRP0AAEn8HZl8G0377.png)
D. 非法的數(shù)據(jù)包會(huì)造成SRIO IP核堵塞,比如數(shù)據(jù)長度和包頭里的size不匹配,比如沒有tlast信號(hào)等;
E. 如果一個(gè)數(shù)據(jù)包payload不足2N,經(jīng)過SRIO IP核后會(huì)自動(dòng)補(bǔ)充到2N,例如我們發(fā)送一個(gè)payload為48byte的包,到達(dá)接收端的將會(huì)是一個(gè)64byte的數(shù)據(jù)包;
F. 如果device ID錯(cuò)誤,數(shù)據(jù)包將會(huì)被過濾;
G. 在FPGA和對(duì)端器件調(diào)試SRIO的時(shí)候,DSP和Power PC的SRIO通常也支持不同的幾種環(huán)回模式,遇到鏈路不通的問題可以借助這些環(huán)回模式來進(jìn)行定位;
H. 如果系統(tǒng)中接的有SRIO Switch芯片,一般IIC接口和SRIO接口的Maintenance包都可以用于配置Switch芯片;
審核編輯:湯梓紅
-
Xilinx
+關(guān)注
關(guān)注
71文章
2171瀏覽量
122129 -
IP
+關(guān)注
關(guān)注
5文章
1718瀏覽量
149961 -
sRIO
+關(guān)注
關(guān)注
1文章
31瀏覽量
21062
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
FPGA優(yōu)質(zhì)開源模塊-SRIO IP核的使用
![FPGA優(yōu)質(zhì)開源模塊-<b class='flag-5'>SRIO</b> <b class='flag-5'>IP</b>核的使用](https://file1.elecfans.com/web2/M00/B5/ED/wKgZomV3tViAD4ouAAAw04oTpSY160.png)
下載Xilinx IP Core
srio_v5_6 IP核使用發(fā)生錯(cuò)誤
Xilinx TCP_IP協(xié)議實(shí)現(xiàn)
Xilinx CORE生成器IP列表名稱及說明詳解
Xilinx FIR IP的介紹及仿真
在Vivado中使用SRIO高速串行協(xié)議的IP演示官方例程
![在Vivado中使用<b class='flag-5'>SRIO</b>高速串行協(xié)議的<b class='flag-5'>IP</b>演示官方例程](https://file.elecfans.com/web1/M00/EA/B3/o4YBAGB37QiAA8UJAAAtRQWd9BY936.png)
Xilinx平臺(tái)Aurora IP介紹(二)時(shí)鐘與復(fù)位
![<b class='flag-5'>Xilinx</b>平臺(tái)Aurora <b class='flag-5'>IP</b><b class='flag-5'>介紹</b>(二)時(shí)鐘與復(fù)位](https://file.elecfans.com/web2/M00/31/84/poYBAGIQxzSAEEC0AAEKzbBnLKw068.png)
Xilinx FFT IP介紹與仿真測試
SRIO IP核的三層協(xié)議的作用解析
![<b class='flag-5'>SRIO</b> <b class='flag-5'>IP</b>核的三層協(xié)議的作用解析](https://file1.elecfans.com/web2/M00/82/3D/wKgaomRHRtSAe5-RAAA4MoRAA3M596.jpg)
Xilinx Vivado DDS IP使用方法
![<b class='flag-5'>Xilinx</b> Vivado DDS <b class='flag-5'>IP</b>使用方法](https://file1.elecfans.com/web2/M00/8D/94/wKgZomS97fWAWk2vAAJAMU9WiXY264.jpg)
基于FPGA的SRIO協(xié)議設(shè)計(jì)
![基于FPGA的<b class='flag-5'>SRIO</b>協(xié)議設(shè)計(jì)](https://file1.elecfans.com/web2/M00/A2/F9/wKgaomT1qLmAS0CXAAQeuZPNC4M672.jpg)
srio交換芯片是什么?srio交換芯片的原理和作用
如何申請(qǐng)xilinx IP核的license
![如何申請(qǐng)<b class='flag-5'>xilinx</b> <b class='flag-5'>IP</b>核的license](https://file1.elecfans.com/web2/M00/0A/36/wKgZomcbW8KAAwLHAAALYsx2gPs295.jpg)
SRIO介紹及xilinx的vivado 2017.4中生成srio例程代碼解釋
![<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>例程代碼解釋](https://file1.elecfans.com/web3/M00/01/C8/wKgZO2dYALyARwwBAAAJH5-7BYk234.jpg)
評(píng)論