
基本原理
文章平均质量分 93
电路_fpga
闻道有先后 术业有专攻
展开
-
fpga通过uart向上位机传输ad7606采集数据
通过串口将AD7606采集的8路ADC数据传输至PC显示。AD7606模块将采集的16位补码数据转换为电压值,并转换为BCD码。系统设计包括数据处理模块和UART字节发送模块,前者负责数据转换,后者负责将数据以ASCII编码形式发送。原创 2025-01-21 20:07:37 · 966 阅读 · 0 评论 -
基于FPGA的AD7606并行接口驱动程序
本文介绍了基于FPGA实现AD7606并行接口数据采集的方法。首先,通过状态机和计数器实现AD7606的复位、采样锁存、数据读取等时序控制。在FPGA中,使用计数器确保信号持续时间满足AD7606要求,如RESET、CONVSTA/B的持续时间。状态机在检测到BUSY下降沿后读取数据,CS和RD信号的生成也通过计数器控制。原创 2024-12-18 11:30:00 · 1573 阅读 · 2 评论 -
详解AD7606引脚及接口时序参数
AD7606是一款8通道16位同步采样ADC芯片,支持200KSPS采样率,可选±5V或±10V输入电压范围,5V供电。具有并口和SPI串口通信接口,8通道同时采样,简化PCB设计。内部无配置寄存器,通过引脚配置功能。支持过采样,但通常不使用。数据可通过并行或串行接口读取,FPGA常采用并行模式。原创 2024-12-11 11:30:00 · 4206 阅读 · 0 评论 -
记录开发WM8371主机模式遇到的问题
本文描述了在编写WM8371驱动时遇到的问题及其解决过程,最初选择了主机模式和I2S左对齐数据传输模式,但在50MHz FPGA时钟下遇到了耳机输出噪声问题。通过硬件回环测试排除了硬件故障,确定问题在于FPGA代码。分析发现,由于系统时钟频率较低,导致DACDAT信号与BCLK上升沿重合,违反了WM8371的时序要求。解决方案是将系统时钟频率提高至100MHz,以满足BCLK的建立和保持时间要求,从而消除噪声。原创 2024-11-27 11:30:00 · 787 阅读 · 0 评论 -
详解wm8371音频采集芯片的寄存器
本文详细介绍了WM8731编解码器的寄存器配置和电路设计。WM8731具有24位ADC和DAC,支持16至32位音频输入字长和8kHz至96kHz采样率。阐述了如何通过I2C或三线模式配置内部寄存器,并详细讲解了11个寄存器的功能,包括左右声道线路、耳机放大器、模拟音频路径控制、数字音频路径控制、省电模式、数字音频接口格式和复位寄存器。强调了省电模式、音频输入和DAC输出静音设置、I2S协议模式和格式设置、采样率设置的重要性。文档内容基于WM8731手册,提供了设计思路和配置参考。原创 2024-11-15 12:15:00 · 1788 阅读 · 0 评论 -
详解I2S协议
音频采集芯片WM8731的I2S协议包括ADCRC、DACRC、BCLK、ADCDAT和DACDAT五个信号。I2S协议有四种模式:左对齐、右对齐、I2S和DSP,推荐左对齐或I2S模式。WM8731音频数据可编程为16、20、24或32位。原创 2024-11-06 20:35:21 · 1762 阅读 · 0 评论 -
详解Xilinx的10G PCS PMA IP(万兆以太网二)
本文介绍了在Xilinx FPGA上实现万兆以太网通信的三种方法,重点讲解了使用10G PCS PMA作为PHY层的方案。详细阐述了10GBASE-R/KR的工作原理、XGMII接口时序、内核时钟分析及IP的功能信号与调试信号,为设计万兆以太网通信系统提供了理论基础和实践指导。原创 2024-10-30 18:00:00 · 3063 阅读 · 0 评论 -
idelaye布局布线引发的问题
详解[Place 30-650] Non IO buffer dclk_IBUF_BUFG_inst{BUFG} is driving IDATAIN pin of IDELAY instance u_IDELAYE2. This will lead to unroutable situation. IDATAIN pin of IDELAY instance should always get signal from IO buffer or GND.报错的根本原因原创 2024-10-24 12:00:00 · 2146 阅读 · 4 评论 -
万兆以太网接口演变(万兆以太网一)
万兆以太网遵循IEEE 802.3ae规范,最初使用XGMII接口与PHY芯片通信,但因时钟频率高导致布线困难。随后发展出XAUI接口,通过XGXS转换简化为8对差分信号线,支持更长布线。随着Serdes技术发展,FPGA内部可实现PHY层设计,简化硬件设计。现代FPGA使用GTX/GTH/GTY等技术构建高速接口,实现灵活且简单的设计。原创 2024-10-18 20:31:00 · 2208 阅读 · 0 评论 -
详解Xilinx JESD204B PHY层端口信号含义及动态切换线速率(JESD204B五)
Xilinx提供的JESD204B PHY IP,支持1.0至12.5 Gb/s的线速率,基于GTX/H架构。该IP具备丰富的内部寄存器,可通过axi_lite总线进行动态配置,包括QPLL和CPLL参数设置以实现线速率的调整。端口信号设计简化,方便与上层传输层逻辑集成。内部寄存器包括状态监测和GTX/H相关配置,如回环模式和预加重等。尽管IP封装了GTX/H,但缺少接收端对齐实现,需与JESD204B上层模块配合使用。通过分析端口信号和寄存器配置,用户可以灵活控制PHY层行为,适应不同的通信需求。原创 2024-10-09 18:08:50 · 2542 阅读 · 4 评论 -
详解JESD204B子类一的确定性延时(JESD20B三)
JESD204B系统中,确定性延迟的实现依赖于精确的时钟同步和数据对齐。通过SYSREF信号同步发送端(TX)和接收端(RX)的本地多帧时钟(LMFC),确保所有通道在LMFC的相同边沿发送和接收数据。ILAS序列用于标注数据的开始和结束,帮助接收端识别帧边界。弹性buffer(RBD)调整数据输出点,以补偿通道间的延迟差异,保证数据对齐输出。若RBD设置不当,可能引入不确定性延迟。因此,需要通过实验确定RBD的最优值,以维持在不同条件下的延迟一致性,确保系统性能的可靠性和预测性。原创 2024-09-20 08:05:14 · 2111 阅读 · 1 评论 -
JESD204B数据链路建立过程(文末赠书)
JESD204B协议通过一系列同步过程确保数据链路的建立和数据传输的准确性。发送端首先进行时钟同步,然后接收端通过SYNC信号触发发送端发送K28.5字符进行码组同步。完成码组同步后,发送端在LMFC边沿发送初始通道对齐序列(ILAS),用于验证链路参数和对齐所有通道。接收端利用CDR技术恢复数据,并在ILAS的帮助下进行通道间数据对齐。数据链路层的8B10B编码和解码确保数据的准确性,而加扰技术用于减少电磁干扰。整个过程涉及精确的时序控制和参数匹配,以实现高效的数据同步和传输。原创 2024-09-11 08:36:49 · 2193 阅读 · 1 评论 -
初始JESD204B高速接口协议(JESD204B一)
JESD204B是用于高速ADC/DAC与逻辑器件通信的串行接口协议,通过减少数据线对和简化PCB布线,解决了LVDS接口在高速数据传输中的布线难度和时序问题。JESD204B支持多通道同步和确定性延时,适用于高速数据传输需求。然而,由于需要锁相环和缓冲器,JESD204B的功耗和数据传输延迟可能高于LVDS。JESD204B包含多种工作模式,其中子类1模式因其复杂性和广泛的应用而受到青睐。JESD204B的结构包括传输层、加扰、链路层和物理层,各层协同工作以实现高效的数据传输。原创 2024-09-06 17:34:34 · 2536 阅读 · 0 评论 -
Aurora 64B/66B IP的原理及示例工程分析(高速收发器二十四)
Aurora 64B/66B是一种高性能串行通信协议,与Aurora 8B/10B原理相似,支持全双工模式,提供AXI4-Stream和Stream两种接口。内核基于GTX封装,内部包含加扰、解扰模块,具备流控和CRC校验功能。时钟架构中,初始化时钟独立,复位信号包括Reset_pb和pma_init,前者仅复位内核逻辑,后者复位整个高速收发器。IP配置界面与Aurora 8B/10B类似,需要设置线速率、参考时钟等参数。原创 2024-08-07 20:12:14 · 3123 阅读 · 0 评论 -
详解Xilinx的SRIO IP的配置参数(高速收发器二十九)
本文指导了如何在Vivado中配置Xilinx SRIO IP核,包括选择数据链路、线速率、参考时钟频率等,并设置了缓冲区深度、设备ID和流量控制。接着分析了SRIO IP的示例工程,涉及发送和接收数据模块,说明了如何初始化、获取包头、发送数据以及解析和响应接收到的数据包。原创 2024-08-01 11:16:49 · 2305 阅读 · 7 评论 -
简要讲解Xilinx SRIO IP(高速收发器二十八)
本文概述了串行RapidIO(SRIO)技术,一种基于SERDES的高速串行总线,相较于传统并行总线在高速传输中具有优势。SRIO通过CRC和8B10B编码确保数据可靠性,并采用CDR技术进行时钟恢复。Xilinx提供的SRIO IP核支持1至4通道,建立在GT收发器之上,包含逻辑层、BUFFER层和PHY层。逻辑层支持多种事务类型和数据包格式。原创 2024-07-10 10:31:09 · 3546 阅读 · 5 评论 -
基于GTX的64B66B编码IP生成(高速收发器二十)
本文介绍了如何配置GTX IP实现64B66B编码,涉及共享逻辑设置、线速率与参考时钟频率配置、编码与时钟界面设置、数据位宽选择、Buffer同步、均衡模式选择、通道绑定与时钟纠正等。同时分析了示例工程中的模块,包括QPLL、复位、用户时钟生成、手动同步等,并讨论了64B66B编码与解码模块的应用。最后通过仿真验证了IP配置的正确性。原创 2024-06-17 10:07:41 · 2159 阅读 · 0 评论 -
详解GTX的64B66B编码(高速收发器十九)
本文介绍了GTX的64B66B编码原理和使用方法。64B66B通过加扰保证零一均衡,使用2位同步头指示帧类型,并通过Gearbox实现数据的串并转换。GTX内部不进行加扰和解扰,需要用户在外部完成。发送时使用外部计数器控制数据发送,接收时通过RX Gearbox实现数据输出,并通过RXGEARBOXSLIP信号和同步头状态实现手动对齐。与8B10B相比,64B66B编码的使用更为简单。原创 2024-06-13 17:58:38 · 3671 阅读 · 11 评论 -
详解SM3算法加密流程(SM3加密算法一)
本文详细介绍了中国的SM3算法,采用消息填充、扩展和迭代压缩过程,输出256位加密数据,适用于电子支付、身份认证和数字签名等。还讨论了算法的实现细节,如迭代运算、常量函数和布尔函数的计算,以及在FPGA上实现时的简化策略。原创 2024-06-09 12:06:58 · 9155 阅读 · 0 评论 -
Xilinx的Aurora8B10B ip原理讲解(高速收发器十六)
Xilinx的Aurora 8B/10B IP基于Aurora 8B/10B协议,提供两种用户数据接口,支持流量控制,简化了数据传输。该IP内部完成组帧、字节对齐、时钟补偿等功能,用户不需直接操作GTX收发器。存在数据延迟,对延迟敏感的设计可能不适用。原创 2024-06-07 16:17:53 · 3107 阅读 · 0 评论 -
Aurora 8b/10b协议(高速收发器十五)
Aurora 8B/10B是一种高速串行链路层协议,支持点对点数据传输。它通过Padding、组帧、8B/10B编码、串行化等流程发送数据,并支持UFC和NFC流量控制机制,防止数据丢失。协议还包括通道初始化、绑定、验证等过程,以及时钟补偿序列,以适应发送端和接收端的时钟速率差异。Xilinx提供了基于该协议的Aurora 8B/10B IP,简化了用户的数据收发操作。原创 2024-06-07 09:49:33 · 2525 阅读 · 0 评论 -
基于GTX 8B10B编码的自定义PHY接收模块(高速收发器十三)
本文详细介绍了自定义PHY协议接收模块的设计,重点解决了GTX IP接收通道的字节对齐问题。通过移位寄存器暂存数据,检测帧头帧尾,生成数据掩码和有效指示信号。设计考虑了起始位和停止位的多种分布情况,确保了对任意字节数据的正确处理。仿真验证了十六种接收格式,确认了模块功能的正确性。最终,该模块将与GTX IP和自定义发送模块综合,形成完整的PHY设计,为下一步的实际验证打下基础。原创 2024-06-03 09:00:00 · 2301 阅读 · 3 评论 -
基于GTX 8B10B编码的自定义PHY发送模块(高速收发器十二)
本文详细介绍了自定义PHY协议发送模块的设计方法,重点在于状态机的实现和FIFO的使用以提高数据发送效率。设计考虑了axi_stream接口与GTX IP小端对齐的差异,并在空闲时发送LFSR码以减少EMI。详细分析了状态机的编码逻辑、FIFO配置和计数器设置,并通过仿真验证了设计的正确性。设计思路清晰,代码实现简洁,为GTX IP的深入应用提供了实用指导。原创 2024-06-02 09:28:51 · 2333 阅读 · 17 评论 -
整理GTX收发器示例工程(高速收发器十一)
本文对Xilinx GTX IP示例工程进行了结构优化,创建了gt_channel模块,整合了复位、MMCM和GTX IP,同时简化了不常用的端口。通过在gt_module模块中多次例化gt_channel,实现了多通道收发器设计,便于共用QPLL时钟。优化后的模块易于复用和扩展,适合自定义PHY设计,提高了代码的可读性和可维护性。原创 2024-05-31 13:01:42 · 2120 阅读 · 9 评论 -
GTX示例工程分析及上板(高速收发器十)
本文分析了Xilinx GTX IP的官方示例工程,包括数据生成、校验和GTX IP处理模块。通过仿真验证了GTX IP的收发功能,然后对工程进行修改以适应上板测试,包括时钟输入和回环设置。强调了接收端数据字对齐的重要性,以确保数据的正确性。最后,说明了如何获取示例工程,并指出GTX IP的灵活性,适合自定义PHY设计。原创 2024-05-30 09:20:34 · 2771 阅读 · 20 评论 -
GTX IP生成及参数详解(高速收发器九)
本文详细介绍了7系列FPGA中GTX收发器的配置过程。首先,通过Transceivers Wizard选择GT收发器并配置QPLL。接着,在Line Rate界面设置线速率和参考时钟,选择收发器位置并启用通道。在Encoding界面配置数据编码、位宽和DRP时钟。讨论了加重、均衡和终端匹配设置,以及PCIE、SATA和PRBS配置,重点在于通道绑定和时钟校正功能。整个配置涉及多个步骤,但通过文章的逐步讲解,读者可以更好地理解每个参数的作用,对于自定义PHY功能至关重要。最终提供了IP配置汇总,展示了时钟配置原创 2024-05-27 11:34:08 · 3854 阅读 · 4 评论 -
IBERT眼图扫描(高速收发器八)
本文介绍了如何使用Xilinx的IBERT IP核对GTX收发器进行眼图扫描和参数优化。首先,文章解释了GTX的回环模式,包括近端和远端回环,以及它们在信号完整性测试中的应用。接着,详细说明了IBERT IP核的配置过程,包括选择测试协议、参考时钟设置,并生成示例工程。在硬件上运行后,通过Vivado工具查看眼图,调整加重和幅值参数,利用眼图扫描功能找到最佳设置。还展示了在无光纤情况下,如何使用回环模式进行信号测试。通过这些步骤,可以优化GTX收发器的传输性能。原创 2024-05-27 09:00:00 · 4018 阅读 · 5 评论 -
科普光纤及光模块(高速收发器七)
光口是用于数据传输的物理接口,与万兆网等通信协议无直接联系。光模块将电信号转换为光信号,通过光纤传输,有SFP+等多种封装。光纤通过全反射传输光信号,有单模和多模之分,接口类型多样。10G以太网有多种命名规则,涉及速率、介质、编码等,如10GBASE-T、10GBASE-SR等。原创 2024-05-23 08:00:00 · 2387 阅读 · 4 评论 -
简要讲解高速信号的眼图_加重_均衡(高速收发器六)
本文深入讨论了高速信号传输中的关键技术:眼图分析、加重处理和均衡器。眼图是评估信号完整性的重要工具,通过眼图可以观察码间串扰和噪声对系统性能的影响。加重技术,包括预加重和去加重,用于补偿信道对方波信号高频分量的衰减。还介绍了线性均衡器CTLE和判决反馈均衡器DFE,它们分别在接收端补偿信道衰减和消除码间串扰。了解这些概念对于FPGA高速数据传输设计至关重要,有助于在问题出现时根据原理推测原因并提出解决方案。原创 2024-05-20 15:30:20 · 3160 阅读 · 0 评论 -
详解8B10B编码(高速收发器五)
8B10B编码是IBM在1983年提出的高速传输编码标准,用于解决时钟恢复和直流偏移问题。它将8位数据编码为10位,通过3B4B和5B6B编码规则实现,保证数据变化,利于时钟恢复。编码包括12个控制字符K码,用于同步和控制。编码过程简单,通过查表法实现,但存在数据损耗问题。原创 2024-05-16 11:22:37 · 4206 阅读 · 20 评论 -
深入解析GTX收发器的时钟架构与数据位宽关系(高速收发器四)
本文详细解析了GTX收发器的时钟系统,包括参考时钟、USRCLK、USRCLK2等信号间的关联。文章利用手册框图,阐释了时钟信号的生成流程,从外部参考时钟的输入、转换,到QPLL或CPLL的驱动。重点分析了并串转换PISO的时钟分频与数据位宽的关系,以及TXUSRCLK与TXUSRCLK2频率的匹配问题。同时,讨论了接收通道中CDR的时钟恢复机制,说明了其在数据采集稳定性中的重要性。通过这些分析,文章旨在帮助读者更清晰地理解GTX收发器时钟管理的复杂性,通过框图直观掌握其工作原理。原创 2024-05-13 10:25:31 · 2538 阅读 · 0 评论 -
如何理解GTX接收通道相关模块?(高速收发器三)
GTX收发器的接收通道关键功能包括模拟前端信号处理、RX OOB序列解码、DFE和LPM自适应滤波器选择、时钟分频与CDR技术同步数据与时钟相位、SIPO串并转换、极性反转、PRBS序列检测、字节对齐、8B/10B解码、弹性缓冲器跨时钟域同步、时钟校正以及通道绑定技术。用户接收端口配置涉及数据位宽和解码方式,以及时钟源选择,确保数据准确传输。原创 2024-05-08 10:16:33 · 3340 阅读 · 0 评论 -
如何理解GTX发送通道的用户接口?(高速收发器二)
本文详细讲解了GTX收发器发送通道的内部结构,包括用户接口、8B/10B编码器、TX Gearbox、TX PIPE Control、Pattern Generator、TX相位插值器控制器、相位调整FIFO、时钟分频器等模块。重点讨论了时钟信号的生成与处理,如TXUSRCLK与TXUSRCLK2的关系,以及D分频器如何调节线速率。同时,还涉及了SATA OOB、PCIE Beacon、极性控制、PISO、TX驱动器预加重和去加重等高级特性。原创 2024-05-08 10:16:16 · 4335 阅读 · 7 评论 -
详解GTX时钟及共享部分(高速收发器一)
本文深入探讨了Xilinx GTX收发器的时钟及共享部分,包括GTX整体结构、输入时钟处理、QPLL与CPLL的使用条件、时钟信号的流向和配置,以及动态重配置的时钟信号。强调了在高速数据传输中,正确配置和管理时钟信号的重要性。原创 2024-04-28 10:27:47 · 7330 阅读 · 18 评论 -
FPGA高速收发器的来源
本文介绍了高速收发器(GT收发器)的背景和重要性。随着ADC芯片采样率提升,传统的并行接口因等长问题和速率限制不再适用。Xilinx 7系列FPGA提供了四种GT收发器:GTP、GTX、GTH和GTZ,分别支持不同线速率,适用于不同系列的FPGA,以满足高速数据传输需求。原创 2024-04-28 10:27:00 · 2355 阅读 · 1 评论 -
xilinx原语详解及仿真之ISERDESE
本文详细讲解了Xilinx FPGA中的ISERDESE2原语,支持单沿和双沿数据传输。首先通过图解和实例,阐述了ISERDESE2在实际应用中可能遇到的数据丢失问题,并介绍了通过BITSLIP引脚进行数据校准的过程。还详细描述了ISERDESE2的端口信号、参数设置,并通过仿真验证了原语的功能。最后提供了使用ISERDESE2进行数据回环测试的Vivado代码设计和仿真结果,以及上板测试的方法和结果,证明了ISERDESE2在校准后能够正确处理串行数据。原创 2024-04-04 22:40:14 · 10457 阅读 · 68 评论 -
AXI-FULL协议详解
本文详细解释了AXI_FULL协议,与AXI_LITE相比,它支持突发读写操作以提高数据传输速率。介绍了AXI_FULL的写地址、写数据、写应答、读地址和读数据通道的信号及其含义,并预告了后续将通过实例来实现AXI_FULL协议。原创 2024-03-29 14:05:05 · 1597 阅读 · 0 评论 -
AXI Lite协议详解
本文详细介绍了AXI4-LITE总线协议,它是ARM公司AMBA规范的一部分,用于高性能、高带宽、低延迟的片内通信。解释了AXI4-LITE的写地址、写数据、写应答、读地址和读数据通道,包括信号定义、时序图和握手机制。AXI4-LITE简化了AXI协议,不支持突发传输,每次只处理单个地址的读写。还讨论了读写操作的注意事项和AXI在FPGA开发中的应用。原创 2024-03-17 11:33:08 · 4334 阅读 · 0 评论 -
Xilinx DDR3的MIG IP信号分析及仿真和上板测试
文章分析了MIG IP的信号,并通过官方例程进行仿真测试,验证了DDR3的读写操作。介绍了MIG IP的用户接口信号,包括地址、指令、数据和控制信号,以及系统时钟和复位信号。最后,文章在开发板上进行了上板测试,使用ILA抓取读写数据时序,并观察LED指示灯确认了MIG IP的正常工作。原创 2024-03-10 11:44:45 · 3175 阅读 · 0 评论 -
详细讲解Xilinx DDR3 的MIG IP生成步骤及参数含义
文章介绍了在Xilinx FPGA上使用DDR3内存的方法,推荐使用官方MIG IP进行设计。详细说明了在Vivado中配置MIG IP的步骤,包括时钟设置、内存类型选择、控制器选项、FPGA选项等。强调了时钟配置的重要性,并提供了对MIG IP参数的详细解释。最后,文章总结了生成MIG IP的关键点,并预告了后续将讨论IP信号的含义和验证过程。原创 2024-03-10 11:42:51 · 2812 阅读 · 0 评论