自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_50810761的博客

持续为大家分享FPGA相关内容

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

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

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

2024-04-04 22:40:14 1682 27

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

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

2024-03-14 11:33:34 1620 5

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

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

2024-02-19 11:22:12 1422 2

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

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

2024-01-31 14:35:43 1656 11

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

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

2023-12-30 21:17:45 1425

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

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

2023-11-28 08:00:00 1493 3

原创 基于FPGA的以太网相关文章导航

以太网相关知识导航界面

2024-04-10 16:48:25 1069

原创 基于FPGA的DDR相关知识导航界面

DDR文章导航界面

2024-04-10 12:16:03 1063

原创 基于FPGA的HDMI设计导航页面

HDMI接口相关文章的导航界面

2024-04-10 10:54:06 516

原创 Xlinx相关原语讲解导航页面

xilinx原语讲解导航

2024-04-09 22:02:09 1181

转载 FPGA从入门到精通(7)-BRAM

本文详细介绍了FPGA中块RAM(BRAM)的工作原理和配置选项。对比了BRAM与DRAM的不同,强调了BRAM在读取操作时的时序逻辑特性。通过Vivado软件的BRAM配置界面,解释了BRAM的接口类型、存储类型、错误校验(ECC)和写使能等高级选项。进一步,讨论了BRAM的三种读写模式,并分析了每种模式的特点和应用场景。此外,还探讨了BRAM的高级功能,如输出寄存器、复位选项和地址变化指示,以及如何在设计中避免读写和写写冲突。

2024-04-05 15:52:45 85

转载 FPGA从入门到精通(6)-DSP48E1(理论篇)

本文概述了XILINX FPGA中的DSP48E1模块的结构和功能,强调了其在FPGA设计中的重要性。介绍了DSP48E1的内部组件,包括寄存器、加法器、乘法器、ALU(算术逻辑单元)和模式检测器,并解释了它们在执行复杂数学运算中的作用。通过DSP48E1 Marco IP的使用,演示了如何实现特定的算术表达式,并讨论了位宽对资源利用的影响。此外,还比较了使用DSP48E1与CLB进行加减法运算的差异,并探讨了DSP48E1的级联能力和PATTERN DETECT功能。

2024-04-05 15:44:38 46

转载 FPGA从入门到精通(5) - 存储单元&CLB总结

本文深入探讨了XILINX FPGA中存储单元的结构和特性,区分了触发器和锁存器,并重点讲解了触发器的应用。通过图示和例子阐释了存储单元的数据输入、时钟使能、复位端等功能,并讨论了存储单元1和存储单元2的异同点。同时结合前文内容,回顾了CLB的整体结构,梳理了LUT、进位链、存储单元以及MUX在FPGA设计中的作用和相互关系。最后通过实例展示了SLICE在CLB中的排列和互联方式,为读者提供了FPGA设计的实用知识。

2024-04-05 15:39:01 41

转载 FPGA从入门到精通(4) - 进位链

本文详细介绍了加法器的基本概念,包括半加器和全加器的工作原理,并扩展到多位加法器的构成。通过二进制加法的例子,解释了加法过程中的进位产生和结果位的计算方法。进一步,联系到XILINX FPGA中进位链的结构和功能,阐释了进位链在FPGA中实现多位加法和减法的作用。通过具体的例子和综合后的原理图,展示了进位链在实际硬件设计中的应用。最后,讨论了进位链级联的限制和对系统时序的影响,提供了设计时的一些考虑和建议。

2024-04-05 15:31:41 45

转载 FPGA从入门到精通(3) - MUX

本文详细介绍了多路数据选择器(MUX)的工作原理和在FPGA中的实现方式。首先解释了MUX的基本功能,即根据地址码选择不同的数据输入并输出。随后,通过具体的Verilog代码示例和对应的网表,阐述了如何使用LUT6构建MUX4_1,并解释了其内部初始化值的设定。进一步探讨了使用LUT6结合MUXF7和MUXF8构建更高位的MUX8_1和MUX16_1的结构和原理,指出了这种设计相较于仅使用LUT6的优势,特别是在保持信号延迟一致性方面。

2024-04-05 15:26:59 29

转载 FPGA从入门到精通(2) - DRAM

本文讲解了FPGA中SLICEL与SLICEM的区别,并介绍了分布式随机存储器(DRAM)的多种形态及其与移位寄存器(SRL)的结合使用。通过实例和仿真结果,比较了使用Verilog代码直接定义RAM与调用DRAM原语/IP的差异,指出了直接编码可能造成的资源过度消耗。最后,文章指导了如何在Vivado中使用IP Catalog生成自定义的DRAM,强调了理解和优化DRAM设计在FPGA开发中的重要性。

