FPGA显示图像,拆到最底层就一件事:屏幕不是一次性"画"出来的,而是一行一行、一帧一帧地"刷"出来的。FPGA要做的,就是在正确的时间把正确的颜色值送到正确的像素位置。
时序是骨架
TFT屏幕的驱动芯片需要四组信号:像素时钟(PCLK)、水平同步(HSYNC)、垂直同步(VSYNC)、数据使能(DE)。PCLK决定每个像素的刷新节奏,HSYNC标记一行的起止,VSYNC标记一帧的起始,DE告诉面板"此刻的RGB是有效像素"。四者缺一,画面就会撕裂、偏移或出现黑边。
像素数据从哪来
一张图片在FPGA里以二维数组形式存在存储单元中——小规模用ROM,中等规模用BRAM,大尺寸图像或视频流走DDR。地址由行列坐标拼接:addr = row × width + col。FPGA内部维护行、列两个递增计数器,每个PCLK周期读出一个像素的RGB值,通过数据总线送给面板。
位宽与色彩深度
24位真彩图像每像素占24bit,但很多小尺寸TFT屏只有16位(5-6-5格式),需要在FPGA里做位宽截断。位宽不对齐,画面偏色、色彩断层,这是初学者最常踩的坑。
跨时钟域
图像数据若存在DDR域,显示时序跑在PCLK域,两者之间必须经过FIFO或双锁存器做跨时钟处理,否则花屏。
核心四根:PCLK、HSYNC、VSYNC、DE,再加RGB数据总线。PCLK是像素节拍,HSYNC和VSYNC是行列边界,DE过滤消隐区。理解各自的有效电平和持续时间(有效区+消隐区),就掌握了时序基础。
1024×768×3byte≈2.25MB,BRAM放不下,需DDR或外部Flash。读取时用具行/列计数器生成地址,每个PCLK输出一像素,一帧共768行。帧时间=(768+VS)×(1024+HS)×T_PCLK,VS、HS为消隐行数。VSYNC到来即切下一帧。
总结与思考
FPGA显示图像四步:时序信号→地址生成→数据读取→位宽匹配,串起来就是完整显示引擎。
思考题:分辨率升到1080p而PCLK不能增加,你会怎么改设计?
点击官网右下角客服窗口,报"图像显示",宸极教育会结合你的基础推荐学习节奏,21个实战项目从LED到JESD204B逐级递进,不绕弯子,直接告诉你从哪步开始最省时间。
未经许可,禁止转载!