一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

FPGA設(shè)計(jì)論壇 ? 來源:FPGA設(shè)計(jì)論壇 ? 2024-12-10 16:24 ? 次閱讀

1. 概述

本文是用于記錄srio的學(xué)習(xí)情況,以及一些對xilinx的vivado 2017.4中生成srio例程代碼的解釋。

2. 參考文件

《pg007_srio_gen2》

3. SRIO協(xié)議介紹

本處將從SRIO的數(shù)據(jù)流,數(shù)據(jù)協(xié)議,常用FPGA支持模式,以及IP例程中的時鐘大小計(jì)算等部分介紹SRIO的情況。

3.1 SRIO的數(shù)據(jù)流

SRIO通過生成IP后,通常情況下主要使用的接口為四組:ireq,iresp,treq,tresp。每個IP生成后都有這四組接口,即可以同時用于發(fā)送數(shù)據(jù),接收數(shù)據(jù),發(fā)送響應(yīng)數(shù)據(jù),接收響應(yīng)數(shù)據(jù)。而這些接口間的信號流向如下圖所示:

de37d6b4-b5df-11ef-93f3-92fbcf53809c.jpg

即其信號流為IREQ發(fā)出給TREQ,TRESP發(fā)出給IRESP。

3.2 SRIO的數(shù)據(jù)協(xié)議

SRIO傳輸與響應(yīng)的包類型很多,具體看手冊P73-P74頁。

在使用Xilinx的ip核時,通常用的都是HELLO包,所以這里指給HELLO包的格式。如下圖所示。Packet 中的具體符號表示意義請查看手冊P76-P77頁。其中的size為一包傳輸byte的數(shù)據(jù)量,范圍為1-256 bytes。

de5264de-b5df-11ef-93f3-92fbcf53809c.jpg

其典型的傳輸數(shù)據(jù)的用戶接口代碼的波形協(xié)議如下圖所示:

de5e83b8-b5df-11ef-93f3-92fbcf53809c.jpg

3.3 SRIO常用FPGA支持的模式

de6dd25a-b5df-11ef-93f3-92fbcf53809c.jpg

3.4 SRIO例程代碼的時鐘計(jì)算

refclk可使用時鐘如下圖table3-3所示。其中典型的時鐘計(jì)算如Table3-4表頭所示。:

gt_clk = line_rate/20;

gt_pcs_clk = line_rate/40;

phy_clk = (gt_clk*link_width)/4;

log_clk = phy_clk;

cfg_clk = phy_clk;

de86fd5c-b5df-11ef-93f3-92fbcf53809c.jpg

de9a40ba-b5df-11ef-93f3-92fbcf53809c.jpg

4. SRIO的例程代碼結(jié)構(gòu)

SRIO生成例程后,其例程結(jié)構(gòu)如下圖所示??粗?個文件,但常規(guī)情況下與我們相關(guān)的只有只有兩個文件,即下圖高亮的兩個文件:

srio_request_gen_srio_gen2_0(發(fā)送數(shù)據(jù)模塊);

srio_response_gen_srio_gen2_0(接收數(shù)據(jù)模塊)

deaee060-b5df-11ef-93f3-92fbcf53809c.jpg

4.1 SRIO發(fā)送模塊詳解

SRIO發(fā)送模塊中主要有兩部分代碼,發(fā)送數(shù)據(jù)部分(ireq),發(fā)送響應(yīng)數(shù)據(jù)部分(iresp)。接收部分端口如下圖所示:

decf2564-b5df-11ef-93f3-92fbcf53809c.jpg

4.1.1 發(fā)送數(shù)據(jù)部分代碼功能說明