2024-04-05 15:22:14 36

转载 FPGA从入门到精通(1) - LUT:(look up table) 查找表

文章详细介绍了FPGA中的LUT(查找表)及其在可编程逻辑块(CLB)中的作用。通过分析Verilog代码和对应的门级电路图,解释了LUT如何通过真值表映射来替代传统的门电路,从而提高FPGA的灵活性和资源利用率。特别强调了LUT6的使用,包括其与两个LUT5和一个多路选择器(MUX)的关系,以及如何通过设置INIT值来实现不同的逻辑操作。

2024-04-05 15:13:43 193

原创 将Xilinx DDR3 MIG IP核的AXI_FULL接口封装成FIFO接口(含源码)

本文介绍了如何使用MIG IP的AXI_FULL接口封装FIFO,以替代以太网传输图片工程中的DDR3读写控制模块。文档详细阐述了MIG IP的AXI_FULL接口生成、参数设置、读写控制模块设计思路和实现细节。通过仿真验证了模块的正确性,并在实际硬件上进行了测试,展示了如何通过AXI_FULL接口实现高效的数据传输和图像显示。

2024-04-04 22:41:15 1111

原创 基于FPGA的AXI_FULL主机模块测试(含源码)

本文通过Verilog HDL实现了一个AXI_FULL主机模块,用于验证读写时序和数据一致性。模块采用状态机控制读写操作,避免同时读写同一地址导致错误。提供了状态转换图、代码实现细节和仿真测试结果,证明了模块设计的正确性。

2024-03-29 14:06:36 1137

原创 AXI-FULL协议详解

本文详细解释了AXI_FULL协议,与AXI_LITE相比,它支持突发读写操作以提高数据传输速率。介绍了AXI_FULL的写地址、写数据、写应答、读地址和读数据通道的信号及其含义,并预告了后续将通过实例来实现AXI_FULL协议。

2024-03-29 14:05:05 591

原创 基于FPGA的OV7725网络摄像头(含源码)

本文档描述了如何将OV7725摄像头采集的图像数据通过FPGA和千兆以太网传输到PC端上位机显示。系统设计包括初始化摄像头、封装图像数据、FIFO暂存、以太网发送和锁相环时钟模块。测试结果显示,帧率可达30帧/秒,且可以通过调整时钟频率提高至60帧/秒。文档提供了获取工程文件的方法。

2024-03-23 12:15:25 1285

原创 基于Verilog HDL的axi-lite主机模块

本文介绍了如何使用Verilog HDL实现一个axi_lite_master模块,该模块将通用接口转换为axi_lite接口协议。首先说明了在Vivado中生成AXI模块的方法,然后提出了两种设计思路:使用忙闲指示信号或FIFO来处理用户端口的数据。最终选择了FIFO方案,详细描述了模块的端口信号、FIFO实例化、读写时序和错误指示信号。最后,通过仿真验证了模块的正确性。

2024-03-23 12:13:03 915 2

原创 AXI Lite协议详解

本文详细介绍了AXI4-LITE总线协议,它是ARM公司AMBA规范的一部分,用于高性能、高带宽、低延迟的片内通信。解释了AXI4-LITE的写地址、写数据、写应答、读地址和读数据通道,包括信号定义、时序图和握手机制。AXI4-LITE简化了AXI协议,不支持突发传输,每次只处理单个地址的读写。还讨论了读写操作的注意事项和AXI在FPGA开发中的应用。

2024-03-17 11:33:08 883

原创 以太网传输图片工程出现的问题总结(含源码)

本文总结了以太网传输图片工程中遇到的问题,主要是图像显示不完整,部分像素丢失。通过分析和调试,发现问题出在读FIFO的深度设置上,实际深度小于预期,导致数据溢出。调整FIFO深度后问题解决。提供了调试思路和解决方案,并提供了获取工程文件的方法。

2024-03-17 11:32:08 634

原创 基于FPGA的OV7725摄像头的HDMI显示(含源码)

本文描述了基于OV7725摄像头的HDMI显示系统设计。FPGA通过SCCB接口初始化摄像头,采集数据暂存于DDR3,最终输出到HDMI显示器。系统包括摄像头驱动、DDR3读写控制和HDMI控制模块。设计利用锁相环生成所需时钟信号,并采用乒乓模式优化数据读写。

