1. 项目概述
在FPGA开发中,实现视频信号的生成与输出是一个经典且实用的项目。这次我们要在DE10-Nano开发板上完成一个有趣的HDMI显示案例:在1280x720@60分辨率的屏幕上显示一个移动的黑色方块,背景为白色,边框为绿色。这个项目看似简单,但涉及FPGA开发的多个核心知识点,包括视频时序生成、I2C总线控制、PLL时钟配置等。
这个案例特别适合刚接触FPGA视频开发的工程师,通过实现一个具体的显示效果,可以快速掌握HDMI输出的基本原理和实现方法。项目中使用的DE10-Nano开发板搭载了Cyclone V SoC FPGA,板载HDMI接口芯片ADV7513,是学习FPGA视频开发的理想平台。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统设计与原理分析
2.1 整体架构设计
整个系统由三个主要模块构成:PLL时钟模块、HDMI控制器模块和I2C控制模块。系统框图清晰地展示了各模块之间的关系:
- PLL模块:将50MHz系统时钟转换为74.25MHz像素时钟
- HDMI控制器:生成视频时序和像素数据
- I2C控制器:配置ADV7513 HDMI发送芯片
2.2 视频时序原理
1280x720@60分辨率采用的是DMT(Display Monitor Timing)标准,其关键时序参数如下:
行时序参数:
- 有效像素:1280
- 前沿(FP):110
- 同步脉冲(Sync):40
- 后沿(BP):220
- 总像素:1650
场时序参数:
- 有效行数:720
- 前沿(FP):5
- 同步脉冲(Sync):5
- 后沿(BP):20
- 总行数:750
这些参数决定了视频信号的行场同步时序,是HDMI显示的基础。理解这些参数对于调试显示问题至关重要。
2.3 方块移动逻辑
方块移动的核心逻辑包括:
- 每10ms移动一个像素(基于74.25MHz时钟的计数器实现)
- 边界检测:当方块坐标接近屏幕边缘时改变移动方向
- 方向控制:使用寄存器记录当前移动方向(左上、左下、右上、右下)
3. 关键模块实现细节
3.1 PLL配置
在Quartus Prime中配置PLL IP核时需要注意:
- 输入时钟设为50MHz(DE10-Nano板载时钟)
- 输出时钟设为74.25MHz(1
