chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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協(xié)議介紹

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

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

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

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

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

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

SRIO傳輸與響應的包類型很多,具體看手冊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例程代碼的時鐘計算

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的例程代碼結(jié)構

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

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ā)送響應數(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

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

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

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

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

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

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

4.2 SRIO接收模塊詳解

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

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

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

接收部分主要是通過解析接收端口的信號,實時的解析如下圖的信息,以及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ā)送響應部分的代碼功能說明

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

包頭信號部分信息與響應的包類型相關,如下圖所示,詳細信息參考《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ù)開始地方。

當然是否需要反饋數(shù)據(jù)部分得根據(jù)接收到的包頭類型而定,有些包只需要反饋包頭不需要數(shù)據(jù),有些包不需要進行反饋,詳情參考手冊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. 疑點

疑點1:

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

疑點2:

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

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

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

原文鏈接:

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

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

    關注

    1

    文章

    33

    瀏覽量

    21567
  • 代碼
    +關注

    關注

    30

    文章

    4955

    瀏覽量

    73490
  • Vivado
    +關注

    關注

    19

    文章

    852

    瀏覽量

    70748

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RapidIO標準的串行物理層實現(xiàn)

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

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

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

    Xilinx FPGA串行通信協(xié)議介紹

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

    如何使用FPGA實現(xiàn)SRIO通信協(xié)議

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

    請問如何在e203安裝linux操作系統(tǒng)?

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

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

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

    win10環(huán)境下使用vivado生成.bit與.mcs文件

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

    語法糾錯和testbench的自動生成

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

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

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

    Nucleistudio+Vivado協(xié)同仿真教程

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

    vivado仿真時GSR信號的影響

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

    高速總線接口的類型介紹

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

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

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

    Vivado FIR IP核實現(xiàn)

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

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

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