發(fā)送的包頭數(shù)據(jù)的來源為“request_data_out = instruction[request_ address]”,即數(shù)據(jù)是從`include "instruction_list.vh"文件中調(diào)入的。而選擇其文件中的哪些數(shù)據(jù)則是根據(jù)request_address算來的,具體如下圖部分所示。

dedae2e6-b5df-11ef-93f3-92fbcf53809c.jpg

最終包頭的格式為:

deedcdd4-b5df-11ef-93f3-92fbcf53809c.jpg

而包中去掉包頭后傳輸?shù)臄?shù)據(jù)為每8位遞增數(shù)據(jù)數(shù)據(jù),具體如下圖所示。

df0b0c46-b5df-11ef-93f3-92fbcf53809c.jpg

重點(diǎn):發(fā)送用戶自己的數(shù)據(jù)與包頭時設(shè)置,將go的值設(shè)置為0x01。

df27692c-b5df-11ef-93f3-92fbcf53809c.jpg

4.1.2 接收響應(yīng)部分的代碼功能詳解

接收響應(yīng)部分主要功能是在期望的得到回應(yīng)的包類型時,檢查是否回應(yīng)的對應(yīng)包頭類型。

而判斷包頭類型是否正確主要是根據(jù)預(yù)判的ftype(expected_ftype)時,檢查接收到的ttype是否為協(xié)議規(guī)定的類型。判斷的方式為下圖位置:

df300d52-b5df-11ef-93f3-92fbcf53809c.jpg

4.2 SRIO接收模塊詳解

SRIO接收模塊中主要有兩部分代碼,接收數(shù)據(jù)部分(treq),接收響應(yīng)數(shù)據(jù)部分(tresp)。接收部分端口如下圖所示:

df3c105c-b5df-11ef-93f3-92fbcf53809c.jpg

4.2.1 接收數(shù)據(jù)部分的代碼功能說明

接收部分主要是通過解析接收端口的信號,實(shí)時的解析如下圖的信息,以及first_beat(beat為1個時鐘的*_data),之后將每包數(shù)據(jù)去掉包頭后丟入“RAMB36SDP(local_data_store)”中,但是每一包丟入數(shù)據(jù)時的首地址是current_addr[10:3]。

df514134-b5df-11ef-93f3-92fbcf53809c.jpg

4.2.2 發(fā)送響應(yīng)部分的代碼功能說明

響應(yīng)部分的代碼分兩部分,第一部分是響應(yīng)的包頭信號部分,第二部分是響應(yīng)的數(shù)據(jù)部分。

包頭信號部分信息與響應(yīng)的包類型相關(guān),如下圖所示,詳細(xì)信息參考《pg007》的p76頁。

df5f05d0-b5df-11ef-93f3-92fbcf53809c.jpg

數(shù)據(jù)部分的信息主要是提取treq中輸入的信號。但提取的方式是根據(jù)starting_read_addr = {1'b0, response_data_out[29:22]}開始提取數(shù)據(jù)輸出,即是根據(jù)current_addr[10:3]的地址提取數(shù)據(jù)。也就是說這個提取數(shù)據(jù)的位置是根據(jù)輸入數(shù)據(jù)包中的地址中的一部分作為首地址來定位的數(shù)據(jù)開始地方。

當(dāng)然是否需要反饋數(shù)據(jù)部分得根據(jù)接收到的包頭類型而定,有些包只需要反饋包頭不需要數(shù)據(jù),有些包不需要進(jìn)行反饋,詳情參考手冊P73頁。

保證存入“RAMB36SDP(response_queue_inst)”的包頭判斷信息無誤的依據(jù)是RAMB36SB的寫使能WREN(generate_a_response),generate_a_response是在接收到的first_beat時,且這個包頭是需要反饋數(shù)據(jù)的包頭時才會拉高使能。需要反饋的依據(jù)在《pg007》的Table 3-1,具體信息如下圖所示:

df6ddb1e-b5df-11ef-93f3-92fbcf53809c.jpg

5. 疑點(diǎn)

疑點(diǎn)1:

雖然理論上來說反饋的數(shù)據(jù)提取數(shù)據(jù)是根據(jù)包頭信息在同一個位置提取的,那么反饋的數(shù)據(jù)就和接收的對應(yīng)包數(shù)據(jù)相同。但是由于接收到的數(shù)據(jù)包頭的地址可能相同,至少current_addr[10:3]有很大幾率相同,那么就會存在數(shù)據(jù)覆蓋的現(xiàn)象,那么就會導(dǎo)致反饋的數(shù)據(jù)不是想要的數(shù)據(jù),即返回的數(shù)據(jù)與接收到的數(shù)據(jù)不同。

疑點(diǎn)2:

為何把“current_addr[23:16] == 8'h12”作為pull_from_store(從存儲地址開始拉高)?

答:這個只是對應(yīng)SRIO例程的發(fā)射數(shù)據(jù),發(fā)射數(shù)據(jù)自定義的“真實(shí)起始地址”,參考手冊P161,如下圖所示。在自己使用時可以屏蔽掉與這個相關(guān)的信號。

df7e87ca-b5df-11ef-93f3-92fbcf53809c.jpg

原文鏈接:

https://openatomworkshop.csdn.net/67459da63a01316874d8e7a6.html

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

    關(guān)注

    1

    文章

    31

    瀏覽量

    21200
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4880

    瀏覽量

    69998
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    825

    瀏覽量

    67911

原文標(biāo)題:SRIO簡介與Xilinx SRIO ip核例程詳解

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Vivado HLS設(shè)計(jì)流程

    為了盡快把新產(chǎn)品推向市場,數(shù)字系統(tǒng)的設(shè)計(jì)者需要考慮如何加速設(shè)計(jì)開發(fā)的周期。設(shè)計(jì)加速主要可以從“設(shè)計(jì)的重用”和“抽象層級的提升”這兩個方面來考慮。Xilinx 推出的 Vivado HLS 工具可以
    的頭像 發(fā)表于 04-16 10:43 ?476次閱讀
    <b class='flag-5'>Vivado</b> HLS設(shè)計(jì)流程

    在ADC PAL,當(dāng)ADC讀數(shù)超過閾值時、是否有辦法生成中斷?

    中生成中斷,是否有其他方法可以根據(jù)閾值輸入自動調(diào)用函數(shù)? 此外,我們可以在 MPC5775B 中使用 SDADC 嗎?如果是,SDADC 是否有任何解決方案來滿足上述要求? 我搜索了 SDADC 的示例代碼,但找不到任何
    發(fā)表于 04-02 08:30

    Vivado FIR IP核實(shí)現(xiàn)

    Xilinx的FIR IP核屬于收費(fèi)IP,但是不需要像 Quartus那樣通過修改license文件來破解。如果是個人學(xué)習(xí),現(xiàn)在網(wǎng)絡(luò)上流傳的license破解文件在破解Vivado的同時也破解
    的頭像 發(fā)表于 03-01 14:44 ?1258次閱讀
    <b class='flag-5'>Vivado</b> FIR IP核實(shí)現(xiàn)

    使用DDS生成三個信號并在Vivado實(shí)現(xiàn)低通濾波器

    本文使用 DDS 生成三個信號,并在 Vivado 實(shí)現(xiàn)低通濾波器。低通濾波器將濾除相關(guān)信號。
    的頭像 發(fā)表于 03-01 14:31 ?1271次閱讀
    使用DDS<b class='flag-5'>生成</b>三個信號并在<b class='flag-5'>Vivado</b><b class='flag-5'>中</b>實(shí)現(xiàn)低通濾波器

    【米爾-Xilinx XC7A100T FPGA開發(fā)板試用】 UART測試

    硬件: 一 米爾-Xilinx XC7A100T FPG 二 12V電源適配器 三 下載器 四 win10筆記本 軟件: 一 Vivado (指導(dǎo)手冊有詳細(xì)的安裝下載流程) 二 官方示例工程 這個例程
    發(fā)表于 01-12 10:10

    VivadoDDRX控制器(mig)ip核配置關(guān)于命令序號選擇和地址映射說明

    本篇主要討論VivadoDDRX控制器(mig)ip核配置關(guān)于命令序號選擇和地址映射說明(一) 利用Xilinx 7系列FPGA開發(fā)時,經(jīng)常需要驅(qū)動外部存儲器--DDRX。
    的頭像 發(fā)表于 11-27 09:30 ?2757次閱讀
    <b class='flag-5'>Vivado</b><b class='flag-5'>中</b>DDRX控制器(mig)ip核配置<b class='flag-5'>中</b>關(guān)于命令序號選擇和地址映射說明

    Xilinx_Vivado_SDK的安裝教程

    首先是去官網(wǎng)下載安裝包:https://www.xilinx.com/support/download.html。 下載這個最大的、支持所有的 OS 如 Windows/Linux 的安裝包。 下載
    的頭像 發(fā)表于 11-16 09:53 ?3714次閱讀
    <b class='flag-5'>Xilinx_Vivado</b>_SDK的安裝教程

    【米爾-Xilinx XC7A100T FPGA開發(fā)板試用】+03.SFP光口測試(zmj)

    。 2.GTP-iBERT測試 在vivado打開hardware manager,將剛才生成的bit文件下載到開發(fā)板。下載完成后,點(diǎn)擊auto-detec links。點(diǎn)擊Re
    發(fā)表于 11-12 16:54

    VivadoFFT IP核的使用教程

    本文介紹了VidadoFFT IP核的使用,具體內(nèi)容為:調(diào)用IP核>>配置界面介紹>>IP核端口介紹>>MATLAB生成測試數(shù)據(jù)>>測試v
    的頭像 發(fā)表于 11-06 09:51 ?2978次閱讀
    <b class='flag-5'>Vivado</b><b class='flag-5'>中</b>FFT IP核的使用教程

    如何自動生成verilog代碼

    介紹幾種自動生成verilog代碼的方法。
    的頭像 發(fā)表于 11-05 11:45 ?833次閱讀
    如何自動<b class='flag-5'>生成</b>verilog<b class='flag-5'>代碼</b>

    如何在TI-NA里的信號編輯器中生成自己的激勵波形?

    大家好,請問如何在TI-NA里的信號編輯器中生成自己的激勵波形,比如:產(chǎn)生上升沿5ns、下降沿5ns、脈沖寬度12ns的單脈沖激勵信號!
    發(fā)表于 09-13 07:19

    FPGA的SRIO接口使用應(yīng)注意的事項(xiàng)

    據(jù)傳輸速率、鏈路寬度、地址映射等,確保通信能夠按照預(yù)期進(jìn)行。 錯誤處理與恢復(fù) : 在SRIO通信過程,可能會遇到各種錯誤情況(如鏈路錯誤、數(shù)據(jù)包錯誤等)。設(shè)計(jì)并實(shí)現(xiàn)有效的錯誤處理機(jī)制,以便
    發(fā)表于 06-27 08:33

    怎么建設(shè)高性能多核DSP+FPGA實(shí)驗(yàn)室?一起來河北工程大學(xué)看看

    主核工程與從核工程。主核工程編譯后默認(rèn)生成的可執(zhí)行文件適用于DSP ETH1網(wǎng)口,如需重新生成適用于DSP ETH0網(wǎng)口的可執(zhí)行文件,請參考關(guān)鍵代碼小節(jié)進(jìn)行源碼修改。從核工程編譯后生成
    發(fā)表于 06-07 14:11

    在不重新安裝Vivado的情況下,是否能夠安裝線纜驅(qū)動器?

    如果 Xilinx USB/Digilent 線纜驅(qū)動器在安裝 Vivado 設(shè)計(jì)套件時還沒有安裝,或者 Xilinx USB/Digilent 線纜驅(qū)動器被禁用,在不全面重新安裝 Vivad
    的頭像 發(fā)表于 05-16 11:21 ?933次閱讀

    交換板設(shè)計(jì)方案原理圖:473-SRIO_Switch_Gen2_ZD交換板卡

    SRIO_Switch_Gen2_ZD交換板卡為基于IDT?SRIO?Gen2系列SRIO交換芯片,采用CPCI-ZD平臺架構(gòu)的數(shù)據(jù)交換板。可以為高速實(shí)時信號處理任務(wù)提供可靠保障。
    的頭像 發(fā)表于 05-13 11:40 ?1133次閱讀
    交換板設(shè)計(jì)方案原理圖:473-<b class='flag-5'>SRIO</b>_Switch_Gen2_ZD交換板卡