vivado Aurora 8B/10B IP核(5)-流量控制(Flow Control)

2024-04-30 00:44

本文主要是介绍vivado Aurora 8B/10B IP核(5)-流量控制(Flow Control),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用框架接口的内核上提供了两个可选的流控制接口。 本地流控制(NFC)调节全双工信道接收端的数据传输速率。 用户流控制(UFC)容纳用于控制操作的高优先级消息。
User Flow Control Interface(用户流控制接口)
UFC 接口是在启用 UFC 生成 IPCORE 时创建的.UFC s_axi_ufc_tx_tvalid 和 TX 侧的 s_axi_ufc_tx_tready 端口启动 UFC 消息,3 位 s_axi_ufc_tx_tdata 端口指定消息的长度。
使用 s_axi_ufc_tx_tready 断言,UFC 消息可以提供给数据端口。
UFC 接口的 RX 侧由一组 AXI4-Stream 端口组成,允许 UFC 消息被读取为一个帧。 Simplex 模
块仅保留在支持的方向发送数据所需的接口。
Transmitting UFC Messages 发送 UFC 消息
UFC 消息可以携带从 2 到 16 的偶数数据字节。用户应用程序通过在 s_axi_ufc_tx_tdata 端口
上驱动 SIZE 代码来指定消息的长度。
要发送 UFC 消息,用户应用程序在使用所需的 SIZE 代码驱动 s_axi_ufc_tx_tdata 端口时会断
言 s_axi_ufc_tx_tvalid。必须保持 s_axi_ufc_tx_tvalid 信号,直到 Aurora 8B / 10B IPCORE 断
言 s_axi_ufc_tx_tready 信号。 UFC 消息的数据必须放在 s_axi_tx_tdata 端 口 上 , 从
s_axi_ufc_tx_tready 被断言后的第一个周期开始。当 s_axi_tx_tdata 端口用于 UFC 数据时,核心
模块将取消 s_axi_tx_tready s_axi_tx_tready。
注意:只有在完成当前 UFC 请求后才应给予 UFC 请求; 背靠背 UFC 请求可能不会被 IP 所支持。
Number of Data Beats Required to Transmit UFC Messages(发送 UFC 消息所需的节拍数)
表显示了根据 AXI4-Stream 数据接口的宽度传输不同大小的 UFC 消息所需的周数。在 所有消息数据可用之前,不应启动 UFC 消息。 与常规数据不同,在 s_axi_ufc_tx_tready 已被确认 直到当前 UFC 消息完成之前,UFC 消息不能被中断。
Example A: Transmitting a Single-Cycle UFC Message(发送单周期 UFC 消息)
发送单周期 UFC 消息的过程如图 2-2-5-3 所示。 在这种情况下,4 字节的消息正在 4 字节的
接口上发送。
注意:s_axi_ufc_tx_tready 信号被断言两个周期。 Aurora 8B / 10B 内核使用
这个差距在数据流中传输 UFC 头和消息数据。
Example B: Transmitting a Multicycle UFC Message(发送多周期 UFC 消息)
发送双周期 UFC 消息的过程如图 2-2-5-4 所示。 在这种情况下,用户应用程序使用 2 字节接
口发送一个 4 字节的消息。 s_axi_tx_tready 被断言三个周期:在 s_axi_ufc_tx_tready 周期期间
发送的 UFC 头的一个周期,以及 UFC 数据的两个周期。
Receiving User Flow Control Messages(接收用户流控制消息)
当 Aurora 8B/10B 内核接收到 UFC 消息时,它将通过专用 UFC AXI4-Stream 接口将数据传递给
用户应用程序。数据显示在 m_axi_ufc_rx_tdata 端口上; m_axi_ufc_rx_tvalid 表示消息数据的开
始,m_axi_ufc_rx_tlast 表示结束。m_axi_ufc_rx_tkeep 用于在消息的最后一个周期中显示
m_axi_ufc_rx_tdata 上的有效字节数。
Example A: Receiving a Single-Cycle UFC Message(接收单周期 UFC 消息)
图显示了一个 4 位数据接口接收 4 字节 UFC 消息的 Aurora 8B/10B 内核。核心通过断 言m_axi_ufc_rx_tvalid和m_axi_ufc_rx_tlast来指示单个周期框架将该数据提供给用户应用程序。
m_axi_ufc_rx_tkeep 设置为 4'hF,仅指示接口的四个最高有效字节有效。
Example B: Receiving a Multicycle UFC Message(接收多个 UFC 消息)
上图显示了一个 4 字节接口接收 8 字节消息的Aurora 8B/10B内核模块。
注意:结果帧是两个周期长,第二个周期的 m_axi_ufc_rx_tkeep 设置为 4'hF,表示数据的所有四个字节都有效。

这篇关于vivado Aurora 8B/10B IP核(5)-流量控制(Flow Control)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/947569

相关文章

MySQL精准控制Binlog日志数量的三种方案

《MySQL精准控制Binlog日志数量的三种方案》作为数据库管理员,你是否经常为服务器磁盘爆满而抓狂?Binlog就像数据库的“黑匣子”,默默记录着每一次数据变动,但若放任不管,几天内这些日志文件就... 目录 一招修改配置文件:永久生效的控制术1.定位my.cnf文件2.添加核心参数不重启热更新:高手应

Java根据IP地址实现归属地获取

《Java根据IP地址实现归属地获取》Ip2region是一个离线IP地址定位库和IP定位数据管理框架,这篇文章主要为大家详细介绍了Java如何使用Ip2region实现根据IP地址获取归属地,感兴趣... 目录一、使用Ip2region离线获取1、Ip2region简介2、导包3、下编程载xdb文件4、J

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制