2024-03-14 11:35:27 798

转载 FPGA高速设计(六续)

本文讨论了FPGA时序分析中的pessimism removal(CPR)和setup时间的负值问题。CPR用于修正时序分析中的过度悲观估计,当CPR为负值时,意味着目的地时钟路径的延迟被过度减少。文章通过具体例子解释了CPR计算方法,并指出实际值应介于理论计算和时序报告之间的某个点。至于setup时间的负值,通常表示数据在时钟边沿到来之前已经稳定,但由于内部时钟延迟大于数据延迟,可能导致寄存器的固有setup时间表现为负值。文章最后建议设计者信任工具的计算结果,同时提供了对时序报告的深入理解。

2024-03-14 11:25:30 50

转载 FPGA高速设计(六)

本文讨论了FPGA高速设计中扇出问题的影响和解决方法。扇出过大会导致输出波形失真,影响时序收敛,进而影响电路性能。作者通过实例分析了高扇出逻辑的负面影响,并提出了两种减少扇出的方法:寄存器复制和使用max_fanout约束。同时,文章还简要介绍了如何通过软件查看时序报告,以及时序报告中的关键术语,如WNS、TNS、WHS等,为读者提供了时序分析的基础知识。

2024-03-14 11:23:49 47 1

转载 FPGA高速设计(五)

本章节主要讨论了FPGA中乘法器和比较器的实现以及逻辑层级的优化。乘法器通常通过调用IP核实现,而比较器则可以通过LUT资源进行综合。针对大位宽的运算,介绍了使用流水线技术拆分逻辑以降低逻辑层级,满足高速设计需求的方法。同时,分析了if-else和case语句在FPGA中的实现和资源消耗,指出现代综合器下二者差异不大,但需注意条件判断中的大位宽运算对逻辑层级的影响。最后,提出了代码拆分的技巧,以适应高速项目中对逻辑层级和资源的严格要求。

2024-03-14 11:23:19 44 1

转载 FPGA高速设计(四)

在FPGA中实现比较器时,可以构建等于、不等于、大于、小于等比较逻辑。对于等于比较器,通过每位进行“同或”操作后“相与”得到结果;而大于比较器则通过逐位比较和进位逻辑实现。在小位宽情况下,使用LUT资源进行综合较为简单且资源消耗较少;但随着位宽增加,使用CARRY4进位链的综合方式因延迟较小而更为高效。Vivado倾向于使用CARRY链来优化大位宽比较器的逻辑层级和性能,尽管这可能导致LUT资源的增加。设计时需考虑位宽、资源消耗和逻辑层级,以实现高效的比较器设计。

2024-03-14 11:22:20 50 1

转载 FPGA高速设计(三)

本文深入探讨了FPGA中加法器的设计和逻辑层级,特别是24位加法器与相等比较器的结合使用。通过分析K7芯片的SLICE结构,文章指出加法器的关键路径和逻辑层级,强调了大位宽带来时序收敛和资源布局的挑战。文中还讨论了累加器和三输入加法器的实现,揭示了这些结构在资源使用和逻辑层级上的优势。最后,作者建议使用Vivado的TCL命令来自动化分析设计,以便更高效地优化FPGA代码。

2024-03-14 11:21:53 34 1

转载 FPGA高速设计(二)

本文详细介绍了FPGA设计中加法器的实现,特别是针对Xilinx K7芯片。文章首先解释了FPGA的基本逻辑单元SLICE的结构和功能,强调了LUT(查找表)在实现逻辑功能中的核心作用。接着,文章深入探讨了加法器的原理和在FPGA中的两种实现方式:使用LUT和CARRY4的进位链方式,以及仅使用LUT的方式。通过比较不同实现方式的资源占用和逻辑层级,文章指出了在设计时考虑逻辑层级的重要性,并对累加器的设计进行了特别讨论。文章提到了if-else逻辑在FPGA设计中的使用限制,强调了设计时应避免复杂的逻

2024-03-14 11:21:27 51 1

转载 FPGA高速设计(一)

这段内容讨论了FPGA高速设计的重要性和实践,强调通过代码优化提升设计性能以节省成本和提高开发效率。作者分享了Xilinx 7系列和UltraScale系列FPGA的逻辑延迟与线延迟比例,指导如何评估和优化设计。通过实例,作者阐释了逻辑层级在FPGA设计中的关键作用,并指出理论与实践间的差异。最后,作者承诺将来会深入分析Kintex-7芯片结构,帮助读者更有效地进行FPGA设计。

