FPGA的GTP(aurora 协议)高速串行接口数据收发(转)
reference:https://blog.csdn.net/qq_40261818/article/details/83039829
PG046-Aurora 8B/10B Logicore IP Product Guide.pdf
GTP(吉比特收发器)简称Gigabit Transceiver with Low Power,经常应用于板级通信,板与板,应用在高速串行接口的数据收发。在A7系列芯片中我们叫GTP、在K7系列我们叫GTX、V系列叫GTH、对于不同速度等级的高速通信的物理接口。
首先就是要了解aurora IP帧模式,Aurora 协议是由Xilinx 公司提供的一个开放、免费的链路层协议,可以用来进行点到点的串行数据传输,具有实现高性能数据传输系统的高效率和简单易用的特点。Aurora 8b10协议是一个可扩展的、轻量级的链路层协议,可以用于单路或者多路串行数据通信。
1. AuroraIP帧模式
1.1 IP核配置
Lane width Byte=4Bytes 设置了用户AXI-Stream接口位宽是32bit
Lane Rate=5.0Gbps 设置了高速串行总线的数据速率
GT Refclk=125Mhz 设置了高速串行总线参考时钟频率,需要参考板卡实际连接的晶振频率
Init clk=50Mhz 用于初始化和产生复位的信号,请使用独立的时钟不要使用本IP核生成的用户时钟。
Drp clk=50Mhz 用于DRP配置的时钟,此时钟可以与Init clk 一致。
DataFlow Mode=Duplex 通信模式选择全双工,也可以选择单收或单发.
Interface =Frame 用户接口模式选择帧模式,帧模式帧内部含有起始字节和结束字节,选择性使能CRC ,用于数据校验,相对比流模式效率降低,但是能感知帧内是否出错。
Flow Control = UFC 流控信号选择User Flow Control,加入流控机制,流控信息可以更优先的传送,只有在Frame模式下可以选择。
Error Detection = CRC 使能CRC校验帧数据是否出错。
GT Selection -> Lanes = 1;
RefClk=GTPQ0 选择高速接口数量和参考时钟,这部分设置芯片有专用管脚对应,根据实际板卡和芯片型号选择。
Shared Logic = Include shared logic in core
共享逻辑资源不输出共享信号接口,只包含在IP核内部,在共享模式下一些时钟PLL资源可以给多个核使用。
INITCLK = Single ended init clk 初始化时钟选择单端时钟
未注明的设置选项保持默认即可

1.2 复位时序
上电后GT_Reset和Reset同时复位,GT_Reset提前128clk退出复位,当LaneUp&ChannelUp出现下降沿后 触发复位时序,Reset提前进入复位,128个时钟后GT_Reset进入复位状态,GT_Reset保持128时钟周期后,退出复位,之后再经过128时钟周期Reset退出复位,复位顺序完成。
1.3 用户流控信号 (ufc)
发送UFC数据,数据来自于S_axi_tx_tdata,发送到m_axi_ufc_rx_tdata; s_axi_ufc_tx_tdata指定UFC发送数据的大小(2~16byte); 如图,指定发送UFC大小2byte;

接收UFC数据,接收到2byte数据

1.3.1 用户流控信号时序
用户流控信号可以插入数据流中,从而在接收端可以降低缓冲buffer压力,一般应用场景,当接收端 buffer即将溢出时,给发送端发送指令,使得发送端插入流控数据降低接收端数据量防止溢出。
2. 帧模式结构框图
tx_ctrl和rx_ctrl模块是用户设计模块。tx_ctrl产生 测试数据源,通过Aurora IP发送到传输介质中,接收端接收数据并检测CRC检测结果,并对CRC错包计 数。在调试期间可以用xilinx调试IP的VIO功能监测错包数量。

