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

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

ispunct函数讲解 <ctype.h>头文件函数

目录 1.头文件函数 2.ispunct函数使用  小心!VS2022不可直接接触,否则..!没有这个必要,方源一把抓住VS2022,顷刻 炼化! 1.头文件函数 以上函数都需要包括头文件<ctype.h> ,其中包括 ispunct 函数 #include<ctype.h> 2.ispunct函数使用 简述: ispunct函数一种判断字符是否为标点符号的函

BIRT 报表的自动化测试

来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-birttest/如何为 BIRT 报表编写自动化测试用例 BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性 -------

深度学习速通系列:深度学习算法讲解

深度学习算法是一系列基于人工神经网络的算法,它们通过模拟人脑处理信息的方式来学习和解决复杂问题。这些算法在图像识别、语音识别、自然语言处理、游戏等领域取得了显著的成就。以下是一些流行的深度学习算法及其基本原理: 1. 前馈神经网络(Feedforward Neural Networks, FNN) 原理:FNN 是最基本的神经网络结构,它由输入层、隐藏层和输出层组成。信息从输入层流向隐藏层,最