色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    31

    瀏覽量

    21003
  • 代碼
    +關注

    關注

    30

    文章

    4779

    瀏覽量

    68521
  • Vivado
    +關注

    關注

    19

    文章

    812

    瀏覽量

    66470

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

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

收藏 人收藏

    評論

    相關推薦

    Xilinx_Vivado_SDK的安裝教程

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

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

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

    如何自動生成verilog代碼

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

    FPGA的SRIO接口使用應注意的事項

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

    怎么建設高性能多核DSP+FPGA實驗室?一起來河北工程大學看看

    主核工程與從核工程。主核工程編譯后默認生成的可執行文件適用于DSP ETH1網口,如需重新生成適用于DSP ETH0網口的可執行文件,請參考關鍵代碼小節進行源碼修改。從核工程編譯后生成
    發表于 06-07 14:11

    交換板設計方案原理圖:473-SRIO_Switch_Gen2_ZD交換板卡

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

    FPGA與SRIO調試步驟

     FPGA(現場可編程門陣列)和DSP(數字信號處理器)之間通過SRIO接口進行調試通常需要以下步驟。
    的頭像 發表于 04-19 11:48 ?1390次閱讀

    Vivado 使用Simulink設計FIR濾波器

    設計的濾波器性能相同。 xilinx在新版本的vivado中將simulink的WaveScope刪掉了,信號觀測方式換為和vivado debug相同的窗口,更為靈活和人性化。
    發表于 04-17 17:29

    srio交換芯片有啥用

    SRIO(Serial RapidIO)交換芯片在多個領域具有廣泛的應用和重要的作用。
    的頭像 發表于 03-26 15:09 ?880次閱讀

    srio交換芯片屬于什么種類

    SRIO交換芯片屬于高速網絡通信芯片的一種,具體來說,它們是基于RapidIO(快速輸入輸出)技術的串行通信芯片。RapidIO是一種用于高性能嵌入式系統的互連技術,它支持多種通信協議和拓撲結構,適用于需要高速、低延遲通信的應用場景。
    的頭像 發表于 03-21 16:33 ?798次閱讀

    srio交換芯片的原理和用途

    SRIO(Serial RapidIO)交換芯片是一種基于RapidIO(快速輸入輸出)技術的高速網絡通信芯片。RapidIO是一種高性能、低延遲的網絡通信標準,專為嵌入式系統設計,廣泛應用于通信基礎設施、軍事和航空、工業自動化以及汽車等領域。
    的頭像 發表于 03-21 16:30 ?1380次閱讀

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

    SRIO(Serial RapidIO)交換芯片是一種高性能的通信芯片,專門設計用于實現基于SRIO協議的數據交換和傳輸。SRIO是一種點對點串行通信協議,廣泛應用于嵌入式系統、高性能計算、網絡通信
    的頭像 發表于 03-16 16:40 ?3396次閱讀

    在GHDS中生成Sprite順序,程序無法正常運行是怎么回事?

    你好:我有一個關于在GHDS中生成Sprite順序的問題,當我在GHDS建立多個Sprite,其中包括單個符號片、通過刷新圖片的幾組數據,和背景圖片,它們是否需要一次性的按照順序建立好。 問題背景
    發表于 02-22 07:23

    如何禁止vivado自動生成 bufg

    Vivado禁止自動生成BUFG(Buffered Clock Gate)可以通過以下步驟實現。 首先,讓我們簡要了解一下什么是BUFG。BUFG是一個時鐘緩沖器,用于緩沖輸入時鐘信號,使其更穩
    的頭像 發表于 01-05 14:31 ?2157次閱讀

    Vivado時序問題分析

    有些時候在寫完代碼之后呢,Vivado時序報紅,Timing一欄有很多時序問題。
    的頭像 發表于 01-05 10:18 ?2109次閱讀
    主站蜘蛛池模板: 伊人久久大香线蕉综合亚洲| 日本精油按摩| 黄色三级在线| 国产精品久久久久久久AV下载| yellow日本动漫高清| 99久久久国产精品免费调教| 曰本真人00XX动太图| 亚洲一卡久久4卡5卡6卡7卡 | yy8090理论三级在线看| 69式国产真人免费视频| 中文字幕网站在线观看| 4399亚洲AV无码V无码网站 | 亚洲大码熟女在线| 无限好资源免费观看| 香蕉鱼视频观看在线视频下载| 四虎永久在线精品国产免费| 少男同志freedeos| 我的奶头被客人吸的又肿又红| 天美传媒在线观看免费完整版| 试看做受120秒免费午夜剧场| 十分钟免费视频大全在线观看| 手机移动oa| 亚洲AV久久久久久久无码| 香蕉59tv视频| 亚洲一区在线播放| 中文字幕偷乱免费视频在线| 94色94色永久网站| wwww69| 成人影片大全| 国产精品免费小视频| 韩国伦理三级| 麻豆第一区MV免费观看网站| 欧美大香线蕉线伊人久久| 日本性xxx| 亚洲 天堂 欧美 日韩 国产| 亚洲欧美高清在线精品一区| 在线观看免费视频a| a在线免费观看视频| 俄罗斯雏妓的BBB孩交| 国产午夜亚洲精品区| 久久亚洲精品成人|