VIVADO MIG IP核调用及各信号意思

本次调用后续引脚部分采用的是UDF文件,非个人单独引脚绑定操作。

1 IP核调用

        1、点击VIADO的IP核调用搜索里面输入MIG并回车,得到界面如下:

        2、双击IP和进入配置界面,第一个界面是介绍本次操作工程,基本上都可以见名知意,直接下一步即可。

        3、这一步就开始正式的配置了,各个部分名称如下,可根据自己需要进行修改,这里MIG控制器一般采用1个。接下来下一步。             4、这个界面就是本次配置的MIG IP核可以兼容那些FPGA型号,这里选择越多,后面模拟仿真的时候跑的就越久,根据当前需求来即可。

           5、这一步就是选择MIG控制器控制的存储器类型,我这里选择的是DDR3,当然这里不同的FPGA信号可选择的器件是不同的,我这里只能选择下面两种,根据自己需求选择即可。

          6、这一步分别由下面这些组成,1是DDR的内部工作时钟;2是DDR时钟与系统时钟的比值,比如现在DDR的工作时钟为400M那么系统时钟就应该为100M;4是DDR3内存的颗粒度,这个可以下拉来进行选择,我采用默认的方式;4是采用DDR3存储器件的类型,这里采用的是MT41J128MXX-125,这个是镁光公司的,可存储128M的内存,加上6位宽我选择的是16,那么换算成地址的话就是28位的地址,分成横坐标、纵坐标那么就是最终地址为14位宽----这里不太明白的话可以查看手册,有具体的计算方式,下面还有两个选项,这两个分别是选择BANK位置和是否选择咱们这各个MIG控制器来对这些信号重新排序,两个都可以,不过一般是选择Strict。

         7、这一步关键点在于这三点,第一点是MIG的输入时钟,一般保持默认状态,第二个是数据的突发类型-分别为顺序突发和乱序突发,第三个是寻址方式,这个寻址方式一般采用默认的方式-第二个。其他的保持默认即可。

         8、第一个时钟为系统时钟,这个根据咱们的器件来选择,分别是差分传输、单端传输、无缓冲传输三种方式,下面哪一个是参考时钟。2为复位时高有效还是低有效,这里采用的是低有效。剩下那些可以采用默认即可。

         9、下面可以直接一直下一步,到下面这个界面,这个界面第一个选型时自己选择各种配置引脚,下面哪一个是根据现有的XDC或UDF文件来进行配置,我这里采用第二个的方式。

         10、这里先点击1来进行引脚配置,然后再点击2进行引脚的验证

 出现这个界面即表示当前配置引脚无误。

 剩下的那些可以直接点击下一步,一直点击即可生成。

2 各个信号的意思

        这里先把IP和例化出来的信号分成两个大的部分,第一部分是链接DDR3的物理接口,初始化完成接口除外。第二部分是需要写代码等进行操作的用户接口部分。

        1、物理接口部分各信号的意思。

        其他接口基本上看到名字应该就知道是什么意思了,这里说一下ddr3_addr、init_calib_complete和为什么会有行选通和列选通这几个信号。

        1)为什么会有行选通和列选通,这里先计算一下他的存储空间,128*1024*1024=134217728,想要完整的放下这么多数据需要28位的位宽-128是128M存储大小的DDR3,这里可以自己验证以下,而DDR是由SDRAM演变而来的,SDRAM的行和列都是用的一个地址信号,因此这里也是一样的,这是最简单的解释,更深的跟因为留片、和内部存储方式有关涉及很专业不变描述————简单来说就是算出存储量的位宽再/2即可这个就是地址位宽。

        2)init_calib_complete初始化信号,这个也是由SDRAM演变而来的,简单的理解可以认为是存储芯片第一次操作的时候需要一点准备时间,更深的也是涉及到内部存储的方式。

         2、APP(用户)接口各个信号的意思

        因为各个信号的不同功能及其联系性,这里我把他分为四个通道,分别是命令通道(app_addr、app_cmd 、app_en  、app_rdy )、写数据通道(app_wdf_data、app_wdf_end 、app_wdf_wren、app_wdf_rdy 、app_wdf_mask)、读数据通道(app_rd_data 、app_rd_data_end  、app_rd_data_valid)、DDR存储控制通道(app_sr_req、app_ref_req、app_zq_req、app_sr_active、app_ref_ack  、app_zq_ack   ),如下。

         由各个信号的名字即可知道,咱们在操作往DDR里面写数据的时候,都应该需要先判断rdy信号是否有效,不然是无法正确写入数据的,这里主要是由三个原因导致的,第一个是当前器件还在执行上一个命令的时候,还有一个是当前器件还在读的时候,还有一个是当前器件或者说读的位置还处于刷新等状态。

        另外一个就是DDR存储控制的这个通道、这个通道一般是在传输大量数据的时候才需要操作

以下是Vivado Mig IP核DDR3的各个引脚功能: 1. clk:DDR3时钟输入,用于时序控制。 2. rst:复位输入,用于复位DDR3控制器。 3. ddr3_addr:DDR3地址输入,用于指定存储器位置。 4. ddr3_ba:DDR3 bank地址输入,用于指定存储器的bank位置。 5. ddr3_ras_n:行地址选择信号,低电平表示行地址有效。 6. ddr3_cas_n:列地址选择信号,低电平表示列地址有效。 7. ddr3_we_n:写使能信号,低电平表示写操作有效。 8. ddr3_dq:数据输入/输出信号,用于传输数据。 9. ddr3_dqs_p/n:数据时钟输入/输出信号,用于同步数据传输。 10. ddr3_dm_p/n:数据掩码输入/输出信号,用于指示数据的有效位。 11. ddr3_odt:输出驱动器电阻控制信号,用于控制输出驱动器的电阻值。 12. ddr3_ck_p/n:DDR3时钟输入/输出信号,用于同步时序。 13. ddr3_ck_n_p/n:DDR3时钟输入/输出信号,用于同步时序。 14. ddr3_reset_n:复位信号,用于控制DDR3控制器的复位。 15. ddr3_vref:内部参考电压输入,用于控制输出驱动器的电压参考值。 16. ddr3_zq:内部ZQ校准信号输入,用于校准输出驱动器的阻抗。 17. ddr3_alert_n:DDR3警报信号,用于指示DDR3控制器的状态。 18. ddr3_cke:时钟使能信号,用于控制时钟输入的使能。 19. ddr3_cs_n:芯片选择信号,用于选择DDR3存储器芯片。 20. ddr3_odt_p/n:输出驱动器电阻选择信号,用于选择输出驱动器的电阻值。 21. ddr3_zio_p/n:输出阻抗选择信号,用于选择输出阻抗的值。 22. ddr3_zio_p/n:输出阻抗选择信号,用于选择输出阻抗的值。 23. ddr3_parity:奇偶校验信号,用于校验数据的正确性。 24. ddr3_init_calib_complete:初始化和校准完成信号,用于指示DDR3控制器的状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值