之前写过一个DDR4的配置博客https://blog.youkuaiyun.com/jingjiankai5228/article/details/104282707 ,简单的说了一下MIG核的基本配置以及示例工程的搭建。
实际使用过程中可能通过DDR4来缓存不同数据,我个人一般的使用的方式可以将DDR分为若干等分的存储空间,前端使用FIFO缓存,从而简化用户接口,基本框架大致如下图,由于时间有限就直接用画图
最终可以通过FIFO进行分流数据,程序框架如下入所示:
值得注意的就是,DDR读出数据是存在延迟的,为了方便数据分流,在读出过程中可以做一个长点的延时等待,这个延时需要大于DDR4的最大读出时间,从而将数据分流出去,最终达到的效果就是数据从fifo_in0进的数据自然就会从fifo_out0端口流出,此外再进行FSM状态管理时,应该根据实际 项目中的数据流情况,实时的将数据写入DDR4和读出DDR4
可以参考以下之前写的一篇EMMC和DDR3的管理思路
https://blog.youkuaiyun.com/jingjiankai5228/article/details/103792934
实际上板观测情况如下图所示: