FPGA代码分享
文章平均质量分 92
小小FPGA技术人员一名,将自己工作学习中的有关代码分享,促使自己努力学习,如有相关技术人员,希望能与之交流分享。感谢!
C.V-Pupil
小小FPGA技术人员一名,将自己工作学习中的有关代码分享,促使自己努力学习,如有相关技术人员,希望能与之交流分享。感谢!
展开
-
基于光口的以太网 udp 回环实验
本章实验我们通过网络调试助手发送数据给 FPGA,FPGA通过光口接收数据并将数据使用 UDP 协议发送给电脑。原创 2024-01-18 22:00:00 · 1779 阅读 · 10 评论 -
基于0v2640的光口视频传输
本节实验任务是使用开发板上的两个光纤接口实现视频图像的传输,视频图像由 OV2640 摄像头模块采集数据, 再通过开发板上的其中两路光模块进行视频信号的光纤发送和接收,然后在 HDMI 显示器上显示出来。原创 2024-01-16 20:30:00 · 1127 阅读 · 0 评论 -
基于 OV2640 的以太网 RGMII 图像传输系统设计
本节主要讲述了一种对数据以行为单位的编码方法。该方法采用摄像头采集数据后经由 FPGA 的 RGMII 接口通过 UDP 协议实现以太网图像传输。以该方法进行 UDP 协议下的以太网图像传输,可以有效缓解 UDP 协议的差错控制缺陷带来的传输质量不佳问题。原创 2023-12-26 00:45:00 · 1308 阅读 · 0 评论 -
以太网初始化设计(MDIO 控制器)
PHY芯片根据不同的需求,会有不同的工作模式,例如需要设置其以太网通信速率为千兆、百兆、十兆或自动协商,而处理器也需要知道其连接状态,例如需要知道网络是否已经连接通,以及当前的链接速率是多少。为了实现这些功能,IEEE 在以太网标准 IEEE 802.3 中使用若干条款定义了用处理器用来管理PHY 芯片的标准控制接口——MDIO。本章,我们将学习 MDIO 接口相关知识,并设计相应的驱动模块,通过 MDIO接口带领大家学习如何配置 PHY 芯片。原创 2023-12-18 17:36:20 · 1391 阅读 · 0 评论 -
千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP回环)
经过前面章节的理论讲解和模块设计,相信大家已经对以太网传输以及如何实现以太网通信有了一定的了解。为了验证前面章节的内容,我们将进行以太网回环案例。通过判断回环数据是否一致,对前面章节内容和设计的模块进行验证。原创 2023-10-10 15:23:00 · 1899 阅读 · 1 评论 -
千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP接收)
在前面我们对以太网 UDP 帧格式做了讲解,UDP 帧格式包括前导码+帧界定符、以太网头部数据、IP 头部数据、UDP 头部数据、UDP 数据、FCS 数据,以太网接收模块同样是按照该格式接收数据。原创 2023-10-08 21:30:00 · 1558 阅读 · 5 评论 -
千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP发送)
本章将讲解千兆以太网传输层 UDP 协议的相关内容。学习 UDP 层协议的内容,核心也是明确该协议的数据字段格式。在此基础上,理解其“不可靠、无连接”的传输特性。同时,结合前面章节的内容,进一步深化理解用户数据、UDP、IP、MAC 层的层层打包嵌套关系。原创 2023-09-22 20:00:00 · 2702 阅读 · 1 评论 -
千兆以太网网络层 IP 协议介绍与 IP 校 验和算法实现
本章将讲解千兆以太网网络层 IP 协议的内容及算法实现。IP 层的实质是在MAC 层的基础上将原有协议进行一个更加细化的定义而得。它最核心的意义,就是让 IP 地址参与到网络数据传输中,让硬件和硬件的通信传输,从网卡号作为唯一的身份识别标志,变为以 IP 地址作为身份识别标志。而 IP 层最核心的内容,就是 IP 协议数据字段的格式。原创 2023-09-22 19:00:00 · 515 阅读 · 0 评论 -
千兆以太网硬件设计及链路层 MAC 协议格式
从本章开始,将分享千兆以太网设计的相关知识。将为大家分享千兆以太网硬件设计及链路层 MAC 协议格式、网络层 ARP 协议的原理与FPGA 实现、网络层 IP 协议介绍与 IP 校验和算法实现、网传输层 UDP 协议原理与FPGA 实现、千兆以太网 UDP 回环测试等实验。原创 2023-09-14 17:53:24 · 856 阅读 · 0 评论 -
千兆以太网网络层 ARP 协议的原理与 FPGA 实现
本节对以太网电路接口和以太网帧协议做简单的介绍,并在了解了以太网帧协议后,在 FPGA 上实现基于以太网 UDP 帧的发送模块的设计与验证。原创 2023-09-14 17:50:24 · 626 阅读 · 0 评论 -
CRC校验原理及实现
现代数据通信要求信息传输具有高度可靠性 ,即误码率要足够低。然而 ,数据信号在传输过程中不可避免地会受到噪声干扰 ,或者信道不理想 ,从而造成的码间干扰而产生差错 ,即出现误码。我们通常是通过一个校验码去判断接收的消息是否出现差错。信息在发送时,发送端会通过某个算法得到一个值,这个值被称为校验码。通信时发送端在发送消息时将校验码加在信息末端,接收端以相同的算法得到一个校验码,将发送端和接收端的校验码进行对比来判断是否正确接收到了信息。原创 2023-09-14 17:58:33 · 1966 阅读 · 0 评论 -
RGMII 与 GMII 转换电路设计
RGMII 是 IEEE802.3z 标准中定义的千兆媒体独立接口(Gigabit Medium Independent Interface)GMII 的一个替代品。相较于 GMII 接口,RGMII 接口可以在保证传输速率不变的情况下减少管脚数。RGMII 接口通过过在时钟的上升和下降沿分别传输 1 次数据,并对控制信号采用多路复用的方式来降低管脚数量的。RGMII 数据在时钟的上升沿和下降沿均进行采样。原创 2023-09-07 17:20:03 · 1317 阅读 · 0 评论 -
UART 通信-使用VIO进行板级验证
本章将学习 UART 通信的原理及其硬件电路设计,并使用 FPGA 来实现 UART 通信中的数据发送和接收部分设计。在仿真验证时除进行正常的功能仿真以外,还将在 Vivado 中使用Virtual Input/Output(VIO)工具进行板级验证,具体方法是:通过 VIO 输入需要通过串口发送出去的数据,并且控制 FPGA 将待发送的数据发送出去,并在串口助手中查看 PC 端接收到的数据。原创 2023-09-04 17:38:53 · 783 阅读 · 0 评论 -
基于OV2640/ OV5640 的图像采集显示系统
本节将在实验“基于 DDR3 的串口传图帧缓存系统设计”实现一个图像采集显示应用系统,来设计 OV2640OV5640应用系统中所需的基本应用逻辑电路。原创 2023-08-29 11:33:40 · 2845 阅读 · 2 评论 -
基于 OV5640 的图像采集显示系统(DVP 接口时序逻辑设计)
上一节,我们已经完成了 OV5640 初始化逻辑的介绍。接下来,将要开始完成 DVP 接口的时序设计。原创 2023-08-29 18:00:00 · 2893 阅读 · 0 评论 -
基于 OV2640 的图像采集显示系统(camera_init 摄像头初始化模块)
本节将在实验“基于 DDR3 的串口传图帧缓存系统设计”实现一个图像采集显示应用系统,来设计 OV2640 应用系统中所需的基本应用逻辑电路。原创 2023-08-29 18:00:00 · 1434 阅读 · 0 评论 -
SCCB与IIC的异同及FPGA实现的注意事项
IIC接口有比较广泛的应用,而SCCB(Serial Camera Control Bus,串行摄像头控制总线)是由OV(OmniVision的简称)公司定义和发展的三线式串行总线,该总线控制着摄像头大部分的功能,包括图像数据格式、分辨率以及图像处理参数等。主要用于摄像头控制,可以说SCCB是低配版的IIC。因为IIC可以实现多主多从,IIC规范文档中有提到多主机的时钟同步、总线仲裁功能。而SCCB的文档中则没有这部分内容,因为一般来说都是单个主机控制多个摄像头,只有一主多从的功能。原创 2023-08-21 15:26:51 · 657 阅读 · 1 评论 -
使用IIC进行多数据读取测试
使用已完成的IIC模块,将256个数据写入,然后将256个数据读出,测试该模块写入与读取是否正常。原创 2023-08-21 09:26:25 · 589 阅读 · 2 评论 -
I2C连续读写实现
上文的 i2c_bit_shift 模块说完了,我们发现实现一个字节的写操作还是可以实现的,实际的应用中我们不可能只写一个字节的数据,那么此时这个 i2c_bit_shift 模块用来连续写就有些不方便了,从上面的仿真代码就能看出来,这时就需要一个上层模块来控制这个i2c_bit_shift 模块去连续写,这样就方便一些。原创 2023-08-15 11:26:43 · 2649 阅读 · 1 评论 -
基于 FPGA 的彩色图像灰度化的设计实现(rgb2gray | image_stitche_x)
image_stitche_x 模块:将串口接收的尺寸为 400480 大小的彩色图像与灰度化处理后的 400480 大小的图像数据以左右形式合并成一张 800*480 的图像。原创 2023-05-17 11:10:25 · 1829 阅读 · 0 评论 -
I2C接口控制设计与实现
根据完整的 I2C 传输时序,提取出通用的底层传输单元。原创 2023-08-11 12:21:13 · 992 阅读 · 0 评论 -
I2C 接口控制器理论讲解
I2C(Inter-Integrated Circuit BUS) 集成电路总线,它是一种串行通信总线,使用多主从架构,由 Philips 公司开发的一种简单、双向二线制同步串行总线,只需要两根线即可在连接于总线上的器件之间传送信息。 I2C 通讯协议和通信接口在很多工程中有广泛的应用,如数据采集领域的串行 AD,图像处理领域的摄像头配置,工业控制领域的 X 射线管配置等等。除此之外,由于 I2C 协议占用引脚特别少,硬件实现简单,可扩展型强,现在被广泛地使用在系统内多个集成电路 (IC)间的通讯。原创 2023-08-11 12:19:24 · 2454 阅读 · 3 评论 -
基于 DDR3 的串口传图缓存系统设计实现(Native | Verliog | Vivado)
结合串口接收模块和 tft 显示屏控制模块,设计一个基于 DDR3 的Native接口串口传图帧缓存系统。原创 2023-07-21 10:08:10 · 563 阅读 · 0 评论 -
基于 DDR3 的串口传图缓存系统设计实现(fifo_mig_native_fifo )
结合串口接收模块和 tft 显示屏控制模块,设计一个基于 DDR3 的串口传图帧缓存系统。原创 2023-07-21 10:06:30 · 699 阅读 · 2 评论 -
基于 FPGA 的 HDMI/DVI 显示
本节对 DVI 电路接口和 DVI 数据链路原理做简单的介绍,并在 FPGA 上实现基于 DVI接口的显示器彩条显示实验。原创 2023-07-12 11:09:12 · 4808 阅读 · 4 评论 -
基于 DDR3 的native接口串口局部传图缓存系统设计实现(整体设计)
结合串口接收模块和 tft 显示屏控制模块,设计一个基于 DDR3—Native接口的串口传图帧缓存系统。原创 2023-07-07 17:44:06 · 596 阅读 · 1 评论 -
DDR3 控制器 MIG IP 详解完整版 (native&Vivado&Verilog)
本节主要是介绍 Xilinx DDR 控制器 IP 的创建流程、IP 用户使用接口 native 协议介绍和IP 对应的 Example Design 的仿真和上板验证。原创 2023-07-07 17:41:28 · 16970 阅读 · 8 评论 -
基于 FPGA 的彩色图像灰度化的设计实现
本次实验主要是在上一节的基础上,加入图像处理模块,实现在 PC 端通过上位机下发尺寸为 400*480 大小的彩色图像数据到 FPGA 的串口,FPGA 通过串口接收的彩色图像数据并进行实时彩色图像灰度化处理,然后将原始彩色图像和处理后的图像拼接在一起并缓存在DDR3 中,最终在 TFT 屏上同时显示处理前的彩色图像和处理后的灰度图像。原创 2023-05-17 11:09:40 · 1341 阅读 · 1 评论 -
基于 DDR3 的串口传图帧缓存系统设计实现(fifo_mig_axi_fifo )
结合串口接收模块和 tft 显示屏控制模块,设计一个基于 DDR3 的串口传图帧缓存系统。原创 2023-05-10 17:27:54 · 1925 阅读 · 0 评论 -
基于 DDR3 的串口传图帧缓存系统设计实现(整体设计)
结合串口接收模块和 tft 显示屏控制模块,设计一个基于 DDR3 的串口传图帧缓存系统。原创 2023-05-09 16:34:56 · 2049 阅读 · 7 评论 -
DDR3 控制器 MIG IP 详解完整版 (AXI4&Vivado&Verilog)
本节主要是介绍 Xilinx DDR 控制器 IP 的创建流程、IP 用户使用接口 AXI 协议介绍和IP 对应的 Example Design 的仿真和上板验证。原创 2023-04-11 18:16:14 · 6084 阅读 · 0 评论 -
DDR3 基础知识分享
DDR3 SDRAM常 简称 DDR3 是当今较为常见的一种储存器,在计算机及嵌入式产品中得到广泛应用,特别是应用在涉及到大量数据交互的场合,比如电脑的内存条。对DDR3的读写操作大都借助IP核来完成,本次实验将采用 Xilinx公司 MIG IP核来实现DDR3读写测试。DDR3相对于SDRAM是双沿触发,读写速度快一倍。相对于DDR2有更高的运行性能和更低的电压。原创 2023-04-24 11:56:02 · 6692 阅读 · 1 评论 -
串口发送+RAM+VGA传图
本文使用串口发送模块发送数据存储到RAM中,通过RAM读取数据传输图片给TFT显示屏。原创 2022-12-21 18:30:04 · 974 阅读 · 5 评论 -
基于AD9767高速DAC的DDS信号发生器(Verilog&Vivado)
基于AD9767高速DAC的DDS信号发生器。原创 2023-03-01 16:48:05 · 2264 阅读 · 8 评论 -
DDS结构的FPGA实现
DDS信号发生器采用直接数字频率合成(Direct Digital Synthesis,简称DDS)技术,把信号发生器的频率稳定度、准确度提高到与基准频率相同的水平,并且可以在很宽的频率范围内进行精细的频率调节。采用这种方法设计的信号源可工作于调制状态,可对输出电平进行调节,也可输出各种波形。原创 2022-11-29 15:42:01 · 2337 阅读 · 1 评论 -
VGA显示-多分辨率输入
本篇文章是基于上篇《VGA成像原理与简单实现》更改,实现多分辨率输入。原创 2022-12-06 18:54:51 · 599 阅读 · 0 评论 -
VGA显示板级验证
本篇文章记录使用ACX720开发板实现VGA板级验证,将8中颜色通过VGA接口输出到指定位置。原创 2022-12-06 17:01:46 · 793 阅读 · 0 评论 -
VGA成像原理与简单实现
本篇文章简单记录VGA成像原理与时序解析,应使用Verilog初步实现。如有错误,还请批评指正,谢谢。原创 2022-12-02 17:46:09 · 3230 阅读 · 0 评论 -
按键消抖(Verilog&Vivado)
按键作为基本的人机输入接口,由于其机械特性,在按键按下或松开的时候,都是会有抖动的。按键小豆的方式有很多。我的方法是通过计时来消抖,通过一个计数器,当按键输入有变化时,计数器清零,否则就累加,直到加到一个预定值,就认为按键稳定,输出按键值,这样就得到了没有抖动的按键值。原创 2023-02-17 18:40:33 · 4025 阅读 · 4 评论 -
FPGA 驱动数码管动态显示(Verilog&Vivado)
本章将实现 FPGA 驱动数码管动态显示并提取出实现的电路结构,从电路结构入手编写代码,仿真对设计进行验证。最终板级调试时使用 Virtual Input/Output(VIO,虚拟输入/输出端口工具),输入需要显示的数据,数码管则显示对应数值。原创 2023-02-22 10:34:26 · 12956 阅读 · 1 评论