[X]关闭

[米联客-XILINX-H3_CZ08_7100] FPGA基础篇连载-35 VIVADO用户IP软件总线接

文档创建者:FPGA课程
浏览次数:359
最后更新:2024-09-07
文档课程分类-AMD-ZYNQ
AMD-ZYNQ: ZYNQ-FPGA部分 » 2_FPGA实验篇(仅旗舰) » 1-FPGA基础入门实验
本帖最后由 FPGA课程 于 2024-9-7 14:39 编辑

​ 软件版本:VIVADO2021.1
操作系统:WIN10 64bit
硬件平台:适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA
实验平台:米联客-MLK-H3-CZ08-7100开发板
板卡获取平台:https://milianke.tmall.com/
登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑!



1概述
使用VIVADO基于图形化创新编程FPGA的方式可以大大提高FPGA编程效率,但是前提是把代码打包成图形化的IP形式。
前面一节课我们只是完成了简单IP的封装,如果对于有非常多的信号的总线接口,那么利用总线接口封装可以让我们连线的时候以总线形式互联。
当一组或者一类信号接口信号很多,如果单根连线的方式,会非常麻烦,因此把一组或者一类接口封装为总线接口,只需要对总线进行互联,对于图形化设计,提高效率,也简化的设计。
本文实验中对视频时序接口RGB接口的关键信号进行总线封装。并且使用的是VIVADO IP封装库中自带的总线video timing,对于不是VIVADO自带的总线接口,我们也可以自定义,这个本章节不讲解,如果读者感兴趣,可以在 “米联客DDR缓存方案AXI-FDMA”专题中学习,该章节有对复杂的用户自定义接口的自定义总线FDMA接口进行封装。
2VTC IP封装总线接口
本文不再赘述和前一篇封装IP相同的内容部分,如果有不清楚请阅读前文“VIVADO自定义IP简单封装方法”,本文重点讲如何把分离的接口封装为总线IP。单击图下的”+”号,或者选中需要封装总线的信号右击,选择Add Bus Interface(对于VIVADO已经有的总线接口选择这个,没有的需要选择Create Interface Definition, 米联客自定义IP FDMA专题中,FDMA总线接口的封装就会用到, 不再本章节讨论范围)
4aa0911d7a7a4f89bcfea84eda674bca.jpg
2.1Add Interface-General页面
新弹出的界面修改如下几个参数
Name: 改为vtc_out
Display Name:改为vtc_out
Mode:保持master(这个很关键,两个互联的接口,必须一个是master一个是slave)
9a745822c28340b4af32d9b41775b192.jpg
然后修改总线接口的定义,可以看到支持包括AXI、Signal 、IO Interfaces 、Advanced 、User 多种已经软件自带的接口。
c93c6d78b2cf45e49ea6501f3ecd59b4.jpg
可以看到Advanced中video_timing_rtl包含了VSYNC 、HSYNC、DE 三个信号,和我们自己编写的VTC IP的O_vtc_vs 、O_vtc_hs 、O_vtc_de进行匹配,这样后续软件就能自动识别互联了
15502c62783f435b94cb9b4bfef07ec5.jpg
单击OK后如下
4494963b63404b599ed1b2d951dd7882.jpg
2.2Add Interface-Port Mapping页面
实际上左边大写的信号是系统默认设置的总线信号规则,而右边的是用户自己的信号,通过单击选中需要匹配的信号,然后单击Map Ports完成信号匹配
2f141ee2471a4f0895eb2120dc8c5a5e.jpg

依次完全所有的信号设置
05ae8a1d80d94ab39101d5910558b407.jpg
现在总线接口设置成功了
6a1b4ff8d2e545969acd0b7c2c6439a7.jpg
2.3复位和时钟
635ec0fddd8a47d5833a23025c2a9c99.jpg
62c59e5b57dc485f858922d0189cef81.jpg
最终完成后如下:
ceb0067f89f84eaeb07f13526d6313ac.jpg
2.4Customization GUI的调整
参数默认排列如下,可以调整后更加符合使用习惯
0f9f9d5a4c55473586414e78695755b9.jpg

