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

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

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

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

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过