自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

详解FPGA及硬件电路开发

每周不定时更新,持续为大家分享FPGA相关内容,谢谢关注

  • 博客(146)
  • 收藏
  • 关注

原创 xilinx原语详解及仿真之ISERDESE

本文详细讲解了Xilinx FPGA中的ISERDESE2原语,支持单沿和双沿数据传输。首先通过图解和实例,阐述了ISERDESE2在实际应用中可能遇到的数据丢失问题,并介绍了通过BITSLIP引脚进行数据校准的过程。还详细描述了ISERDESE2的端口信号、参数设置,并通过仿真验证了原语的功能。最后提供了使用ISERDESE2进行数据回环测试的Vivado代码设计和仿真结果,以及上板测试的方法和结果,证明了ISERDESE2在校准后能够正确处理串行数据。

2024-04-04 22:40:14 9444 63

原创 基于FPGA的以太网传输图片通过HDMI显示(含源码)

本文介绍了如何通过以太网传输图片,并使用DDR3存储数据,再通过HDMI接口在显示器上清晰显示。涉及UDP接收数据、DDR3读写控制、HDMI模块封装、锁相环时钟生成和顶层模块设计。通过设置巨型帧和网络调试助手发送图片数据,最终实现在FPGA开发板上的高清晰度图像显示。还讨论了乒乓操作在刷新效果中的重要性,并提供了获取工程文件的方法。

2024-03-14 11:33:34 4059 15

原创 基于FPGA的实用UDP设计(包含源工程文件)

本文介绍了对FPGA上UDP协议实现的优化设计,通过整合ARP、ICMP、UDP协议模块,实现了一个更高效的网络通信模块。新设计减少了资源消耗,简化了用户接口,并通过上板测试验证了其功能。文章详细描述了以太网接收和发送模块的工作原理,以及如何通过状态机和控制逻辑处理不同协议的数据。最终,通过wireshark和网络调试助手展示了UDP数据的收发过程,证明了设计的实用性和有效性。

2024-02-19 11:22:12 4198 23

原创 基于FPGA的GMII与RGMII接口相互转换(包含源工程文件)

本文主要是实现GMII和RGMII接口的相互转换,因为在FPGA内部数据处理时,往往是单沿传输数据,所以需要通过一个模块把双沿传输的数据转换为单沿传输的数据,然后传输给FPGA内部模块进行处理。

2024-01-31 14:35:43 5928 26

原创 【惊喜揭秘】xilinx 7系列FPGA时钟区域内部结构大揭秘,让你轻松掌握!

本文对BUFG、BUFH、BUFR、BUFIO、BUFMR进行详细讲解,最后在通过一张图进行总结,以后只需要通过最后的图就知道7系列的FPGA的时钟区域内各个缓冲器的使用规则以及时钟输入管脚的时钟规则。

2023-12-30 21:17:45 4417 4

原创 TMDS算法原理及Verilog HDL实现(附带源代码及仿真激励文件)

本文的特点在于详细讲解了TMDS算法的每个步骤的具体含义,做到真正理解算法的含义,最后使用Verilog去实现该算法,并且使用modelsim对算法进行仿仿真。

2023-11-28 08:00:00 3157 5

原创 整理及仿真Xilinx的SRIO示例工程(高速收发器三十)

本文介绍了Xilinx SRIO IP核的仿真和示例工程整理。仿真展示了维护端口配置、复位时序、初始化成功信号、流写事务和响应时序。整理示例工程时,建议将共享逻辑置于顶层以方便扩展,并展示了通道模块和时钟复位模块的RTL视图及参考代码。此外,还讨论了测试数据生成模块,该模块用于产生ireq通道数据并响应treq通道读请求,包括状态机设计和数据生成代码。

2025-02-14 20:26:38 1093

原创 2024年度总结

迟来的2024年度总结,本文主要包括创作经历的回顾、个人成长与突破、以及职业与生活的平衡。

2025-01-23 20:11:03 1259 8