比如把H_Syncstart参数上调,单击向上箭头
1bd990725eca40da9965bc5a8f2a0a27.jpg
e619eb28c9094923aa9577736b786bbb.jpg
我们这里把V_Syncstart也做下调整
cf7c342d961a41b4aaa4e810c08daaac.jpg


2.5完成封装
单击Re-Package IP 完成封装
1e36f8ff9f80489888ea2737ac5a9d0c.jpg
3TPG IP封装总线接口
本文不再赘述和前一篇封装IP相同的内容部分,如果有不清楚请阅读前文“VIVADO自定义IP简单封装方法”,
TPG IP有2个总线接口需要创建
1是和VTC IP相连的视频时序接口
2是输出的视频时序包含了数据部分
3.1vid_in总线封装
a1687630a44e463ca5d4cafc2a3410cf.jpg

3.1.1Add Interface-General页面
新弹出的界面修改如下几个参数
Name:改为vid_in
Display Name:改为vid_in
Mode:改为slave(这个很关键,两个互联的接口,必须一个是master一个是slave)
a9bc766769134f3fb7e419956b60a926.jpg
然后修改总线接口的定义,可以看到支持包括AXI、Signal 、IO Interfaces 、Advanced 、User 多种已经软件自带的接口。
9c61949a5cca46c0ad835e27d218ddf5.jpg
可以看到Advanced中video_timing_rtl包含了VSYNC 、HSYNC、DE 三个信号,和我们自己编写的VID IP的I_vid_vs 、I_vid_hs 、I_vid_de进行匹配,这样后续软件就能自动识别互联了
95f50385265b4dfe89dd32ffacca27d4.jpg
单击OK后如下
7f5c34e555dd4d59861385c97a850fea.jpg

3.1.2Add Interface-Port Mapping页面
实际上左边大写的信号是系统默认设置的总线信号规则,而右边的是用户自己的信号,通过单击选中需要匹配的信号,然后单击Map Ports完成信号匹配
c7311146323f434ea3c2e267cc5abfe9.jpg
依次完全所有的信号设置
8e75ec9c3e0f45e9964312141a47d4a8.jpg
现在总线接口vid in设置成功了
e0fab5633ba44340b77f68d5e3191110.jpg
3.2vid_out总线封装
方法一样,更多详细的过程不再重复,主要看下关键的部分
Name:改为vid_out
Display Name:改为vid_out
Mode:改为master(这个很关键,两个互联的接口,必须一个是master一个是slave)
Interface Definition:改为vid_io_rtl
7dfde76e8b67444eb4f8c97a6569c966.jpg
信号MAP如下
0380af292f984239b5c8a9ca36f591db.jpg
3.3复位和时钟
79595e8694b74bfa92cee1e4b3c69f81.jpg
最终完成后如下:
43043d20fddb41a0add84928075c54de.jpg
3.4Customization GUI的调整
可以看到,我们没有需要调整的参数,默认就这样
c064d5f3fd8745cbb936503e2749db0a.jpg


3.5完成封装
单击Re-Package IP 完成封装
0447a85a46f34515862904a3fc6fb1f8.jpg
4HDMI IP封装总线接口
本文不再赘述和前一篇封装IP相同的内容部分,如果有不清楚请阅读前文“VIVADO自定义IP简单封装方法”。
HDMI IP 中有一个下拉列表的设置,是本节内容的重点。
4.1vid_in总线封装
HDMI有一个视频时序输入接口,因此需要定义一个slave形式的视频时序总线接口,这个和前面VTC的vid_in设置一样,不再重复。
4.2下拉列表设置
由于XILINX的serdes2和serdes3不一样,所以需要一个下拉列表可以选中
16a4f5dc7b6d417e9b23a0dbc8d9f8aa.jpg
设置FAMILY类型包括:
ULTRASCALE, ULTRASCALE_PLUS和7FAMILY
2fb935da956e471284bebc2b6b1ddbd6.jpg
封装完成后的界面
d134a9839bfb48d0bac1358819ee7f30.jpg
用同样的方法封装其他的IP,比如AD7606的IP ,ADV7611驱动的IP ,LVDS触摸屏的IP等等,这里不再重复。
下一节课实验使用本节课完成的IP,大家之前用传图方法实现的HDMI测试图形输出


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则