SRIO--IP讲解及环回测试

2024-02-29 03:44
文章标签 讲解 ip 测试 环回 srio

本文主要是介绍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.

这篇关于SRIO--IP讲解及环回测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/757483

相关文章

SQL Server中行转列方法详细讲解

《SQLServer中行转列方法详细讲解》SQL行转列、列转行可以帮助我们更方便地处理数据,生成需要的报表和结果集,:本文主要介绍SQLServer中行转列方法的相关资料,需要的朋友可以参考下... 目录前言一、为什么需要行转列二、行转列的基本概念三、使用PIVOT运算符进行行转列1.创建示例数据表并插入数

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav

CPython与PyPy解释器架构的性能测试结果对比

《CPython与PyPy解释器架构的性能测试结果对比》Python解释器的选择对应用程序性能有着决定性影响,CPython以其稳定性和丰富的生态系统著称;而PyPy作为基于JIT(即时编译)技术的替... 目录引言python解释器架构概述CPython架构解析PyPy架构解析架构对比可视化性能基准测试测

Apache服务器IP自动跳转域名的问题及解决方案

《Apache服务器IP自动跳转域名的问题及解决方案》本教程将详细介绍如何通过Apache虚拟主机配置实现这一功能,并解决常见问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录​​问题背景​​解决方案​​方法 1:修改 httpd-vhosts.conf(推荐)​​步骤

Linux(centos7)虚拟机没有IP问题及解决方案

《Linux(centos7)虚拟机没有IP问题及解决方案》文章介绍了在CentOS7中配置虚拟机网络并使用Xshell连接虚拟机的步骤,首先,检查并配置网卡ens33的ONBOOT属性为yes,然后... 目录输入查看ZFhrxIP命令:ip addr查看,没有虚拟机IP修改ens33配置文件重启网络Xh

VS Code中的Python代码格式化插件示例讲解

《VSCode中的Python代码格式化插件示例讲解》在Java开发过程中,代码的规范性和可读性至关重要,一个团队中如果每个开发者的代码风格各异,会给代码的维护、审查和协作带来极大的困难,这篇文章主... 目录前言如何安装与配置使用建议与技巧如何选择总结前言在 VS Code 中,有几款非常出色的 pyt

Java中实现对象的拷贝案例讲解

《Java中实现对象的拷贝案例讲解》Java对象拷贝分为浅拷贝(复制值及引用地址)和深拷贝(递归复制所有引用对象),常用方法包括Object.clone()、序列化及JSON转换,需处理循环引用问题,... 目录对象的拷贝简介浅拷贝和深拷贝浅拷贝深拷贝深拷贝和循环引用总结对象的拷贝简介对象的拷贝,把一个

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全