原创 fpga通过uart向上位机传输ad7606采集数据

通过串口将AD7606采集的8路ADC数据传输至PC显示。AD7606模块将采集的16位补码数据转换为电压值,并转换为BCD码。系统设计包括数据处理模块和UART字节发送模块,前者负责数据转换,后者负责将数据以ASCII编码形式发送。

2025-01-21 20:07:37 808

原创 基于FPGA的AD7606并行接口驱动程序仿真及上板

本文介绍了AD7606并行接口驱动程序的仿真及上板测试过程。首先,使用Matlab生成200KHz采样率下的2KHz正弦波二进制文件。接着,在Altera开发板上,通过Quartus和Modelsim进行联合仿真,测试AD7606驱动代码。仿真中,使用readmemb函数读取二进制数据,模拟AD7606的输入数据。上板测试时,使用Signal Tap II逻辑分析器验证接口时序,确认采样率和数据采集正确。测试结果与预期一致,验证了驱动程序的正确性。最后提供了获取Quartus和Vivado工程文件的方式。

2024-12-25 11:30:00 818

原创 基于FPGA的AD7606并行接口驱动程序

本文介绍了基于FPGA实现AD7606并行接口数据采集的方法。首先,通过状态机和计数器实现AD7606的复位、采样锁存、数据读取等时序控制。在FPGA中,使用计数器确保信号持续时间满足AD7606要求,如RESET、CONVSTA/B的持续时间。状态机在检测到BUSY下降沿后读取数据,CS和RD信号的生成也通过计数器控制。

2024-12-18 11:30:00 1347 3

原创 详解AD7606引脚及接口时序参数

AD7606是一款8通道16位同步采样ADC芯片,支持200KSPS采样率,可选±5V或±10V输入电压范围,5V供电。具有并口和SPI串口通信接口,8通道同时采样,简化PCB设计。内部无配置寄存器,通过引脚配置功能。支持过采样,但通常不使用。数据可通过并行或串行接口读取,FPGA常采用并行模式。

2024-12-11 11:30:00 2753

原创 基于FPGA的WM8371从机模式驱动设计(含源码)

本文介绍了基于FPGA的WM8371从机模式驱动设计,包括系统框图、I2S模式时序、程序设计和工程仿真。在从机模式下,FPGA提供三个时钟信号,采用24位音频数据和可配置的采样率。详细描述了时钟分频、寄存器配置、数据接收和发送模块的设计。通过仿真验证了时钟分频、数据采集和输出的正确性,并展示了上板测试结果。用户可以根据需要修改顶层参数来设置采样率和数据位宽。

2024-12-04 11:30:00 681

原创 记录开发WM8371主机模式遇到的问题

本文描述了在编写WM8371驱动时遇到的问题及其解决过程,最初选择了主机模式和I2S左对齐数据传输模式,但在50MHz FPGA时钟下遇到了耳机输出噪声问题。通过硬件回环测试排除了硬件故障,确定问题在于FPGA代码。分析发现,由于系统时钟频率较低,导致DACDAT信号与BCLK上升沿重合,违反了WM8371的时序要求。解决方案是将系统时钟频率提高至100MHz,以满足BCLK的建立和保持时间要求,从而消除噪声。

2024-11-27 11:30:00 762

原创 基于FPGA的WM8371主机模式驱动设计(含源码)

本文介绍了基于FPGA的WM8371音频编解码器驱动模块,包括寄存器配置、音频采集和输出模块。音频采集模块通过I2S接口采集ADC数据,音频输出模块将数据通过DAC输出。文中详细描述了I2C配置过程、I2S左对齐模式时序、音频数据位宽参数化设计,以及如何同步和转换数据。最后提供了上板测试结果,包括麦克风输入和左右声道音频输入测试,并说明了如何修改ADC/DAC采样率。工程代码可在公众号后台获取。

2024-11-20 11:45:00 1013

原创 详解wm8371音频采集芯片的寄存器

