FPGA光通信2——Aurora 64B/66B的开发使用

FPGA光通信2——Aurora 64B/66B的开发使用

可参考GZH:小蘇的FPGA

        FPGA光通信的开发过程中,最简便的方式为Aurora 64B66B,开发人员无需关注2bit同步头,加解扰等过程,开放给开发人员的主要是AXI-Stream用户数据接口。

        Aurora是一款可扩展的轻量级、高数据速率链路层高速串行通信协议,支持全双工或单工,支持64B/66B,8B/10B编码。

一、Aurora 64B/66B使用介绍

        该核的使用架构主要如下:借助xilinx 核,开发人员可根据用户接口实现多通道间的光通信。最大支持16lane。

1.1 、IP核的介绍

        参考PG074, 该核的内部结构如下:

        其中,Lane logic:每个GT收发器由一个lane逻辑模块实例驱动,初始化每个收发器,处理控制字符的编解码,并执行错误检测。

        Global logic: 全局逻辑模块执行通道绑定以进行通道初始化。在运行过程中,该通道跟踪Aurora 64B/66B协议定义的Not Ready空闲字符,并监控所有通道逻辑模块的错误。

        RX user interface: AXI4-Stream接收用户数据从通道移动到应用程序,并执行流控制功能。

        TX user interface: AXI4-Stream发送用户数据从应用程序移动到通道,并执行TX的流量控制功能。

1.1.1、接口

        IP核如下(不同版本界面有差异,但含义相同):

        主要的接口信息如下,具体含义可查看PG074。

        用户数据接口:USER_DATA_S_AXIS_TX(数据发送)、USER_DATA_M_AXIS_RX(数据接收)

        GT BANK管脚:GT_SERIAL_RX、GT_SERIAL_TX、REFCLK

        控制接口:CORE_CONTROL(回环模式等)

        控制接口:CORE_STATUS

        重配置端口:GT_DRP(比如动态切换线速率场景)

        剩下的为复位、时钟接口:

        INIT_CLK:初始化时钟,来源不同于GT BANK;

        USER_CLK/SYNC_CLK:用户时钟,LineRate × LaneNum x (64/66)/LaneWide,其中USER_CLK为用户收发数据时钟;

        pma_init和reset_pb:复位信号,后文介绍。

       时钟关系如下:

1.1.2 、复位

        复位接口为pma_init和reset_pb,高电平复位释放前要求INIT_CLK和REFCLK保持稳定;先释放pma_init(gt_reset),后释放reset_pb(reset),reset_pb的释放同步于USER_CLK,pma_init复位信号同步于INIT_CLK。

        pma_init的复位会重置收发器的所有物理编码子层(PCS)和物理介质附件(PMA)子组件,即会先复位高速收发器,后复位内核逻辑。而reset_pb只会复位内核逻辑,不会复位底层的高速收发器。先释放pma_init,后释放reset_pb。

        不同模式下,复位时序不一样,本文只介绍双工模式的复位时序:上电阶段复位、其他复位。

        双工模式下的正常复位时序如上图所示,先把reset_pb拉高128个时钟周期,然后再拉高pma_init一段时间。之后先拉低pma_init,最后拉低Reset_pb信号。

        如下图所示:双工模式下reset_pb拉高的最短时间为128个user_clk周期。经过一段时间后,channel_up被拉低,表示传输通道建立失效。

        

        如下图所示:双工模式下的pma_init(gt_reset)复位时序,pma_init至少拉高128个init_clk周期。经过一些时钟周期后,user_clk会暂停产生时钟(因为user_clk的时钟来源是GT收发器txoutclk,pma_init复位从底层的物理层复位)。随后拉低channel_up信号,表示传输通道建立失效。

1.1.3 、初始化

        初始化过程如下:

        Lane up表示通道中的哪些通道已完成通道初始化。仅当所有通道和内部逻辑完成整个初始化过程后,channel_up才会被拉高。Aurora 64B/66B内核可以在Channel_up拉高之前接收数据,但Channel_up拉高之前不能发送数据,可把Channel_up取反用作全双工模式下发送端的复位信号。

1.1.4 、控制及状态接口

        loopback:      回环模式,实际使用一般接到0;

        000:normal;001: Near-end PCS Loopback;010: Near-end PMA Loopback;100: Far-end PMA Loopback;110: Far-end PCS Loopback

        power down: 高电平有效。当其为高时,GT会进入非工作、低功耗的模式。使用的时一般直接拉低。

        pll_not_locked 接 ~pll_locked ;

        lane_up:        "1”状态指示各通道初始化成功,每位代表一个通道

        channel_up:  “ 1”状态指示通道初始化完成,通道已准备好进行数据传输

        hard_err:       主要是硬件类错误

        soft_err:        主要是软件类错误

        frame_err:     当前通道帧协议错误

