伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

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

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

3天內不再提示

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

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 2024-12-10 16:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 概述

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

2. 參考文件

《pg007_srio_gen2》

3. SRIO協議介紹

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

3.1 SRIO的數據流

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

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

即其信號流為IREQ發出給TREQ,TRESP發出給IRESP。

3.2 SRIO的數據協議

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

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

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

其典型的傳輸數據的用戶接口代碼的波形協議如下圖所示:

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

3.3 SRIO常用FPGA支持的模式

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

3.4 SRIO例程代碼的時鐘計算

refclk可使用時鐘如下圖table3-3所示。其中典型的時鐘計算如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的例程代碼結構

SRIO生成例程后,其例程結構如下圖所示。看著有8個文件,但常規情況下與我們相關的只有只有兩個文件,即下圖高亮的兩個文件:

srio_request_gen_srio_gen2_0(發送數據模塊);

srio_response_gen_srio_gen2_0(接收數據模塊)

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

4.1 SRIO發送模塊詳解

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

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

4.1.1 發送數據部分代碼功能說明

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

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

最終包頭的格式為:

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

而包中去掉包頭后傳輸的數據為每8位遞增數據數據,具體如下圖所示。

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

重點:發送用戶自己的數據與包頭時設置,將go的值設置為0x01。

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

4.1.2 接收響應部分的代碼功能詳解

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

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

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

4.2 SRIO接收模塊詳解

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

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

4.2.1 接收數據部分的代碼功能說明

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

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

4.2.2 發送響應部分的代碼功能說明

響應部分的代碼分兩部分,第一部分是響應的包頭信號部分,第二部分是響應的數據部分。

包頭信號部分信息與響應的包類型相關,如下圖所示,詳細信息參考《pg007》的p76頁。

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

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

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

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

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

5. 疑點

疑點1:

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

疑點2:

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

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

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

原文鏈接:

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • sRIO
    +關注

    關注

    1

    文章

    33

    瀏覽量

    21652
  • 代碼
    +關注

    關注

    30

    文章

    4974

    瀏覽量

    74228
  • Vivado
    +關注

    關注

    19

    文章

    859

    瀏覽量

    71303

原文標題:SRIO簡介與Xilinx SRIO ip核例程詳解

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于4片DSP6678+FPGA KU115 的VPX高速信號處理平臺

    板卡基于標準6U VPX架構,板載一片Xilinx FPGA XCKU115-2FLVF1924I和四片 TI 多核DSP TMS320C6678,每個DSP有配有2GB的儲存空間,該板卡可以通過
    發表于 03-06 14:58

    vivado中常用時序約束指令介紹

    vivado,我們常用的時序約束指令主要包括如下幾個方面。
    的頭像 發表于 01-20 16:15 ?532次閱讀

    RapidIO標準的串行物理層實現

    Serial RapidIO(SRIO) 特指 RapidIO 標準的串行物理層實現。
    的頭像 發表于 12-09 10:41 ?603次閱讀
    RapidIO標準的串行物理層實現

    DSP、FPGA之間SRIO通信的問題?

    目前在使用DSP和FPGA之間通過SRIO的SWRITE事務完成雙向數據通信,大多數情況下都正常,但是在我不停的給DSP進行燒寫程序時,會偶爾出錯,FPGA無法收到DSP下發的數據。偶爾故障情況下buf_lcl_phy_buf_stat_out始終是5\'b10000,且buf_lcl_response_only_
    發表于 11-15 16:22

    Xilinx FPGA串行通信協議介紹

    Xilinx FPGA因其高性能和低延遲,常用于串行通信接口設計。本文深入分析了Aurora、PCI Express和Serial RapidIO這三種在Xilinx系統設計關鍵的串行通信協議。
    的頭像 發表于 11-14 15:02 ?2694次閱讀
    <b class='flag-5'>Xilinx</b> FPGA串行通信協議<b class='flag-5'>介紹</b>

    如何使用FPGA實現SRIO通信協議

    泛應用。文章重點解釋了回環測試的基本概念,這種方法可驗證FPGASRIO接口功能的正確性,并提供了系統級測試驗證的相關知識。同時,本例程還涵蓋了Verilog語法、FPGA架構、
    的頭像 發表于 11-12 14:38 ?5967次閱讀
    如何使用FPGA實現<b class='flag-5'>SRIO</b>通信協議

    vivado,怎么將e203內核源代碼封裝成ip核,并添加總線?

    vivado,怎么將e203內核源代碼封裝成ip核,并添加總線?
    發表于 11-10 07:22

    請問如何在e203安裝linux操作系統?

    本人用的板子是Xilinx的XC7A100TFGG484-2L,編譯軟件是vivado2017.4。目前比特流已經成功生成,我已經把其固化進了板子。現在的我想在我固化后的板子里面裝一
    發表于 11-07 07:32

    生成Bitstream的DRC LUTLP-1錯誤的解決辦法

    bitstream時出現DRC錯誤,根據xilinx官方社區的幫助,解決了這問題。 在生成bitstream之前,進行設置。 在bitstream設置界面的tcl.pre出添加一個tcl文件,文件包含
    發表于 10-30 07:42

    win10環境下使用vivado生成.bit與.mcs文件

    ,這里介紹一種可以直接在windows環境下使用vivado生成system.bit和system.mcs文件的方法。 1.在windows環境安裝vivado,準備好e203_hb
    發表于 10-27 08:25

    語法糾錯和testbench的自動生成

    設置: 另外,自動糾錯實際上還是用了仿真軟件的工具,例如vivado、iverilog、modelsim等。下面介紹如何利用vivado的工具xvlog。 一般情況下,xvlog
    發表于 10-27 07:07

    VIVADO對NICE進行波形仿真的小問題的解決

    https://www.rvmcu.com/community-topic-id-386.html 以上鏈接為如何生成.verilog,并在VIVADO中生成波形的例子。我們在實踐過程
    發表于 10-27 06:41

    Nucleistudio+Vivado協同仿真教程

    編譯完成后,我們會在工程目錄下發現生成了.verilog文件,此即為我們仿真需用到的文件,可以將改文件復制保存在tb目錄下 聯合仿真 在我們前面創建的Vivado工程添加仿真文件
    發表于 10-23 06:22

    vivado仿真時GSR信號的影響

    利用vivado進行設計xilinx FPGA時,寫完設計代碼和仿真代碼后,點擊run simulation(啟動modelsim進行仿真)。
    的頭像 發表于 08-30 14:22 ?1483次閱讀
    <b class='flag-5'>vivado</b>仿真時GSR信號的影響

    高速總線接口的類型介紹

    ,它的成員使用SRIO技術來實現高速和低延遲互聯。RapidIO組織負責制定和推廣RapidIO互聯標準,支持RapidIO產品的開發和部署,因此二者相互關聯,是不同概念。RapidIO協議分為邏輯層、傳輸層、物理層。FPGASRIO
    的頭像 發表于 08-06 14:50 ?1994次閱讀