本文详细介绍了WM8731编解码器的寄存器配置和电路设计。WM8731具有24位ADC和DAC,支持16至32位音频输入字长和8kHz至96kHz采样率。阐述了如何通过I2C或三线模式配置内部寄存器,并详细讲解了11个寄存器的功能,包括左右声道线路、耳机放大器、模拟音频路径控制、数字音频路径控制、省电模式、数字音频接口格式和复位寄存器。强调了省电模式、音频输入和DAC输出静音设置、I2S协议模式和格式设置、采样率设置的重要性。文档内容基于WM8731手册,提供了设计思路和配置参考。

2024-11-15 12:15:00 1431

原创 详解I2S协议

音频采集芯片WM8731的I2S协议包括ADCRC、DACRC、BCLK、ADCDAT和DACDAT五个信号。I2S协议有四种模式:左对齐、右对齐、I2S和DSP,推荐左对齐或I2S模式。WM8731音频数据可编程为16、20、24或32位。

2024-11-06 20:35:21 1562

原创 详解Xilinx的10G PCS PMA IP(万兆以太网二)

本文介绍了在Xilinx FPGA上实现万兆以太网通信的三种方法,重点讲解了使用10G PCS PMA作为PHY层的方案。详细阐述了10GBASE-R/KR的工作原理、XGMII接口时序、内核时钟分析及IP的功能信号与调试信号,为设计万兆以太网通信系统提供了理论基础和实践指导。

2024-10-30 18:00:00 2522

原创 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 2035 5

原创 万兆以太网接口演变(万兆以太网一)

万兆以太网遵循IEEE 802.3ae规范,最初使用XGMII接口与PHY芯片通信,但因时钟频率高导致布线困难。随后发展出XAUI接口,通过XGXS转换简化为8对差分信号线,支持更长布线。随着Serdes技术发展,FPGA内部可实现PHY层设计,简化硬件设计。现代FPGA使用GTX/GTH/GTY等技术构建高速接口,实现灵活且简单的设计。

2024-10-18 20:31:00 1993

原创 详解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 2147 5

原创 Xilinx的JESD204B PHY层IP仿真及上板测试(JESD204B四)

本文详细介绍了在FPGA上配置和仿真JESD204B PHY IP的全过程。首先,在IP Catalog中配置了PHY参数,包括收发器数量和动态线速率范围。然后,通过分析示例工程,理解了时钟处理、数据生成和检测模块的功能,并重点观察了axi_lite配置接口的时序。仿真验证了配置过程和数据收发的一致性。最后,针对开发板上板测试,对端口信号和时钟处理进行了必要的修改,并使用ILA捕获关键信号,成功验证了PHY IP的通信功能。整个过程展示了从理论配置到实际验证的完整步骤。

2024-09-26 12:33:30 1873

原创 详解JESD204B子类一的确定性延时(JESD20B三)

JESD204B系统中,确定性延迟的实现依赖于精确的时钟同步和数据对齐。通过SYSREF信号同步发送端(TX)和接收端(RX)的本地多帧时钟(LMFC),确保所有通道在LMFC的相同边沿发送和接收数据。ILAS序列用于标注数据的开始和结束,帮助接收端识别帧边界。弹性buffer(RBD)调整数据输出点,以补偿通道间的延迟差异,保证数据对齐输出。若RBD设置不当,可能引入不确定性延迟。因此,需要通过实验确定RBD的最优值,以维持在不同条件下的延迟一致性,确保系统性能的可靠性和预测性。

2024-09-20 08:05:14 1856 2

原创 JESD204B数据链路建立过程(文末赠书)

JESD204B协议通过一系列同步过程确保数据链路的建立和数据传输的准确性。发送端首先进行时钟同步,然后接收端通过SYNC信号触发发送端发送K28.5字符进行码组同步。完成码组同步后,发送端在LMFC边沿发送初始通道对齐序列(ILAS),用于验证链路参数和对齐所有通道。接收端利用CDR技术恢复数据,并在ILAS的帮助下进行通道间数据对齐。数据链路层的8B10B编码和解码确保数据的准确性,而加扰技术用于减少电磁干扰。整个过程涉及精确的时序控制和参数匹配,以实现高效的数据同步和传输。