1.1.5 、数据接口

        该核支持两类数据接口:

        Framing接口:在AXI4-Stream的基础上IP核自动加入帧头、帧尾,并在固定时间内完成时钟补偿,但是会降低传输效率和使用较多资源。

        Streaming接口:简化的AXI4-Stream接口,只有数据有效、握手和数据信号,此种方式传输效率高,但无法保证传输的准确性。

           本文只介绍Frame类型接口,即用户接口类型为AXIS模式。由于64B/66编码,aurora的设计上在发送端需要ready信号握手。发送端用户只需要在发送、接收双方完成握手后,即可发送数据,通信双方均可通过握手信号来反压对方;接收端用户仅需要在valid信号有效时从总线上拿数据即可

        当s_axi_tx_tready反压与s_axi_tx_tvalid握手成功后,即可发送数据,使用s_axi_tx_tlast来表示当前发送最后一个数据,s_axi_tx_tkeep来表示最后一个数据的有效字节。

        接收数据:当m_axi_rx_tvalid为高时,接收的数据是有效数据,可以拿来用了,m_axi_rx_tkeep与m_axi_rx_tlast的用法与发送端对应的信号一致。

1.2 IP核配置

        根据本人开发板原理图配置如下:

    GT Refclk :GT参考时钟,板子时钟为156.25Mhz

    Lane Rate : 以10.3125Gbps作为测试

    INIT clk    :初始化时钟,根据工程自行选择设计

    GT位置及lane数目:根据板子原理图设计

    Dataflow Mode:选择全双工

    Interface:Framing类型

    流控:不使用

        little Ednian support:小端数据(小端:[15:0] 大端:[0:15])

        动态重配置接口类型

        Debug信号

        CRC功能

        Shared Logic:设置IP的逻辑放置的位置,如果GT REFCLK没被别的serdes使用,两种模式都行,否则建议In example design模式。

         In core:在IP核内:support、复位、时钟等逻辑包含在ip内

         In example design:在例子中,support、复位、时钟等逻辑都在ip外

1.3 参考例子

        主要参考support、复位、时钟的使用。

        support模块:包含了对时钟、复位、IP等的例化处理等一系列操作;在应用中此部分可不需要修改。

        frame_gen数据生成模块,采用LFSR的方式生成伪随机序列;在实际工程中替换为自己的数据模块即可。

        frame_check数据检验模块,对接收的数据进行检验以验证传输的正确性;在实际工程中替换为自己的数据模块即可。

二、工程设计、测试

2.1 、工程设计

        按照上述配置的上进行设计,收发数据流程为,当Channel_up拉高后,可通过VIO使能控制data_test_module测试数据模块产生测试数据。

        data_test_module:当FIFO非空时写入递增数据,根据AXIS接口的ready反压信号读FIFO到Aurora IP核。

2.2 、仿真测试

        对上述工程进行自回环收发仿真测试:

        初始化及收发过程:

        复位关系、状态信号:

        发数据:ready和valid

        收数据主要关注data、valid、last、keep等信号。

2.3 、上板测试

        通过VIO使能控制data_test_module测试数据模块产生测试数据。

        接收到的数据:与发送数据一一对应。

三 、 总结

        有需要代码的请私聊。

可参考GZH:小蘇的FPGA

FPGA实现Aurora光通信应用(8B/10B)

UltraScale/+ FPGA实现万兆网的两种方式:GT核、10G Ethernet Subsystem核

FPGA实现100G UDP通信

FPGA 40G/50G Ethernet Subsystem核的使用

FPGA实现千兆网UDP协议(含ARP、ICMP)

JESD204B的使用系列——3、DAC的应用(AD9164 9.6GSPS)

JESD204B的使用系列——2、协议及ADC的应用(AD9689)

JESD 204B的使用系列—1、时钟芯片的应用

FPGA外挂存储器应用3——NVMe协议 M.2硬盘的读写功能测试

Read more

3分钟搭建本地AI绘画平台:StableDiffusion-webui让创意秒变精美画作

