AMD/Xilinx 生态中的块级控制协议(Block-Level Control Protocol),以cmac 为例
ap_ctrl_none是 AMD/Xilinx Vitis/Vivado HLS 生态中的块级控制协议Block-Level Control Protocol表示该硬件模块为**“自由运行”Free-Running**模式——一旦 FPGA 加载完成模块即刻自主运转无需 Host CPU 通过ap_start/ap_done等握手信号来逐次调度。一、三种块级控制协议对比在 Vitis HLS 或 RTL Kernel 中块级协议决定整个 IP 核的执行生命周期何时启动、何时算完成、何时空闲与端口级的 AXI4-Stream/AXI4-Lite 等数据接口是不同层面的概念 协议控制信号执行模式典型场景ap_ctrl_hsap_start,ap_done,ap_idle,ap_ready控制驱动单次执行Host 发令 → 核执行 → 核报告完成传统加速器如 FFT、矩阵乘ap_ctrl_chain上述信号 ap_continue控制驱动支持流水线级联下游可反压上游多核链式数据流ap_ctrl_none无握手信号或被优化为高电平常有效数据驱动持续运行网络包转发、视频流、自由运行 RTL Kernel二、ap_ctrl_none 的核心语义1. 无生命周期握手模块不暴露ap_start/ap_done/ap_idle/ap_ready给 Host。对 Host 软件XRT/OpenCL而言无法通过clEnqueueTask来启动一次任务也无法查询这次任务是否做完 。2. 数据驱动Data-Driven模块的运行节奏完全由数据流可用性决定输入端口如S_AXIS有数据 → 模块处理输入为空 → 模块自动阻塞stall等待输出端口如M_AXIS被下游反压 → 模块自动挂起。这相当于硬件层面的while(1)循环 。3. 上电即运行在 RTL Kernel 语境下一旦xclbin加载到 FPGAap_ctrl_none的内核立即开始工作不需要 Host 下发启动命令 。三、为什么 CMAC Kernel 使用 ap_ctrl_none结合 CMAC Kernel 文档该设计选择ap_ctrl_none的原因非常明确设计特征与 ap_ctrl_none 的契合点网络子系统100G 以太网 MAC/PCS 是持续收发的流水线没有一次任务的概念AXIS 数据流通过S_AXIS/M_AXIS与上下游交互天然适合数据驱动控制与数据分离数据面512-bit AXIS持续跑控制面AXI4-Lite 寄存器旁路配置互不影响无需 Host 调度Host 不需要说发一个包——包来了硬件自动处理换句话说CMAC 是一个**“永远在线的 I/O 引擎**而非被 Host 反复调用的函数”。四、使用 ap_ctrl_none 的约束与注意事项根据 AMD 官方文档采用该协议需满足特定条件否则 C/RTL 协同仿真会报错 必须是流式/流水线设计接口推荐使用hls::stream或axis避免使用m_axi内存映射作为数据主通路不能有循环内的 dataflow 区域ap_ctrl_none区域若嵌套在for循环内部会导致父级 FSM 永远等不到ap_done而死锁父级模块也需为 ap_ctrl_none若上层还有非自由运行模块等待该核的完成信号系统会挂起AXI4-Lite 仍可用虽然数据面无控制握手但寄存器配置接口S_AXILITE仍可独立存在用于状态查询和参数配置。五、总结ap_ctrl_none拉闸即运转数据来则动数据尽则停Host 不干预生命周期。对 CMAC 这类 100G 网络硬核而言它是自由运行内核的标准签名确保网卡从 FPGA 加载完成后即刻进入线速转发状态无需 CPU 逐包调度。六、cmac 概述CMAC 内核本文档提供 cmac 内核的概述。cmac 内核cmac内核是一个 RTL 自由运行内核它封装了 UltraScale 集成 100G 以太网子系统。该内核使用ap_ctrl_none作为硬件控制协议。该内核根据传递给 make 的INTERFACE、DEVICE和PADDING_MODE参数进行配置。它向用户逻辑暴露两个 512 位 AXI4-Stream 接口S_AXIS 和 M_AXIS这些接口以内核相同的频率运行内核内部集成了 CDC时钟域跨越逻辑用于将内核时钟转换为 100G 以太网子系统时钟。它还提供一个 AXI4-Lite 接口用于查看 UltraScale 集成 100G 以太网子系统的寄存器映射。UltraScale 集成 100G 以太网子系统100G 以太网子系统提供了一个集成的 100 千兆比特每秒Gbps以太网媒体访问控制器MAC、物理编码子层PCS、IEEE 802.3bj 里德-所罗门前向纠错RS-FEC以及 100GE 自动协商/链路训练AN/LTIP以支持 KR4、CR4、SR4、CWDM4、PSM4 或 ER4f 等高性能应用方案。注意自动协商/链路训练在此内核中未启用。cmac_sync该 IP 实现了 PG203 中描述的内核启动序列。frame_padding该 IP 实现可选的帧填充至 60 或 64 字节。填充模式在编译时通过PADDING_MODE参数设置具体如下模式0表示不填充模式1默认填充至 60 字节模式2填充至 64 字节。时钟域跨越UltraScale 集成 100G 以太网子系统中的 Rx 和 Tx AXI4-Stream 接口工作在 322.265625 MHz。为了适应设计中其余部分的不同频率在 Tx 路径acc_kernel_tx_cdc 和 fifo_cmac_tx和 Rx 路径fifo_cmac_rx_cdc中均包含了跨时钟域逻辑。寄存器映射UltraScale 集成 100G 以太网子系统的寄存器映射详见 PG203可通过 AXI4-Lite 接口访问。其中许多寄存器已通过 template.xml 文件方便地映射为内核参数。如果您希望访问未映射的寄存器可以使用 pynq MMIO 的读写方法。例如# 读取 CONFIGURATION_AN_ABILITY 寄存器cmac.read(0xA8)# 在 CONFIGURATION_AN_ABILITY 寄存器中设置 ctl_an_ability_1000base_kxcmac.write(0xA8,0x1)您也可以修改 template.xml 文件以添加更多寄存器。修改此文件时需谨慎确保 id 正确更改。一旦修改了 template.xml 文件您必须重新构建设计以便将这些更改包含到 xclbin 中。修改 template.xml 后请删除此文件夹中的所有 *.xo 文件。接口名称描述ap_clk主时钟ap_rst_n主低电平复位clk_gt_freerun自由运行内核时钟gt_ref_clkGT 参考时钟gt_serial_portGT 串行通道S_AXILITEAXI4-Lite 从属控制接口S_AXIS512 位 AXI4-Stream 发送接口M_AXIS512 位 AXI4-Stream 接收接口多路 100 GbE 接口与 Alveo 卡为了支持多路 100 GbE 接口和 Alveo 卡会生成略有不同的内核其内部结构和接口保持不变。但 UltraScale 集成 100G 以太网子系统的配置会根据每个接口和 Alveo 卡进行调整。这些配置详见 此处。许可证要生成使用 UltraScale 集成 100G 以太网子系统 的 xclbin 文件您需要有效的许可证。您可以按照这些步骤生成免费许可证。注意要启用自动协商/链路训练您需要单独的许可证。更多信息请参阅相关文档。修改 RS-FECRS-FEC 在 CMAC 实例中默认启用。在运行时RS-FEC 默认处于关闭状态可以通过调用 Pynq 和 C 驱动程序中的相应函数来激活。激活后RS-FEC 设置为子模式 1纠错和指示均启用。更多详情请参阅 UltraScale 集成 100G 以太网子系统 文档。注意RS-FEC 激活后会增加延迟。Copyright© 2022 Xilinx