2024-09-11 08:36:49 1895 1

原创 初始JESD204B高速接口协议(JESD204B一)

JESD204B是用于高速ADC/DAC与逻辑器件通信的串行接口协议,通过减少数据线对和简化PCB布线,解决了LVDS接口在高速数据传输中的布线难度和时序问题。JESD204B支持多通道同步和确定性延时,适用于高速数据传输需求。然而,由于需要锁相环和缓冲器,JESD204B的功耗和数据传输延迟可能高于LVDS。JESD204B包含多种工作模式,其中子类1模式因其复杂性和广泛的应用而受到青睐。JESD204B的结构包括传输层、加扰、链路层和物理层,各层协同工作以实现高效的数据传输。

2024-09-06 17:34:34 2233

原创 Aurora 64B 66B两种流量控制的使用方式(高速收发器二十七)

本文整理并测试了Aurora 64B/66B IP的UFC和NFC流控功能。通过仿真和上板实验,验证了接收端在FIFO溢出时通过NFC暂停发送端数据,以及按键触发UFC发送优先级高的数据帧的功能。实验包括数据帧生成、NFC暂停和UFC紧急数据发送,结果表明流控机制有效,确保了数据传输的稳定性和可靠性。

2024-08-26 19:14:31 1483

原创 Aurora 64B/66B的流控原理(高速收发器二十六)

本文深入讲解了Aurora 64B/66B协议的流控原理,包括本地流量控制(NFC)和用户流量控制(UFC)。NFC用于防止接收端FIFO溢出,通过发送信号让发送端暂停数据传输。UFC允许发送高优先级数据帧。文章通过示例工程和仿真结果,验证了两种流控模式的功能和效果,展示了如何在实际设计中应用这些流控机制。

2024-08-20 09:55:08 2153

原创 整理Aurora 64B/66B示例工程并上板测试(高速收发器二十五)

本文介绍了Aurora 64B/66B IP的整理、封装、测试和上板过程。首先,对每个高速收发器进行复位逻辑和时钟信号封装。然后,生成测试数据并连接各模块,完成顶层模块设计。接着,进行仿真验证,确认数据收发正常。最后,将工程下载到开发板,通过ILA抓取数据,验证实际硬件中的数据传输和初始化过程。

2024-08-14 15:31:07 2353 19

原创 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 2603

原创 详解Xilinx的SRIO IP的配置参数(高速收发器二十九)

本文指导了如何在Vivado中配置Xilinx SRIO IP核,包括选择数据链路、线速率、参考时钟频率等,并设置了缓冲区深度、设备ID和流量控制。接着分析了SRIO IP的示例工程,涉及发送和接收数据模块,说明了如何初始化、获取包头、发送数据以及解析和响应接收到的数据包。

2024-08-01 11:16:49 2093 7

原创 基于FPGA的数字信号处理导航

基于FPGA、matlab的数字信号处理及调制解调算法的仿真及实现

2024-07-26 10:40:08 898 1

原创 基于64B66B编码的自定义协议phy层上板测试(高速收发器二十三)

本文对64B66B自定义PHY进行了总体仿真和上板测试,验证了高速收发器模块、发送模块、接收模块的功能正确性。设计了测试数据生成模块,用于上板调试和控制尾端掩码信号。顶层模块包含两个高速收发器和自定义PHY层模块,通过光纤回环传输数据。仿真验证了接收端同步模块和收发数据的时序正确性。上板测试中,通过ILA调试信号,测试了不同尾端数据掩码情况下的收发数据,结果表明设计正确。

2024-07-23 12:07:48 1376

原创 基于GTX的64B/66B编码的自定义接收模块(高速收发器二十二)

