Xilinx MIG DDR3 控制器 Modelsim 仿真

        项目上用到图像拼接,输入的视频流要存DDR3,做个DDR3的Modelsim仿真。软件版本用的Vivado2017.3,这个版本生成的Modelsim仿真库好像跟Modelsim10.6版本才兼容。常用的Modelsim仿真库如下四个:secureip,unifast_ver,unimacro_ver,unisims_ver。

       接着我上一篇转载的博客《Modelsim实现对Vivado中的MIG ddr3的仿真》叙述,example仿真用到的源文件主要有如下几个:

        vlog  -incr mig_7series*.v这些是example里面产生随机读写数据、地址、突发长度的一些模块,其他的就不说了,都是MIG仿真时所必须的文件。还有如下几个:

        其中,example_top模块是Vivado生成的例程的顶层,sim_tb_top模块的作用按照我的理解就是里面模拟了虚拟的DDR3器件。如果用户需要对自己的带有DDR3的工程仿真,不妨把sim_tb_top里的与DDR3相关的接口引出,然后把它充当一个DDR3器件与自己的工程对接。

        MIG核的用户接口有两种,一种是AXI4总线接口,还有一种是普通接口。出于考虑到以后与一些模块的直接对接,这里我使用的是AXI4接口。其实这两个接口对用户操作起来都是类似的,AXI4接口的example中有个mig_7series_v4_0_axi4_wrapper.v模块,这个模块的功能就是将用户接口转换成AXI4接口与MIG对接,所以用户采用AXI4接口的MIG方案时,不需要弄明白AXI接口协议,只需要对mig_7series_v4_0_axi4_wrapper.v模块提供的用户接口操作即可,接口定义在模块里都有解释。在这里我把mig_7series_v4_0_axi4_wrapper.v模块提供的用户接口转换成了更便于操作的接口。下图1是mig_7series_v4_0_axi4_wrapper.v提供的用户接口,下图2是我转换后的用户接口。

        

                                                                图1 mig_7series_v4_0_axi4_wrapper.v的用户接口

                                                                                         图2 转换后的用户接口

        以下是我仿真的工程中do文件中关于MIG部分编写的内容,用户仿真时,需要把官方提供的do文件改一改,需要添加MIG生成的*sim_netlist.v文件并备注掉vlog  -incr mig_7series*.v这一行,这一行编译的文件是例程中才需要的,用户使用的时候如果用不到这些模块可以不编译这些(实际上我没用到,哈哈~)。

        附上一篇关于MIG的参考博客:https://www.cnblogs.com/sepeng/p/7016479.html

        

猜你喜欢

转载自blog.csdn.net/dimples_Song/article/details/84325339
今日推荐