ZYNQ7000 (二十七)将 VGA 控制器封装成AXI_LITE 外设并在PS端进行编程显示图像和点阵

将 VGA 控制器封装成AXI_LITE 外设并在PS端进行编程显示图像和点阵
学习内容
本课内容仍 基于 前几 课 中基于 VGA 显示, 具体实现 是 将 之前做的 VGA接
口通过 AXI_LITE总线挂在 PS的 存储空间上 通过写地址寄存器和数据寄存保
存内容到 VGA显示缓存,并在 SDK编写代码实现在字符的显示,以及位图文
件的显示 。
实现步骤
(1) 学习 显示 点阵 字符。
(2) 封装 IP
(3) 调用 IP 实现 工程 。

Step1 使用 VIVADO 新建 工程,并且新建 在 Tools 菜单下选择创建 IP 注意选 择 AXI4外设 ,可见下图 。

在这里插入图片描述

设置IP 名字后 选择默认设置,最后一步中选择 Edit IP 选项
在这里插入图片描述
之前
课程中 实现 的 VGA 驱动 序提供在以下文件夹 复制到新建 IP 的 hdl 文件 夹中
在这里插入图片描述
在这里插入图片描述

上述驱 动 模块例化到当前的 IP接口 中。
主要代码可参照预先 编辑的 片段 .txt
在这里插入图片描述
(1) 声明 VGA 接口
将接口声明代码复制到 工程中文件 中
在这里插入图片描述
(2 进行时钟 端口连接
在这里插入图片描述
(3 调用 VGA 显示 驱动模块 进行例化
在这里插入图片描述
(4 写 数据寄存器和控制寄存器,并完成上述例化模块的端口连接
在这里插入图片描述
(5 使用 Add Source 将 my_vga_syn.v 和 vga_drv.v 文件添加到 工程中
在这里插入图片描述
由于代码中有使用到VGA_BARM 但却没有包含这个模块的源代码,所以
我们需要重新写一个存储模块,我们使用block_desgin来实现
在这里插入图片描述
添加block bram 设置为、在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其它选项中可以将 bmp_init.coe 设置 为初始 文件 ,具体 生成 方法可参照上 节 课
程。
在这里插入图片描述
设置好IP 之后 引出引脚, 生成 .wrapper 文件 ,将 vga_buffer_wrapper 文件
中的 vga_buffer_wrapper 模块例化 到 vga_drv.v 文件中。
在这里插入图片描述
可以通过综合 确认一下 并无错误后,选择 Package IP 更新 一下 IP 后重新 封装
IP 完成 IP 核 设计。
在这里插入图片描述

Step2 在 vivado 工程中 新建 block design,添加 ZYNQ PS VGA IP 时钟模块 等,连接如 下 ,注意设置 时钟 模块,输入 100MHz,输出 25MHz

在这里插入图片描述

Step3 生成 顶层文件,添加引脚 约束 文件,可参照代码提供 的 pins.xdc 生成 bitstream 文件 。

在这里插入图片描述

Step4 导出硬件 到 SDK 在 SDK 中 新建 fsbl 工程 和 vga_test (以 helleoworld 为模板) 工程


vga_test 工程 src 中添加提供工程 的 C 文件 夹下的 helloworld.c 、 VGA.c 和
转换 工具下的 bmp.init.h 、 bmp.init0.h 、 bmp.init1.h 、 bmp.init2.h 进行 编译 。
在这里插入图片描述
在这里插入图片描述
Step4 生成 boot.bin 文件 。
在这里插入图片描述
将这 步 中生成的 BOOT.bin 文件 复制到 SD卡 中,将 SD 卡 插入开发板上电测试
即可 。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值