2024-03-14 11:20:46 49 1

原创 将Xilinx DDR3 MIG IP核的APP接口封装成FIFO接口(含源码)

文档介绍了如何将Xilinx DDR3 MIG IP核封装成FIFO接口,以便于在图像处理等场景中存储和处理大量数据。内容包括设计思路、状态机实现、读写FIFO配置、顶层模块连接以及仿真测试。通过封装,简化了读写操作,增加了乒乓模式以优化数据刷新。文档还提供了获取工程文件的方法。

2024-03-10 11:56:14 1341 2

原创 Xilinx DDR3的MIG IP信号分析及仿真和上板测试

文章分析了MIG IP的信号,并通过官方例程进行仿真测试,验证了DDR3的读写操作。介绍了MIG IP的用户接口信号,包括地址、指令、数据和控制信号,以及系统时钟和复位信号。最后,文章在开发板上进行了上板测试,使用ILA抓取读写数据时序,并观察LED指示灯确认了MIG IP的正常工作。

2024-03-10 11:44:45 1007

原创 详细讲解Xilinx DDR3 的MIG IP生成步骤及参数含义

文章介绍了在Xilinx FPGA上使用DDR3内存的方法,推荐使用官方MIG IP进行设计。详细说明了在Vivado中配置MIG IP的步骤,包括时钟设置、内存类型选择、控制器选项、FPGA选项等。强调了时钟配置的重要性,并提供了对MIG IP参数的详细解释。最后,文章总结了生成MIG IP的关键点,并预告了后续将讨论IP信号的含义和验证过程。

2024-03-10 11:42:51 1361

原创 从内部结构分析DDR2到DDR3的变化及DDR3原理图分析

文章介绍了DDR3内存相对于DDR2的主要变化,包括接口时钟频率提升至内核时钟的4倍,预取长度增加到8,CL和AL时钟周期数增加,并引入了写入延时参数CWL。DDR3新增了复位引脚和ZQ校准引脚,支持点对点连接和fly-by拓扑结构,引入写入均衡技术,简化了PCB设计并提高了信号质量。同时,文章还简要分析了DDR3的原理图,包括电源和引脚的连接。

2024-03-10 11:41:39 800

原创 简要讲解OV7725摄像头

文档详细介绍了OV7725摄像头的功能、寄存器配置、RGB565图像输出时序和帧率计算。解释了SCCB与I2C协议的区别,并提供了OV7725的原理图和引脚说明。文档还讨论了如何通过SCCB接口配置摄像头以输出RGB565格式的图像数据,并提供了获取手册的方法。

2024-03-04 19:11:23 1754

原创 以太网模块问题及优化

本文档讨论了在使用以太网模块发送摄像头数据时遇到的两个问题:一是UDP发送模块忙闲指示信号的延迟问题,二是数据包长度错乱问题。提出了解决方案,包括重新生成忙闲指示信号和增加数据长度寄存器。修改后的工程通过ARP应答和UDP回环测试验证了数据链路的稳定性。文档还提供了获取更新后工程的途径,并鼓励读者在有疑问时留言。

2024-03-02 13:59:34 598

原创 从内部结构分析DDR到DDR2的变化

文章介绍了DDR2内存的设计思路和与DDR的主要区别。DDR2通过保持内核时钟频率不变,提高IO端口时钟频率,实现数据传输速率的翻倍。DDR2支持更多bank和更高的预取,引入了差分DQS信号和OCD校准技术以确保数据传输稳定性。同时,DDR2简化了PCB设计,通过内置终结(ODT)技术减少了信号反射。此外,DDR2调整了时序参数,引入了前置CAS、附加潜伏期和写入潜伏期。文章还提供了获取相关手册和文档的方法。

2024-03-01 09:44:50 681

原创 基于fpga的ds1337读写控制

本文介绍了如何使用FPGA实现对DS1337实时时钟芯片的读写控制。首先,通过初始化日历寄存器,然后定期读取数据,使用ILA工具抓取时序以验证DS1337的正常工作。接着,通过I2C总线与DS1337通信,并采用74HC595芯片驱动4位数码管显示时间。文章还提供了顶层模块框图和I2C读写时序的分析,最后通过ILA抓取的数据验证了DS1337和I2C模块的功能。工程文件可通过公众号获取。

2024-02-28 09:55:21 1015

空空如也

空空如也

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

TA关注的人

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