FPGA優(yōu)質(zhì)開源模塊 - SRIO

本文介紹一個(gè)FPGA常用模塊:SRIO(Serial RapidIO)。SRIO協(xié)議是一種高速串行通信協(xié)議,在我參與的項(xiàng)目中主要是用于FPGA和DSP之間的高速通信。有關(guān)SRIO協(xié)議的詳細(xì)介紹網(wǎng)上有很多,本文主要簡(jiǎn)單介紹一下SRIO IP核的使用和本工程的源代碼結(jié)構(gòu)。
由于Vivado中RapidIO IP核需要付費(fèi)才能使用,因此本文提供完整工程源碼。文章末尾有該工程源碼獲取方式,有需要的小伙伴可以收藏、分享一下。
軟硬件平臺(tái)
軟件平臺(tái):Vivado 2017.4;
硬件平臺(tái):XC7K410T...;
IP核參數(shù)配置
本工程SRIO IP核參數(shù)配置如下圖所示,僅供參考:



工程源碼結(jié)構(gòu)
下圖是SRIO工程源碼結(jié)構(gòu):

其中,
SRIO_Auto_rst_Mod:SRIO自動(dòng)復(fù)位模塊;
srio_request_gen:SRIO請(qǐng)求事務(wù)生成模塊;
srio_response_gen:SRIO響應(yīng)事務(wù)生成模塊;
RapidIO_switch_maintr_mod & srio_quick_start:SRIO維護(hù)事務(wù)生成模塊。
實(shí)現(xiàn)功能
該FPGA SRIO模塊采用NWRITE類型事務(wù)往DSP目的地址傳輸數(shù)據(jù),每包數(shù)據(jù)大小為256字節(jié)。數(shù)據(jù)寫入完畢后,通過(guò)DOORBELL事務(wù)給DSP發(fā)送數(shù)據(jù)接收中斷。另外FPGA端通過(guò)RapidIO IP核m_axis_treq接口接收來(lái)自DSP的數(shù)據(jù)。
源碼獲取方式
需要本工程源碼的小伙伴,請(qǐng)關(guān)注微信公眾號(hào)?FPGA Zone?,后臺(tái)發(fā)送?SRIO?,即可獲取下載鏈接。