浮点数和指数ip
Float-point这个IP核,用来计算浮点数。
cordic IP核做exp函数即e^x值
Float-point
通过配置Operation Selection界面,完成ip核配置,选择加减法还是定点数转浮点数, 乘法,除法,开方等操作。
ov5640
720p,一帧60hz,像素时钟96mhz。
640x480.一帧90hz,像素时钟 48mhz。
VDMA
1、AXI4-Lite:用于配置 VDMA 的寄存器,来控制 VDMA 的行为;
2、AXI4 Memory Map:用于通过 AXI4 接口,直接访问 DDR 控制器,进而访问 DDR;
3、AXI4-Stream:用于将图像数据按照 AXI4-Stream 的方式快速的输出,或者读入;
AXI4-Lite 用于 CPU 来给 VDMA 配置 IP 的行为,AXI4 Memory Map 直接和 DDR 交互,也就是 FrameBuffer;AXI4-Stream 用于输出、输入视频流式数据;
在 VDMA 中,定义了几条通路:
Write Channel(S2MM)
PG020 中定义的写数据路径为 AXI VDMA 从 AXI4-Stream Slave 接收数据,然后使用 AXI4 Master 写入到主存的过程;这个过程,我们也叫 S2MM,全称是 AXI4-Stream To AXI4 Memory Map:
Read Channel(MM2S)
PG020 中定义的读数据路径为 AXI VDMA 从 使用 AXI4 Master 将数据读出来,AXI4-Stream Master 将数据输出;这个过程,我们也叫 MM2S,全称是 AXI4 Memory Map To AXI4-Stream:
读写通道相互独立。
针对Artix-7 最大时钟频率150mhz。
VDMA 的寄存器是通过 AXI-Lite 进行配置访问,寄存器主要分为两组:MM2S 和 S2MM:
主要配置的内容有:
1、中断的配置,即是否产生一些错误中断,或者一些 Frame Count 中断;
2、使能和禁能 VDMA 或者 GenLock 等;
3、配置要传输图像在内存中 FrameBuffer 的起始地址;
4、配置图像的宽高(这样 VDMA 才知道要传输多大的数据 Size);
5、帧缓存的使用策略;
GenLock mechanism
视频数据输入速度与读取速度不同。为了避免可能导致速率不匹配的潜在不良影响,经常使用帧缓冲。数据写入一个缓冲区,而读取操作在另一个缓冲区进行。
VDMA的Genlock可防止读取和写入通道同时访问同一帧,也就是防止同时对一帧数据进行读和写操作;
VDMA 可以按照我们配置的数据量(图像的宽高),从固定 FrameBuffer 地址,将主存中的数据取出(或者写入);本质上是完成了主存的数据(具体的说,是图像数据)的高带宽搬移。
VTC
VTC 是为了生成特定的分辨率的 H/V 的 Sync,Active,FP,BP 信号用的一个信号输出(或者捕获)IP;可以通过软件对寄存器的配置参数,来达到生成不同分辨率的时序。
其实可以就看做是一个时序发生器,产生显示器输出所需要的时序信号,有了此核之后,那些各种显示消隐区也就不需要怎么考虑了
AXI4-Stream To Video Out
从 VDMA 出来的是 AXI-Stream 流式数据,从 VTC 出来的是像素时钟得到的 Hsync,Vsync,Hbank,Vbank等时序信号,而我们最后对应到 HDMI 的是像素和时序一起的信号,
所以这里需要一个将 AXI-Stream 流式数据和 Timing 信号转为一组同步的像素+Timing信号的 IP Core,Xilinx 提供了一个叫做 AXI4-Stream To Video Out 的软核。
输入为VTC的行场时序等 和axi4 stream 数据流。 输出为rgb数据 和行场同步数据的时序输出。
720P的像素时钟是 74.25mhz。
FCLK_CLK0 配置为 100M,FCLK_CLK1 配置为 142MHz,这个 FCLK_CLK1 就用于视频流数据时钟,为何选 142MHz 呢,因为 1080p60 定义的时钟速率为 148.5MHz,而且包含消隐区的传递,我们的 AXI4-Stream 的时钟略低于它也可以满足高带宽的数据传送。
像素时钟的产生者是 Dynamic Clock Generator 的 PXL_CLK_O,它的参考时钟是 100MHz 来自 AXI GP CLK;
输出 2 路时钟:
PXL_CLK_O:像素时钟;
PXL_CLK_5X_O:5 倍像素时钟; 串行时钟
AXI HP 的时钟是 142MHz,接入到 VDMA 的 mm2s 的 AXI 和 AXI-Stream,同时还接入到 AXI4-Stream To Video Out 的 aclk。
对应到720P 1208x720
工作时钟为60hz。 60fps。 ov5640 74.25MHZ, 像素时钟100mhz。 通过异步fifo将74.25MHZ同步到100mhz时钟频率。 100mz定为工作时钟。
DDR读写时钟150MHZ. 先缓存再处理。处理完成再通过vdma写入ddr。
像素时钟100mhz。 串行时钟500mhz。
AXI4-lite 总线接入的寄存器配置
1、Dynamic Clock Generator;
2、VTC;
3、VDMA;
数字信号的处理
半精度加法器,半精度乘法器设计。
加法器: 对阶,尾数相加,规格化并舍入,溢出判断。
乘法器: 阶码相加,尾数相乘,规格化并舍入,溢出判断。
滤波器
均值滤波去除高斯噪声
中值滤波去除椒盐噪声
图像二值化
图像分类
卷积
时序电路和组合电路
组合电路,是任意时刻的输出仅仅取决于当前时刻的输入,与电路之前的历史状态无关。
常见的组合逻辑电路:多路选择器、编码器、译码器、移位器、比较器、
时序逻辑电路的 输出不仅取决于当前的输入,还取决于电路的历史状态。
- 锁存器:锁存器在E的高(低)电平期间对信号敏感
- 触发器:触发器在CP的上升沿(下降沿)对信号敏感
从电路行为上讲,不管输入如何变化,仅当时钟的沿(上升沿或下降沿)到达时(这就是信号在时序逻辑中延迟一个时钟周期的根本原因),才有可能使输出发生变化。