在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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生成例程后,其例程結構如下圖所示??粗?個文件,但常規情況下與我們相關的只有只有兩個文件,即下圖高亮的兩個文件:

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

    瀏覽量

    21248
  • 代碼
    +關注

    關注

    30

    文章

    4891

    瀏覽量

    70369
  • Vivado
    +關注

    關注

    19

    文章

    834

    瀏覽量

    68379

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    使用gpif designer fx2lp在CTL0中生成波形來連接FPGA 以便從FPGA獲取數據,為什么不能正常工作?

    我想使用gpif designer fx2lp 在CTL0 中生成波形來連接FPGA 以便從FPGA 獲取數據。 它在 CTL0 的下降沿逐幀獲取數據。 每幀有 32 個脈沖,但是當我這樣配置時,它不能正常工作。 我不明白。 我該如何做呢?
    發表于 05-06 13:01

    Vivado HLS設計流程

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

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

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

    Vivado FIR IP核實現

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

    使用DDS生成三個信號并在Vivado實現低通濾波器

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

    【米爾-Xilinx XC7A100T FPGA開發板試用】 UART測試

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

    STM32CubeMX生成代碼,是怎樣的HAL架構?

    需要注意,CubeMX只是一個初始化工具,它只是幫你完成了HAL庫外設和時鐘的初始化,具體程序的編寫還需要查閱HAL庫的說明,使用相關函數實現你想實現的功能。CubeMX生成代碼包含了豐富的注釋
    的頭像 發表于 01-01 21:01 ?716次閱讀
    STM32CubeMX<b class='flag-5'>生成</b>的<b class='flag-5'>代碼</b>,是怎樣的HAL架構?

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

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

    Xilinx_Vivado_SDK的安裝教程

    首先是去官網下載安裝包:https://www.xilinx.com/support/download.html。 下載這個最大的、支持所有的 OS 如 Windows/Linux 的安裝包。 下載
    的頭像 發表于 11-16 09:53 ?4809次閱讀
    <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

    VivadoFFT IP核的使用教程

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

    如何自動生成verilog代碼

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

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

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

    如何在ModelSim添加Xilinx仿真庫

    今天給大俠帶來在FPGA設計應用如何在ModelSim添加Xilinx仿真庫,話不多說,上貨。 注意:ModelSim一定要安裝在不帶空格的目錄下,即不要安裝在“Program
    發表于 07-03 18:16

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

    據傳輸速率、鏈路寬度、地址映射等,確保通信能夠按照預期進行。 錯誤處理與恢復 : 在SRIO通信過程,可能會遇到各種錯誤情況(如鏈路錯誤、數據包錯誤等)。設計并實現有效的錯誤處理機制,以便
    發表于 06-27 08:33
    主站蜘蛛池模板: 日本中文在线三级在线播放 | 泰国一级毛片aaa下面毛多 | 日韩a毛片免费全部播放完整 | 无人区理论片手机看片 | 天堂亚洲网 | 国产午夜a理论毛片在线影院 | 国产欧美在线一区二区三区 | 中文字幕在线观看日剧网 | www.色播.com| 亚洲第一视频区 | 女人被男人免费播放网站 | 国产午夜精品片一区二区三区 | 三级电影天堂网 | 免费大片黄在线观看日本 | 一级片一级片一级片 | 精品国产柚木在线观看 | 人人人人干 | 亚洲一区二区三 | 婷婷香蕉 | 中文字幕一区在线播放 | 亚洲国产成人成上人色 | 久久久久久国产精品免费免费 | 一区在线观看视频 | 亚洲精品第三页 | 天天做日日爱 | a级网站| 欧洲精品不卡1卡2卡三卡四卡 | 大桥未久加勒比女热大陆在线 | 五月激情六月 | 深夜释放自己vlog糖心旧版本 | 亚洲天堂视频一区 | 深夜影院一级毛片 | 黄色网址中文字幕 | 你懂的在线免费视频 | 国产精品主播在线 | 特级黄色淫片 | 77788色淫网站免费观看 | 久久久国产精品免费 | 老师你好大好白好紧好硬 | wwww亚洲 | 51精品视频免费国产专区 |