本文由远航路上ing 原创,转载请标明出处。
学习使用以及调试Framebuffer IP 核已经有一段时间了,调试的时候总想记录些东西,可是忙的时候就没有时间来写,只有先找个地方记录下,以后再总结。所以找这个时间好好的记录学习下。更加详细可以参考datasheet.
Framebuffer IP核总体概括以及结构示意图如下:
Framebuffer IP核的作用是帧率的提升,支持静态(固定分辨率)和动态(可变分辨率,设置最大分辨率)两种模式。同时也可以选择开启或关闭转换功能。输入输出管脚以及和DDR3的接口定义如下(动态模式):
输入端口有:输入视频信号时钟iclk,视频每帧的第一行第一个有效点的信号 frmsync_in,以及视频输入有效使能信号dvalid_in,输入数据信号din,三个信号的不同情况下的时序图可以参考IP核的datasheet,截图如下:
当启动帧率转换时,IP会要求外部输入要输出的视频信号的时钟,根据输出时钟要送出数据。输入信号:oclk,dout_enable,输出信号dout和dvalid_out,他们的时序图上图也有体现。
在启动帧率转换之后,根据要输出的的视频信号的时钟频率又可以分为两种情况;一、输出视频时钟与输入视频时钟频率相同;二、输出视频时钟是输入视频时钟的两倍。 两种情况下输入与输出的关系时序图如下:
除了视频输入输出端口之外,还有与DDR的接口,则这部分读写的接口时序图如下:
最后的pclk、pwrite、paddr、pwdat为动态配置的参数设置信号,时序图如下:
FW = frame width FH= frame higth KP = keep
更多细节可以参考官方的datasheet