相关新闻

Spring Data JDBC实战:轻量级ORM框架的优势与应用

Spring Data JDBC实战:轻量级ORM框架的优势与应用

1. Spring Data JDBC 的定位与核心价值Spring Data JDBC 是 Spring 生态中一个经常被低估的持久层框架。与大家熟知的 JPA/Hibernate 不同,它采用了一种更接近 SQL 的轻量级 ORM 方式。我在多个生产项目中实际使用后发现,当你的业务场景符合以下特征时&a…

2026/7/31 5:19:41 阅读更多 →
基于OpenCV与STM32的视觉伺服系统:从图像处理到电机控制全流程解析

基于OpenCV与STM32的视觉伺服系统:从图像处理到电机控制全流程解析

1. 项目概述:一次从零到一的视觉控制实战去年带队参加电赛,E题那个视觉识别与控制结合的题目,相信让不少队伍都印象深刻。题目要求很明确:通过摄像头识别特定目标,然后驱动机械结构(通常是步进电机带动的云…

2026/7/31 5:19:41 阅读更多 →
谁说想看电脑网速和硬件状态,非得打开任务管理器那么麻烦?今天这个宝贝直接让你的任务栏活过来。

谁说想看电脑网速和硬件状态,非得打开任务管理器那么麻烦?今天这个宝贝直接让你的任务栏活过来。

谁说想看电脑网速和硬件状态,非得打开任务管理器那么麻烦?今天这个宝贝直接让你的任务栏活过来。Traffic Monitor 是个啥它就是 Traffic Monitor,一款能在任务栏实时显示网速、CPU 内存占用的小插件。不用的时候,它安安静静待在角…

2026/7/31 5:19:41 阅读更多 →

最新新闻

金融文本解析实战:从非结构化早报到结构化数据的工程实践

金融文本解析实战:从非结构化早报到结构化数据的工程实践

在金融科技和数据分析领域,实时获取并解析全球市场早报是构建量化交易策略、风险预警系统和投资决策支持平台的关键一环。2026年7月10日的这份早报浓缩了贵金属市场动态、头部科技公司资本运作与供应链进展、以及上市公司业绩预告等多维度信息,其结构化程…

2026/7/31 5:55:53 阅读更多 →
Windows下Visual Studio 2022配置OpenCV 4.8.0完整指南

Windows下Visual Studio 2022配置OpenCV 4.8.0完整指南

1. 项目概述:为什么要在Windows上配置OpenCV?如果你是一名C开发者,尤其是在Windows平台上使用Visual Studio 2022,那么OpenCV几乎是你绕不开的一个工具库。无论是做图像识别、视频分析,还是简单的图像处理,…

2026/7/31 5:55:53 阅读更多 →
从零开始学习嵌入式P10----函数(下)

从零开始学习嵌入式P10----函数(下)

从零开始学习嵌入式P10----函数(下)本篇继续学习函数之间的数据传递、一维整型数组与字符数组传参、递归函数,同时会介绍有关宏定义、条件编译和头文件的内容。示例默认在 Linux GCC 环境中运行。本篇目标 学完这一篇,我们应该能…

2026/7/31 5:55:53 阅读更多 →
Java实现HTML转Word:四种方案深度对比与Apache POI+Jsoup实战

Java实现HTML转Word:四种方案深度对比与Apache POI+Jsoup实战

1. 项目缘起:为什么要在Java里折腾HTML转Word?如果你做过企业级应用开发,尤其是那些需要生成报告、合同、单据的系统,大概率会遇到一个需求:把动态生成的HTML内容,完美地输出成一份可以打印、可以存档、可以…

2026/7/31 5:55:53 阅读更多 →
Python网页文档爬取实战:从Requests到DrissionPage的完整解决方案

Python网页文档爬取实战:从Requests到DrissionPage的完整解决方案

1. 项目概述:从网页中高效捕获结构化文档在数据驱动的时代,我们经常遇到这样的场景:一份至关重要的行业报告、一篇学术论文的预印本、一份产品技术规格书,它们静静地躺在某个网页上,但下载链接却是一个PDF或Word文档。…

2026/7/31 5:55:52 阅读更多 →
Spring Boot 应用对接 Prometheus 监控指南

Spring Boot 应用对接 Prometheus 监控指南

Spring Boot 应用对接 Prometheus 监控指南 本文档介绍如何将 Spring Boot 应用接入 Prometheus 监控体系,分无认证和 Basic Auth 认证两种情况说明。一、技术栈组件用途Micrometer指标采集门面Spring Boot Actuator暴露监控端点Prometheus指标采集 时序数据库Graf…

2026/7/31 5:53:52 阅读更多 →

日新闻

物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:34 阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:34 阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:34 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