FPGA 20个例程篇:17.SD卡存放图片逐一送VGA显示(下)

编程入门 行业动态 更新时间:2024-10-18 05:56:56

FPGA 20个<a href=https://www.elefans.com/category/jswz/34/1769196.html style=例程篇:17.SD卡存放图片逐一送VGA显示(下)"/>

FPGA 20个例程篇:17.SD卡存放图片逐一送VGA显示(下)

第六章 图像显示处理,经典再现

17.SD卡存放图片逐一送VGA显示

       接着我们再来看一看video_driver即VGA图像显示模块,在这个模块中我们需要和上游DDR3读写控制模块进行数据交互,并根据VGA到显示逻辑,在扫描到有效区域的时候,通过video_rdy信号,触发上游模块的读FIFO使能信号,再依次从上游模块中读取128位的数据,因为在这里一个RGB565像素点恰好是16位,所以把128位数据拆分成8个16位数据传给VGA显示,如表1所示是video_driver模块信号列表。

信号列表

信号名

I/O

位宽

pixel_clk

I

1

rst_n

I

1

video_din

I

128

video_din_vld

I

1

video_hs

O

1

video_vs

O

1

video_rgb

O

16

video_rdy

O

1

表1 video_driver模块信号列表

图1 VGA送显数据拆报时序逻辑示意图

        在本模块中需要实现3个核心功能:1.实现分辨率640*480下VGA显示的时序逻辑;2. 在扫描到有效区域的时候,使用一个计数器cnt0来计数128位数据拆分成16位数据,使用一个计数器cnt1来计数每行送显有效区域的640个16位数据,即80个128位数据;3. 在扫描到有效区域的时候,合理控制video_rdy信号触发上游模块FIFO的读使能,如图6-31所示是VGA送显数据拆报时序逻辑示意图,注意到我们需要在扫描到有效区域前一拍拉高video_rdy信号,并在扫描到有效区域中cnt0每次计数到8,即当end_cnt0时再拉高video_rdy信号再从上游模块读取128位像素数据,当然在end_cnt0且end_cnt1时不再拉高video_rdy信号,此时一行数据已按照VGA时序逻辑送显完毕,并按照相同的逻辑送显下一行像素数据即可,如图2所示是VGA驱动模块的代码设计。

图2 VGA驱动模块的代码设计

        如图3 所示是SD卡存放图片逐一送VGA显示顶层文件的例化,在顶层文件中大家只需要把各个模块的相关信号例化到一起即可,这里需要用PLL IP核分频一个25Mhz时钟用作640*480分辨率的VGA驱动时钟,一个200Mhz时钟用作MIG IP核的输出时钟,此外用一个LED知识灯,当SD卡和DDR3均初始化完成后点亮作为外部标志!

图3 SD卡存放图片逐一送VGA显示顶层文件的例化

       如图4到图8所示是SD卡存放图片逐一送VGA显示风景图1到图5,下载程序到豌豆开发板,顺序按下按键屏幕上会依次显示不同的风景图片。

图4 SD卡存放图片逐一送VGA显示风景图1

图5 SD卡存放图片逐一送VGA显示风景图2

图6 SD卡存放图片逐一送VGA显示风景图3

图7 SD卡存放图片逐一送VGA显示风景图4

图8 SD卡存放图片逐一送VGA显示风景图5

                                                                               

SD卡图片VGA显示

更多推荐

FPGA 20个例程篇:17.SD卡存放图片逐一送VGA显示(下)

本文发布于:2024-02-07 03:00:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1752275.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:例程   图片   FPGA   VGA   逐一送

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!