FPGA的GTP(aurora 协议)高速串行接口数据收发(转)的更多相关文章
- [INet] WebSocket 协议中的数据收发过程
WebSocket 和 HTTP 相似,只是一个应用层协议,对下层透明,所以不涉及 TCP/IP. 由于浏览器支持了 WebSocket,所以在用 JS 写客户端的时候,是无需考虑数据的编码解码的. ...
- 批量生成sqlldr文件,高速卸载数据
SQL*Loader 是用于将外部数据进行批量高速加载的数据库的最高效工具,可用于将多种平面格式文件加载到Oracle数据库.SQL*Loader支持传统路径模式以及直接路径这两种加载模式.关于SQL ...
- 网络编程--使用TCP协议发送接收数据
package com.zhangxueliang.tcp; import java.io.IOException; import java.io.OutputStream; import java. ...
- SQL Server高速导入数据分享
SQL Server高速导入数据,能够尝试的方法例如以下:CTE.OpenRowSet/OpenDataSource.BULK INSERT.bcp.Shell. 以下依次介绍这几种办法. 1.CTE ...
- STM32 使用Cubemx 建一个USB(HID)设备下位机,实现数据收发
这里我主要说一下如何做一个USB下位机,这里主要分3部分:1.建立工程:2.添加报文描述符:3.数据的传输.这里就不讲USB的理论知识了,有想要了解的自行百度一下就可以了. 建立工程:工程建立参考:h ...
- 转载 STM32 使用Cubemx 建一个USB(HID)设备下位机,实现数据收发
STM32 使用Cubemx 建一个USB(HID)设备下位机,实现数据收发 本文转载自 https://www.cnblogs.com/xingboy/p/9913963.html 这里我主要说一 ...
- 通过集群的方式解决基于MQTT协议的RabbitMQ消息收发
在完成了基于AMQP协议的RabbitMQ消息收发后,我们要继续实现基于MQTT协议的RabbitMQ消息收发. 由于C#的RabbitMQ.Client包中只实现了基于AMQP协议的消息收发功能的封 ...
- HAL UART DMA 数据收发
UART使用DMA进行数据收发,实现功能,串口2发送指令到上位机,上位机返回数据给串口2,串口2收到数据后由串口1进行转发,该功能为实验功能 1.UART与DMA通道进行绑定 void HAL_UAR ...
- java网络编程——多线程数据收发并行
基本介绍与思路 收发并行 前一篇博客中,完成了客户端与服务端的简单TCP交互,但这种交互是触发式的:客户端发送一条消息,服务端收到后再回送一条.没有做到收发并行.收发并行的字面意思很容易理解,即数据的 ...
随机推荐
- Seurat | 单细胞分析工具
Seurat是一个老牌的单细胞分析工具了(satija的力作),我之前测试过,但是没怎么用. 最近发现这个工具又publish在了NBT上,所以很有必要看一下这篇文章. Integrating sin ...
- springboot---->javax.servlet.ServletException
springboot访问静态资源时发生以下异常: javax.servlet.ServletException: Circular view path [login]: would dispatch ...
- Django中模型层中ORM的多表操作
ORM的多表创建(一对一.一对多,多对多): 1模型创建 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等 ...
- 『TensorFlow Internals』笔记_源码结构
零.资料集合 知乎专栏:Bob学步 知乎提问:如何高效的学习 TensorFlow 代码?. 大佬刘光聪(Github,简书) 开源书:TensorFlow Internals,强烈推荐(本博客参考书 ...
- 第二阶段——个人工作总结DAY04
1.昨天做了什么:实现所有需要跳转活动的点击事件. 2.今天打算做什么:打算把值能够传递过去. 3.遇到的困难:无
- Spring boot(六)优雅使用mybatis
orm框架的本质是简化编程中操作数据库的编码,发展到现在基本上就剩两家了,一个是宣称可以不用写一句SQL的hibernate,一个是可以灵活调试动态sql的mybatis,两者各有特点,在企业级系统开 ...
- hive的jdbc使用
①新建maven项目,加载依赖包 在pom.xml中添加 <dependency> <groupId>jdk.tools</groupId> <artifa ...
- 关于final static修饰的常量部署后没有更新的问题
出现问题的场景是这样的: 项目中有个专门放流程Key值常量的类FlowConstants.java,其中这些常量都用了final static 修饰.某天因为修改了流程,相应的key值也改变了,所以直 ...
- 移除input框type="number"在部分浏览器的默认上下按钮
input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none !impor ...
- rac备份及恢复的重要概念之一——Redo Threads和Streams
rac数据库的备份和恢复,与单实例Oracle数据库的备份和恢复没有根本的不同,但区别还是有的,如果大家理解了Redo Threads和Streams概念,也就没什么了,下面这段文字清晰了解释了两者的 ...