本文完成了64B66B自定义PHY的顶层模块设计,包括发送、加扰、接收对齐、解扰和接收数据模块。重点设计了接收端同步模块,通过检测同步头状态调整串并转换起始位置实现数据对齐,并增加了同步失败的判断条件。接收数据模块负责解析数据输出到axi_stream。通过仿真验证了设计的正确性,准备进行上板测试。

2024-07-17 10:54:13 1090 2

原创 简要讲解Xilinx SRIO IP(高速收发器二十八)

本文概述了串行RapidIO(SRIO)技术,一种基于SERDES的高速串行总线,相较于传统并行总线在高速传输中具有优势。SRIO通过CRC和8B10B编码确保数据可靠性,并采用CDR技术进行时钟恢复。Xilinx提供的SRIO IP核支持1至4通道,建立在GT收发器之上,包含逻辑层、BUFFER层和PHY层。逻辑层支持多种事务类型和数据包格式。

2024-07-10 10:31:09 3106 6

原创 基于GTX的64B66B编码的自定义协议发送模块(高速收发器二十一)

本文介绍了64B66B组帧原理,包括数据帧和控制帧,以及以太网控制协议。接着整理了高速收发器示例工程,便于后续扩展。设计了自定义PHY发送模块,采用axi_stream接口,通过FIFO暂存数据,实现组帧发送。详细分析了模块代码,包括端口信号、FIFO设计、移位寄存器、计数器等关键部分。最后,通过仿真验证了模块的正确性,证明了设计无误。

2024-07-01 09:32:13 1780 3

原创 Vscode配置Verilog开发环境(二)

本文分享了如何使用VSCode内置代码片段功能替代插件,并通过自定义模板提高编码效率。还提到了代码风格对齐的重要性,以及如何通过列选操作简化模块例化过程。

2024-06-24 09:15:15 2989 11

原创 基于GTX的64B66B编码IP生成(高速收发器二十)

本文介绍了如何配置GTX IP实现64B66B编码,涉及共享逻辑设置、线速率与参考时钟频率配置、编码与时钟界面设置、数据位宽选择、Buffer同步、均衡模式选择、通道绑定与时钟纠正等。同时分析了示例工程中的模块,包括QPLL、复位、用户时钟生成、手动同步等,并讨论了64B66B编码与解码模块的应用。最后通过仿真验证了IP配置的正确性。

2024-06-17 10:07:41 2018

原创 详解GTX的64B66B编码(高速收发器十九)

本文介绍了GTX的64B66B编码原理和使用方法。64B66B通过加扰保证零一均衡,使用2位同步头指示帧类型,并通过Gearbox实现数据的串并转换。GTX内部不进行加扰和解扰,需要用户在外部完成。发送时使用外部计数器控制数据发送,接收时通过RX Gearbox实现数据输出,并通过RXGEARBOXSLIP信号和同步头状态实现手动对齐。与8B10B相比,64B66B编码的使用更为简单。

2024-06-13 17:58:38 3286 12

原创 基于FPGA的SM3加密算法优化(SM3加密算法三)

本文通过流水线优化,提升了FPGA实现的SM3加密算法性能。在消息扩展和迭代过程中,通过插入触发器将并行计算转换为串行,大幅提高时钟频率至200MHz。详细描述了代码实现,并经过仿真和上板测试验证了优化效果。

2024-06-11 11:14:06 1452

原创 整理Aurora8B10B官方示例工程(高速收发器十八)

本文介绍了如何封装和测试Xilinx Aurora 8B/10B IP的多通道收发功能。首先整理了官方示例工程,将共享逻辑和独立逻辑分离,简化了多通道收发器的例化。然后调用两个收发器进行仿真,验证了数据收发的正确性。最后在开发板上进行了测试,通过ILA抓取的发送和接收数据时序,验证了封装的双通道收发器功能正常,为后续高速收发器IP的封装提供了方法。

2024-06-11 11:13:30 1411 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除