3分钟搭建本地AI绘画平台:StableDiffusion-webui让创意秒变精美画作 【免费下载链接】ChatTTS-ui匹配ChatTTS的web界面和api接口 项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui 你是否还在为AI绘画需要付费API而烦恼?是否担心在线服务存在隐私泄露风险?本文将带你从零开始,通过StableDiffusion-webui在本地部署一套全功能AI绘画系统,无需美术功底,3分钟即可拥有媲美专业画师的创作能力。 读完本文你将获得: * 4种零代码部署方案(Windows一键安装/容器化部署/源码部署/移动端适配) * 6种常用绘画风格参数配置与自定义方法 * API接口调用全流程及Python示例代码 * 95%常见问题的解决方案 项目核心架构 StableDiffusion-webui是一个基于Stable Diffusion模型的Web界面和API接口项目,主要由前端交互层、图像生成层和模型管理层构成。项目采用模块化设计,核心代码集中在以下目录: * Web界面

【AIGC】COT思维链:让AI学会拆解问题,像人一样思考

【AIGC】COT思维链:让AI学会拆解问题,像人一样思考

COT思维链 * 引言 * 理解实践 * 存疑例子 * COT解决 * 内置COT * COT的优势 * COT的未来展望: * 结语 引言 在人工智能领域,我们一直在追求让机器像人类一样思考。然而,即使是最先进的AI,也常常被诟病缺乏“常识”,难以理解复杂问题,更不用说像人类一样进行逻辑推理和解决问题了。最经常的表现就是遇到不会的地方,或者一些人一眼能看出来的地方AI在那里胡扯。 为了解决这个问题,一种名为“思维链(Chain of Thought, COT)”的技术应运而生。COT的核心思想是:将复杂问题分解成一系列简单的子问题,并逐步推理出最终答案。 这就像人类在解决问题时,会先将问题拆解成一个个小步骤,然后一步步推理,最终得出结论。 理解实践 存疑例子 为了理解COT我们先来看个例子。经典的数strawberry里面的r有几个 from langchain_openai import ChatOpenAI from langchain.chains import LLMChain from

Whisper驱动的多语种交互异常检测框架:软件测试公众号热度解析与实战应用

Whisper驱动的多语种交互异常检测框架:软件测试公众号热度解析与实战应用

在2026年软件测试领域,公众号内容的热度高度依赖专业深度与痛点解决能力。爆款文章普遍聚焦AI工具评测、精准测试案例分享及技术趋势分析,阅读量破万的核心在于提供可量化数据和即时应用方案。本文将结合Whisper语音识别模型,构建多语种交互异常检测框架,并解析其如何契合公众号热度要素,为测试从业者提供内容创作蓝本。 一、公众号热度内容类型与核心特征 软件测试公众号的热门内容可归纳为三大类型,均以解决实际痛点为驱动: 1. AI工具评测与实战教程:占热门内容60%以上,热度源于测试效率的刚性需求。核心特征包括嵌入量化数据(如缺陷检出率提升30%)和分步操作指南,避免空泛论述。例如,对比Selenium与Cypress的实测文章,通过Python脚本示例展示手动编码时间减少50%,阅读量常破万。用户偏好可复现代码片段和性能对比图,确保即时应用性。 2. 精准测试案例分享:热度年增速超40%,聚焦多语言测试、安全合规等场景化挑战。内容需详述错误预防秘籍(如边界值分析优化),辅以风险管理框架和可视化报告。例如,“AI翻译技术文档精准应用指南”结合GDPR匿名化方案,指导生成10万+测试

七大AIGC测试工具横向评测:赋能软件测试的AI利器

七大AIGC测试工具横向评测:赋能软件测试的AI利器

在AI技术迅猛发展的2025年,AIGC(人工智能生成内容)工具已深度融入软件测试领域,显著提升测试效率和质量。本次评测聚焦七大主流工具:CodeWhisperer、GitHub Copilot、Testim、Selenium AI、Test.ai、Mabl和Functionize。评测基于实际测试场景(如Web/API测试、移动端兼容性验证),从核心功能、优缺点、适用性及成本四维度展开。目标是为测试工程师提供数据驱动的决策参考。评测方法包括工具实测(使用Python/Java测试脚本)、用户反馈分析(来源Stack Overflow和GitHub议题)及性能基准测试(错误检测率、执行速度)。以下是详细横向比较。 一、工具核心功能与评测结果 1. Amazon CodeWhisperer * 功能亮点:基于AWS的AI代码助手,专精于测试脚本生成。支持Python、Java等语言,能自动补全测试用例(如Selenium脚本),并集成漏洞扫描。实测中,生成100行测试代码的平均时间仅5秒,错误率低于5%。 * 优点: