新建vdma_HP工程所遇到的问题
为了保持最少一周一更的工作量,用AXU3EG复现公子哥的第一课,虽然还没有成功,但是浅浅记录下自己的学习
108M频率计算
设计1280*1024像素60Hz输出,1280和1024是有效帧,一般前后会有补的无效数据,在VTC的IP中,size是1688X1066,在乘上60,约等于108M。
模块的引脚问题
有的时候我们看模块的前面形状来判定是高电平使能还是低电平使能,在你实例化模块的时候,可能会出BUG,如下图:
比如vid_io_in_ce,是高电平使能,但是模块外观上面有个圈圈,反向环,看着想低电平使能,但是你在自定义配置模块参数的界面上就有不一样了,如图
显示的是高电平使能,需要注意这些。
HP0_LPS_OCM 地址没有被分配
分配地址的时候发现这个模块没有被分配地址,查了一下发现,只需要右键打开选项,点击include添加即可。
后面就看了几个模块
Video in to AXI4-Stream
这个基本上看的博客,这两个博主写的很不错,为了防止以后找不到,我抄几句在我的博客上,希望勿怪。
Xilinx Video IP(六)——AXI4-Stream to Video Out-CSDN博客
图像处理之Video In to AXI4-Stream教程-CSDN博客
主要觉得重要的点是接口延迟和速度
1.典型延迟:
- 当 AXI4-Stream 总线上下游的处理模块能够以像素速率或更快的速率接收数据时,通过 Video In to AXI4-Stream 核的典型延迟是 6 个 vid_io_in_clk 时钟周期 + 3 个 aclk 时钟周期。
2.使用 FIFO 平衡速率不匹配:
- 如果下游模块以较慢的速率接收像素数据,那么 FIFO 会用来平衡输入和输出速率之间的不匹配。
- FIFO 的作用是缓冲输入数据,以确保即使下游处理速度较慢,数据流也能平稳进行
3.额外延迟:
- 当使用 FIFO 时,由于存储像素数据,这会增加延迟。
- 这种额外的延迟取决于数据流入和流出核心的速率,可能会随行和帧的变化而变化
额外的 FIFO 深度需求:
- 需要额外的 FIFO 深度来平滑瞬时速率的不匹配。这是为了处理输入视频像素时钟(Fvclk)和 AXI4-Stream 时钟(Faclk)之间的速率差异。
时钟速率限制:
- Fvclk 和 Faclk 的速率受限于整体的最大时钟频率(Fmax)。
Faclk ≥ Fvclk 的情况:
- 如果 Faclk 等于或大于 Fvclk,只需要最小的缓冲区大小(32 个位置)。
- 这假设 Video In to AXI4-Stream 核下游的核能够以全视频速率接收数据。例如,下游核可以以几乎连续的流方式接受数据,仅在 EOL(行结束)之后有间隙,每行连续接受数据,行之间的间隙仅在 SOF(帧开始)之前出现。在这种情况下,FIFO 在每行的 EOL 之后会清空。
Faclk 小于 Fvclk 的情况:
- 当 Faclk 小于 Fvclk 时,需要额外的缓冲来处理视频时钟和 AXI4-Stream 时钟之间的速率差异。
- 具体来说,FIFO 必须足够大,以处理像素在视频时钟速率(Fvclk)下进入,而在较慢的 AXI4-Stream 总线时钟速率(Faclk)下输出的差异。
输入 FIFO 深度计算:
- 对于 Faclk 频率高于平均行频率但低于 Fvclk 的情况,输入 FIFO 的最小深度(FIFO depth min)计算公式如下:
FIFO depth min = 32 + Active Pixels * Fvclk / Faclk
下游处理核心的速率低于 aclk:
- 如果下游处理核心接受数据的速率低于 aclk,那么需要额外的缓冲以防止 FIFO 在帧传输期间溢出。
- 这种情况下,FIFO 的深度需要足够大,以保证即使在传输整帧数据时,FIFO 也不会溢出。
原文地址:图像处理之Video In to AXI4-Stream教程-CSDN博客
AXI4-Stream Video IP
同上也是有视频流时钟和总线时钟的互相制约
参考博客:Xilinx UG934——AXI4-Stream Video IP(一)-CSDN博客
video timing controller
Xilinx Video IP(四)Video Timing Controller的使用-CSDN博客
ng Controller的使用-CSDN博客](https://blog.csdn.net/slyywd/article/details/140456781#comments_34385881)