mig IP核的学习

mig全称是Memory Interface Generator。

参考自视频:MIG IP配置_哔哩哔哩_bilibili

DDR基础知识

 时钟类型

使用流程

选择DDR3

16是地址线的位宽

能在DDR3的型号MT41K256M16XX-125中看出来。

怎么选择clock period 靠的是   芯片型号中的  -125,然后算出 800MHZ,但是我只能选出400MHZ,不太明白为什么,是fpga芯片的问题

  • 这是内存控制器的时钟周期,通常指的是控制器访问DDR3存储器时所使用的主时钟周期。例如,图中你设置的 "Clock Period" 为 2.5 ns,对应的是 400 MHz 的时钟频率。
  • 这个时钟周期与内存模块通信的速度直接相关,较短的周期意味着更快的时钟频率和更高的数据传输速率。
  • 详细解释如手册

参考时钟默认200MHZ,是一个比较固定死的值,如上图的input clock period,就是200MHZ,这个时候就能给参考时钟用的  system clock 

XADC的作用主要是

保持默认

点一下restore ,然后next就可以

解决方案是将DQ[8-15]接到另一个byte group上。如下,因为

保持默认

保持默认

用户  MIG  DDR的带宽计算

DDR的数据位宽在这里可选

因为存在 用户侧带宽 =  DDR带宽  这个等式,所以例化IP核的时候,veo文件会自己计算用户界面的数据位宽。如下所示为128bit

MIG的IP核输入输出和时序

打开示例工程

输入输出

 wdf  的全称应该是Write Data FIFO 

信号分类:




  mig_7series_0 u_mig_7series_0 (
    // Memory interface ports
    .ddr3_addr                      (ddr3_addr),  // output [14:0]		ddr3_addr
    .ddr3_ba                        (ddr3_ba),  // output [2:0]		ddr3_ba
    .ddr3_cas_n                     (ddr3_cas_n),  // output			ddr3_cas_n
    .ddr3_ck_n                      (ddr3_ck_n),  // output [0:0]		ddr3_ck_n
    .ddr3_ck_p                      (ddr3_ck_p),  // output [0:0]		ddr3_ck_p
    .ddr3_cke                       (ddr3_cke),  // output [0:0]		ddr3_cke
    .ddr3_ras_n                     (ddr3_ras_n),  // output			ddr3_ras_n
    .ddr3_reset_n                   (ddr3_reset_n),  // output			ddr3_reset_n
    .ddr3_we_n                      (ddr3_we_n),  // output			ddr3_we_n
    .ddr3_dq                        (ddr3_dq),  // inout [15:0]		ddr3_dq
    .ddr3_dqs_n                     (ddr3_dqs_n),  // inout [1:0]		ddr3_dqs_n
    .ddr3_dqs_p                     (ddr3_dqs_p),  // inout [1:0]		ddr3_dqs_p
    .init_calib_complete            (init_calib_complete),  // output			init_calib_complete
	  .ddr3_cs_n                      (ddr3_cs_n),  // output [0:0]		ddr3_cs_n
    .ddr3_dm                        (ddr3_dm),  // output [1:0]		ddr3_dm
    .ddr3_odt                       (ddr3_odt),  // output [0:0]		ddr3_odt


    // Application interface ports 
    .app_addr                       (app_addr),  // input [28:0]		app_addr
    .app_cmd                        (app_cmd),  // input [2:0]		app_cmd
    .app_en                         (app_en),  // input				app_en
    .app_rdy                        (app_rdy),  // output			app_rdy

    .app_wdf_data                   (app_wdf_data),  // input [127:0]		app_wdf_data
    .app_wdf_end                    (app_wdf_end),  // input				app_wdf_end
    .app_wdf_wren                   (app_wdf_wren),  // input				app_wdf_wren
    .app_wdf_rdy                    (app_wdf_rdy),  // output			app_wdf_rdy
    .app_wdf_mask                   (app_wdf_mask),  // input [15:0]		app_wdf_mask

    .app_rd_data                    (app_rd_data),  // output [127:0]		app_rd_data
    .app_rd_data_end                (app_rd_data_end),  // output			app_rd_data_end
    .app_rd_data_valid              (app_rd_data_valid),  // output			app_rd_data_valid

    // app_sr_active ,app_ref_req,app_zq_req 不用可以置零
    .app_sr_active                  (app_sr_active),  // output			app_sr_active
    .app_sr_req                     (app_sr_req),  // input			app_sr_req

    .app_ref_req                    (app_ref_req),  // input			app_ref_req
    .app_ref_ack                    (app_ref_ack),  // output			app_ref_ack

    .app_zq_req                     (app_zq_req),  // input			app_zq_req
    .app_zq_ack                     (app_zq_ack),  // output			app_zq_ack


    // 是控制器给到用户界面的时钟和复位
    .ui_clk                         (ui_clk),  // output			ui_clk
    .ui_clk_sync_rst                (ui_clk_sync_rst),  // output			ui_clk_sync_rst


    // System Clock Ports   
    .sys_clk_i                       (sys_clk_i),
    .sys_rst                        (sys_rst) // input sys_rst


    );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值