ZYNQ7000 学习(二十五)纯PL 实现独立显存VGA驱动并显示画面

本篇教程详细讲解如何利用纯Verilog PL设计VGA驱动,通过BRAM存储640x480分辨率图像,并实现VGA显示。课程涉及时序调整、双端口RAM缓存、BMP转码和驱动文件整合。跟随步骤,解锁VGA显示画面技术。
摘要由CSDN通过智能技术生成

纯PL 实现独立显存VGA驱动并显示画面
学习
内容
本课程
在 上一 集 的课程基础上 通过 增加 BRAM 实现画面 的存储和 VGA 显
示 。 由于 BRAM 资源 有限,所以 设计 分辨率为 640480。 本课主要是 在第 24《 VGA接口 分析 及 控制逻辑实现 》基础上完成 。
实现步骤首先
介绍 本次课程 提供的代 码
在这里插入图片描述
相比第24课代码 主要 增加 了 图片 存储文件和 VGA 驱动 中的存储驱动 部分 。下面 按照 本次 课程实现 的目标进行修改和介绍。
Step1 修改 VGA 时序 驱动, 使得 像素时钟 为 25M,分辨率 为 640
480。
参数列表
在这里插入图片描述
(1) 修改 时序驱动模块 代码部分体现在 my_vga_syn.v中 。
由于选择 640*480 分辨率 60HZ 即上表第一行, 定义 横向和 纵向 参数 。
在这里插入图片描述
(2) 修改 时钟 模块 设置
计算像素频率 横向 参数之和) 纵向 参数之 和 ))每秒 舒心频率
600+16+96+48 480+11+2+31))60 25M
由于系统时钟采用外部晶振输入的 100 MHz 上一课中的分辨率较 高 为
1024
768,像素时钟为 65M 所 以 640
480 分辨率 应 将时钟 模块输出频率修改
为上述计算得到的 25MHz。双击 时钟模块,设置如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Step2 增加能够 实现图片缓存的双时钟双端口 RAM。 代码 可见 vga_dpram.v代码

在这里插入图片描述
代码内部自己 定义了 一个 256K 一个 64K 的存储块 在模块 vga_dpram 中
通过 对 读写地址 rd_addr[18] , wr_addr[18] 的判断实现两个存储 块 的拼接。
在这里插入图片描述

Step3 使用 BMP2Data.exe 将 BMP 图片 转 换 成 代码 能够识别的形式 并且进行调用。

在这里插入图片描述
在这里插入图片描述
在verilog 文件 中的调用可见 vga_dpram.v文件中模块 generic_dpram_64Kx12 和 模块 generic_dpram_256Kx12 的 最后 部分 ,如下在这里插入图片描述
在这里插入图片描述

Step4 修改 VGA驱动 文件 vga_drv.v 主要 将 上 文 中修改的 时序和 存储驱动部分加入 进去 如下

在这里插入图片描述

Step5 编译文件, 生成 bitstream 进行 下载测试。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此本节 课程实现,可通道 VGA 显示屏 查看工程效果。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值