SRIO--IP講解及環回測試

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

文章目錄

  • 前言
  • 一、IP例化文件
  • 二、SRIO環回工程搭建
  • 三、板級驗證
    • 3.1 板級驗證環節
    • 3.2 系統所需硬件
    • 3.3 ILA波形


前言

本章將為大家介紹 “Serial RapidIO Gen2 ”IP 的使用以及配置方法。“Serial RapidIO Gen2 ”IP 在進行數據傳輸時需要按照 Rapidio 協議進行數據傳輸。Rapidio 協議組成的基本要素是包和控制符號:包是基于各種協議的傳輸數據內容,控制符號則用于控制物理層數據交互的方式。本章實驗的方案是產生一組累加的測試數據,測試數據在經過光模塊后再對數據進行接收,將發送和接收的數據進行對比,從而測試我們的開發板是否支持“Serial RapidIO Gen2 ”IP 數據的收發。


提示:任何文章不要過度深思!萬事萬物都經不起審視,因為世上沒有同樣的成長環境,也沒有同樣的認知水平,更「沒有適用于所有人的解決方案」 ;不要急著評判文章列出的觀點,只需代入其中,適度審視一番自己即可,能「跳脫出來從外人的角度看看現在的自己處在什么樣的階段」才不為俗人 。怎么想、怎么做,全在乎自己「不斷實踐中尋找適合自己的大道」

一、IP例化文件

srio_gen2_0 your_instance_name (.log_clk_in(log_clk_in),                                        // input wire log_clk_in.buf_rst_in(buf_rst_in),                                        // input wire buf_rst_in.log_rst_in(log_rst_in),                                        // input wire log_rst_in.gt_pcs_rst_in(gt_pcs_rst_in),                                  // input wire gt_pcs_rst_in.gt_pcs_clk_in(gt_pcs_clk_in),                                  // input wire gt_pcs_clk_in.cfg_rst_in(cfg_rst_in),                                        // input wire cfg_rst_in.deviceid(deviceid),                                            // output wire [15 : 0] deviceid.port_decode_error(port_decode_error),                          // output wire port_decode_error.s_axis_ireq_tvalid(s_axis_ireq_tvalid),                        // input wire s_axis_ireq_tvalid.s_axis_ireq_tready(s_axis_ireq_tready),                        // output wire s_axis_ireq_tready.s_axis_ireq_tlast(s_axis_ireq_tlast),                          // input wire s_axis_ireq_tlast.s_axis_ireq_tdata(s_axis_ireq_tdata),                          // input wire [63 : 0] s_axis_ireq_tdata.s_axis_ireq_tkeep(s_axis_ireq_tkeep),                          // input wire [7 : 0] s_axis_ireq_tkeep.s_axis_ireq_tuser(s_axis_ireq_tuser),                          // input wire [31 : 0] s_axis_ireq_tuser.m_axis_iresp_tvalid(m_axis_iresp_tvalid),                      // output wire m_axis_iresp_tvalid.m_axis_iresp_tready(m_axis_iresp_tready),                      // input wire m_axis_iresp_tready.m_axis_iresp_tlast(m_axis_iresp_tlast),                        // output wire m_axis_iresp_tlast.m_axis_iresp_tdata(m_axis_iresp_tdata),                        // output wire [63 : 0] m_axis_iresp_tdata.m_axis_iresp_tkeep(m_axis_iresp_tkeep),                        // output wire [7 : 0] m_axis_iresp_tkeep.m_axis_iresp_tuser(m_axis_iresp_tuser),                        // output wire [31 : 0] m_axis_iresp_tuser.m_axis_treq_tvalid(m_axis_treq_tvalid),                        // output wire m_axis_treq_tvalid.m_axis_treq_tready(m_axis_treq_tready),                        // input wire m_axis_treq_tready.m_axis_treq_tlast(m_axis_treq_tlast),                          // output wire m_axis_treq_tlast.m_axis_treq_tdata(m_axis_treq_tdata),                          // output wire [63 : 0] m_axis_treq_tdata.m_axis_treq_tkeep(m_axis_treq_tkeep),                          // output wire [7 : 0] m_axis_treq_tkeep.m_axis_treq_tuser(m_axis_treq_tuser),                          // output wire [31 : 0] m_axis_treq_tuser.s_axis_tresp_tvalid(s_axis_tresp_tvalid),                      // input wire s_axis_tresp_tvalid.s_axis_tresp_tready(s_axis_tresp_tready),                      // output wire s_axis_tresp_tready.s_axis_tresp_tlast(s_axis_tresp_tlast),                        // input wire s_axis_tresp_tlast.s_axis_tresp_tdata(s_axis_tresp_tdata),                        // input wire [63 : 0] s_axis_tresp_tdata.s_axis_tresp_tkeep(s_axis_tresp_tkeep),                        // input wire [7 : 0] s_axis_tresp_tkeep.s_axis_tresp_tuser(s_axis_tresp_tuser),                        // input wire [31 : 0] s_axis_tresp_tuser.s_axi_maintr_rst(s_axi_maintr_rst),                            // input wire s_axi_maintr_rst.s_axi_maintr_awvalid(s_axi_maintr_awvalid),                    // input wire s_axi_maintr_awvalid.s_axi_maintr_awready(s_axi_maintr_awready),                    // output wire s_axi_maintr_awready.s_axi_maintr_awaddr(s_axi_maintr_awaddr),                      // input wire [31 : 0] s_axi_maintr_awaddr.s_axi_maintr_wvalid(s_axi_maintr_wvalid),                      // input wire s_axi_maintr_wvalid.s_axi_maintr_wready(s_axi_maintr_wready),                      // output wire s_axi_maintr_wready.s_axi_maintr_wdata(s_axi_maintr_wdata),                        // input wire [31 : 0] s_axi_maintr_wdata.s_axi_maintr_bvalid(s_axi_maintr_bvalid),                      // output wire s_axi_maintr_bvalid.s_axi_maintr_bready(s_axi_maintr_bready),                      // input wire s_axi_maintr_bready.s_axi_maintr_bresp(s_axi_maintr_bresp),                        // output wire [1 : 0] s_axi_maintr_bresp.s_axi_maintr_arvalid(s_axi_maintr_arvalid),                    // input wire s_axi_maintr_arvalid.s_axi_maintr_arready(s_axi_maintr_arready),                    // output wire s_axi_maintr_arready.s_axi_maintr_araddr(s_axi_maintr_araddr),                      // input wire [31 : 0] s_axi_maintr_araddr.s_axi_maintr_rvalid(s_axi_maintr_rvalid),                      // output wire s_axi_maintr_rvalid.s_axi_maintr_rready(s_axi_maintr_rready),                      // input wire s_axi_maintr_rready.s_axi_maintr_rdata(s_axi_maintr_rdata),                        // output wire [31 : 0] s_axi_maintr_rdata.s_axi_maintr_rresp(s_axi_maintr_rresp),                        // output wire [1 : 0] s_axi_maintr_rresp.gt_clk_in(gt_clk_in),                                          // input wire gt_clk_in.drpclk_in(drpclk_in),                                          // input wire drpclk_in.refclk_in(refclk_in),                                          // input wire refclk_in.buf_lcl_response_only_out(buf_lcl_response_only_out),          // output wire buf_lcl_response_only_out.buf_lcl_tx_flow_control_out(buf_lcl_tx_flow_control_out),      // output wire buf_lcl_tx_flow_control_out.idle2_selected(idle2_selected),                                // output wire idle2_selected.idle_selected(idle_selected),                                  // output wire idle_selected.buf_lcl_phy_buf_stat_out(buf_lcl_phy_buf_stat_out),            // output wire [5 : 0] buf_lcl_phy_buf_stat_out.phy_clk_in(phy_clk_in),                                        // input wire phy_clk_in.gt0_qpll_clk_in(gt0_qpll_clk_in),                              // input wire gt0_qpll_clk_in.gt0_qpll_out_refclk_in(gt0_qpll_out_refclk_in),                // input wire gt0_qpll_out_refclk_in.phy_rst_in(phy_rst_in),                                        // input wire phy_rst_in.sim_train_en

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716166.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716166.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716166.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript入門學(Web APIs)

1.變量聲明 2 DOM介紹 2.1 什么是DOM 2.2 DOM樹 2.3 DOM對象&#xff08;重要&#xff09; 3.DOM&#xff08;文檔對象模型&#xff09;-獲取元素 3.1 獲取匹配的第一個元素 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&…

Canvs的js庫:Fabric.js簡單強大,用于繪制各種圖形

Fabric.js是一個用于創建交互式的HTML5 Canvas應用程序的JavaScript庫。它提供了一個簡單而強大的API&#xff0c;用于在Web瀏覽器中繪制和操作圖形對象。Fabric.js可以用于創建各種圖形應用程序&#xff0c;例如繪圖編輯器、圖像編輯器、流程圖、地圖和數據可視化等。 官網文…

校企合作項目總結

校企合作總結 前言項目框架開發待辦水平越權總結 前言 寒假里小組給了校企合作的項目&#xff0c;分配給我的工作量總共也就兩三套crud&#xff0c;雖然工作很少&#xff0c;但還是從里面學到了很多東西&#xff0c;收獲了大量的實習經驗&#xff0c;在這里總結記錄一下。 項…

FreeRTOS學習筆記——FreeRTOS中斷管理

精華總結&#xff1a; 中斷優先級0為最高&#xff0c;任務優先級0為最低 中斷優先級分組中為方便rtos管理4bit全部設置成搶占優先級 32單片機的中斷管理是由3個寄存器完成&#xff08;名字忽略&#xff0c;具體功能忽略&#xff09;&#xff0c;三個寄存器都是32bit&#xff0c…

微信小程序云開發教程——墨刀原型工具入門(文件設置+編輯組件)

引言 作為一個小白&#xff0c;小北要怎么在短時間內快速學會微信小程序原型設計&#xff1f; “時間緊&#xff0c;任務重”&#xff0c;這意味著學習時必須把握微信小程序原型設計中的重點、難點&#xff0c;而非面面俱到。 要在短時間內理解、掌握一個工具的使用&#xf…

NOC2023軟件創意編程(學而思賽道)python小高組決賽真題

目錄 下載原文檔打印做題: 軟件創意編程 一、參賽范圍 1.參賽組別:小學低年級組(1-3 年級)、小學高年級組(4-6 年級)、初中組。 2.參賽人數:1 人。 3.指導教師:1 人(可空缺)。 4.每人限參加 1 個賽項。 組別確定:以地方教育行政主管部門(教委、教育廳、教育局) 認…

【風格遷移】StyTr2:引入 Transformer 解決 CNN 在長距離依賴性處理不足和細節丟失問題

StyTr2&#xff1a;引入 Transformer 解決 CNN 在長距離依賴性處理不足和細節丟失問題 提出背景StyTr2 組成StyTr2 架構 提出背景 論文&#xff1a;https://arxiv.org/pdf/2105.14576.pdf 代碼&#xff1a;https://github.com/diyiiyiii/StyTR-2 問題&#xff1a; 傳統的神經…

idea中springboot項目創建后追加依賴

springboot項目創建后追加依賴 前言1、安裝插件editstarters設置->插件 2、進入pom.xml 頁面 前言 在項目創建的時候選擇好依賴創建項目&#xff0c;之后追加依賴不是很方便&#xff0c;介紹一個簡單的使用方法&#xff0c;通過editstarters進行添加 1、安裝插件editstart…

在 Ubuntu 終端輸出不同顏色、粗體、下劃線或其他樣式的字體

嗯。調試時總發現自己打印的調試信息太過普通、單調&#xff0c;于是乎…… Notice 要在終端實現字體的特殊樣式&#xff0c;通常通過使用特殊的控制字符來實現&#xff0c;而不是通過某語言本身的功能來實現。 在大多數終端中&#xff0c;可以使用 ANSI 轉義序列來設置字體的…

CleanMyMac X2024測評深度分析與功能全面介紹

一、軟件概述 CleanMyMac X 是一款強大的Mac清理和優化工具&#xff0c;它可以幫助用戶輕松管理和釋放Mac上的空間&#xff0c;優化系統性能&#xff0c;提高運行速度。這款軟件以其直觀的用戶界面和豐富的功能受到了廣大Mac用戶的歡迎。 CleanMyMac X4.14.6全新版下載如下: …

令牌桶算法和漏桶算法各自的應用場景

令牌桶算法和漏桶算法都是流量控制算法&#xff0c;它們在網絡和系統中有著不同的應用場景&#xff0c;具體如下&#xff1a; 令牌桶算法的應用場景&#xff1a; 網絡流量控制&#xff1a; 令牌桶算法廣泛應用于網絡流量控制中&#xff0c;特別是在網絡設備中&#xff0c;如路…

html基礎標簽+Http請求

文章目錄 目錄 文章目錄 前言 一.網址組成 二.HTTP協議解析 Http 請求報文 報文請求方法 報文頭 Cache-Control 常見緩存控制行為 cookie 解析 Http 響應報文 常見狀態碼 三.域名解析(DNS) DNS域名服務器分類 遞歸查詢 迭代查詢 四.端口號 五.路徑信息 六.Https協議 ?對稱…

第一篇【傳奇開心果系列】Python的自動化辦公庫技術點案例示例:深度解讀Pandas庫

傳奇開心果博文系列 系列博文目錄Python的自動化辦公庫技術點案例示例系列 博文目錄前言一、主要特點和功能介紹二、Series 示例代碼三、DataFrame示例代碼四、數據導入/導出示例代碼五、數據清洗示例代碼六、數據選擇和過濾示例代碼七、數據合并和連接示例代碼八、數據分組和聚…

Linux系統管理:虛擬機 Kali Linux 安裝

目錄 一、理論 1.Kali Linux 二、實驗 1.虛擬機Kali Linux安裝準備階段 2.安裝Kali Linux 2. Kali Linux 更換國內源 3. Kali Linux 設置固定IP 4. Kali Linux 開啟SSH遠程連接 5. MobaXterm遠程連接 Kali Linux 三、問題 1.apt 命令 取代哪些 apt-get命令 一、理論…

《OpenScene: 3D Scene Understanding with Open Vocabularies》閱讀筆記1

傳統的3D場景理解方法依賴于帶標簽的3D數據集,用于訓練一個模型以進行單一任務的監督學習。我們提出了OpenScene,一種替代方法,其中模型在CLIP特征空間中預測與文本和圖像像素共同嵌入的3D場景點的密集特征。這種零樣本方法實現了與任務無關的訓練和開放詞匯查詢。例如,為了…

Phoncent博客:探索AI寫作與編程的無限可能

Phoncent博客&#xff0c;一個名為Phoncent的創新AIGC博客網站&#xff0c;于2023年誕生。它的創始人是莊澤峰&#xff0c;一個自媒體人和個人站長&#xff0c;他在網絡營銷推廣領域有著豐富的經驗。莊澤峰深知人工智能技術在內容創作和編程領域的潛力和創造力&#xff0c;因此…

有趣的CSS - 閃爍的鴻星爾克文字招牌效果

大家好&#xff0c;我是 Just&#xff0c;這里是「設計師工作日常」&#xff0c;今天分享的是利用 animation 動畫實現一個閃爍的霓虹燈文字效果。 《有趣的css》系列最新實例通過公眾號「設計師工作日常」發布。 目錄 整體效果核心代碼html 代碼css 部分代碼 完整代碼如下html…

第十一屆藍橋杯省賽第二場C++ B組 / C組《成績統計》(c++)

1.題目說明 小藍給學生們組織了一場考試&#xff0c;卷面總分為100 分&#xff0c;每個學生的得分都是一個 0 到 100 的整數。 如果得分至少是 60 分&#xff0c;則稱為及格。 如果得分至少為 85 分&#xff0c;則稱為優秀。 請計算及格率和優秀率&#xff0c;用百分數表示…

使用Spark探索數據

需求分析 使用Spark來探索數據是一種高效處理大規模數據的方法&#xff0c;需要對數據進行加載、清洗和轉換&#xff0c;選擇合適的Spark組件進行數據處理和分析。需求分析包括確定數據分析的目的和問題、選擇合適的Spark應用程序和算法、優化數據處理流程和性能、可視化和解釋…

【嵌入式實踐】【芝麻】【設計篇-3】從0到1給電動車添加指紋鎖:項目整體規劃

0. 前言 該項目是基于stm32F103和指紋模塊做了一個通過指紋鎖控制電動車的小工具。支持添加指紋、刪除指紋&#xff0c;電動車進入P檔等待時計時&#xff0c;計時超過5min則自動鎖車&#xff0c;計時過程中按剎車可中斷P檔狀態&#xff0c;同時中斷鎖車計時。改項目我稱之為“芝…