⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mem_if_top.v

📁 DDR2源代码 DDR2源代码 DDR2源代码
💻 V
字号:
//*****************************************************************************// DISCLAIMER OF LIABILITY// // This text/file contains proprietary, confidential// information of Xilinx, Inc., is distributed under license// from Xilinx, Inc., and may be used, copied and/or// disclosed only pursuant to the terms of a valid license// agreement with Xilinx, Inc. Xilinx hereby grants you a // license to use this text/file solely for design, simulation, // implementation and creation of design files limited // to Xilinx devices or technologies. Use with non-Xilinx // devices or technologies is expressly prohibited and // immediately terminates your license unless covered by// a separate agreement.//// Xilinx is providing this design, code, or information // "as-is" solely for use in developing programs and // solutions for Xilinx devices, with no obligation on the // part of Xilinx to provide support. By providing this design, // code, or information as one possible implementation of // this feature, application or standard, Xilinx is making no // representation that this implementation is free from any // claims of infringement. You are responsible for // obtaining any rights you may require for your implementation. // Xilinx expressly disclaims any warranty whatsoever with // respect to the adequacy of the implementation, including // but not limited to any warranties or representations that this// implementation is free from claims of infringement, implied // warranties of merchantability or fitness for a particular // purpose.//// Xilinx products are not intended for use in life support// appliances, devices, or systems. Use in such applications is// expressly prohibited.//// Any modifications that are made to the Source Code are // done at the user抯 sole risk and will be unsupported.//// Copyright (c) 2006-2007 Xilinx, Inc. All rights reserved.//// This copyright and support notice must be retained as part // of this text at all times. //*****************************************************************************//   ____  ____//  /   /\/   /// /___/  \  /    Vendor: Xilinx// \   \   \/     Version: 2.1//  \   \         Application: MIG//  /   /         Filename: mem_if_top.v// /___/   /\     Date Last Modified: $Date: 2007/11/28 13:20:55 $// \   \  /  \    Date Created: Wed Aug 16 2006//  \___\/\___\////Device: Virtex-5//Design Name: DDR/DDR2//Purpose://   Top-level for parameterizable (DDR or DDR2) memory interface//Reference://Revision History://*****************************************************************************`timescale 1ns/1psmodule mem_if_top #  (   // Following parameters are for 72-bit RDIMM design (for ML561 Reference    // board design). Actual values may be different. Actual parameters values    // are passed from design top module ddr2_sdram module. Please refer to   // the ddr2_sdram module for actual values.   parameter BANK_WIDTH     = 2,   parameter CKE_WIDTH      = 1,   parameter CLK_WIDTH      = 1,   parameter COL_WIDTH      = 10,   parameter CS_BITS        = 0,   parameter CS_NUM         = 1,   parameter CS_WIDTH       = 1,   parameter DM_WIDTH       = 9,   parameter DQ_WIDTH       = 72,   parameter DQ_BITS        = 7,   parameter DQ_PER_DQS     = 8,   parameter DQS_BITS       = 4,   parameter DQS_WIDTH      = 9,   parameter ODT_WIDTH      = 1,   parameter ROW_WIDTH      = 14,   parameter APPDATA_WIDTH  = 144,   parameter ADDITIVE_LAT   = 0,   parameter BURST_LEN      = 4,   parameter BURST_TYPE     = 0,   parameter CAS_LAT        = 5,   parameter ECC_ENABLE     = 0,   parameter MULTI_BANK_EN  = 1,   parameter TWO_T_TIME_EN  = 0,   parameter ODT_TYPE       = 1,   parameter DDR_TYPE       = 1,   parameter REDUCE_DRV     = 0,   parameter REG_ENABLE     = 1,   parameter TREFI_NS       = 7800,   parameter TRAS           = 40000,   parameter TRCD           = 15000,   parameter TRFC           = 105000,   parameter TRP            = 15000,   parameter TRTP           = 7500,   parameter TWR            = 15000,   parameter TWTR           = 10000,   parameter CLK_PERIOD     = 3000,   parameter SIM_ONLY       = 0,   parameter DEBUG_EN       = 0,   parameter DQS_IO_COL     = 0,   parameter DQ_IO_MS       = 0   )  (   input                                    clk0,   input                                    clk90,   input                                    clkdiv0,   input                                    rst0,   input                                    rst90,   input                                    rstdiv0,   input [2:0]                              app_af_cmd,   input [30:0]                             app_af_addr,   input                                    app_af_wren,   input                                    app_wdf_wren,   input [APPDATA_WIDTH-1:0]                app_wdf_data,   input [(APPDATA_WIDTH/8)-1:0]            app_wdf_mask_data,   output [1:0]                             rd_ecc_error,   output                                   app_af_afull,   output                                   app_wdf_afull,   output                                   rd_data_valid,   output [APPDATA_WIDTH-1:0]               rd_data_fifo_out,   output                                   phy_init_done,   output [CLK_WIDTH-1:0]                   ddr_ck,   output [CLK_WIDTH-1:0]                   ddr_ck_n,   output [ROW_WIDTH-1:0]                   ddr_addr,   output [BANK_WIDTH-1:0]                  ddr_ba,   output                                   ddr_ras_n,   output                                   ddr_cas_n,   output                                   ddr_we_n,   output [CS_WIDTH-1:0]                    ddr_cs_n,   output [CKE_WIDTH-1:0]                   ddr_cke,   output [ODT_WIDTH-1:0]                   ddr_odt,   output [DM_WIDTH-1:0]                    ddr_dm,   inout [DQS_WIDTH-1:0]                    ddr_dqs,   inout [DQS_WIDTH-1:0]                    ddr_dqs_n,   inout [DQ_WIDTH-1:0]                     ddr_dq,   // Debug signals (optional use)   input                                    dbg_idel_up_all,   input                                    dbg_idel_down_all,   input                                    dbg_idel_up_dq,   input                                    dbg_idel_down_dq,   input                                    dbg_idel_up_dqs,   input                                    dbg_idel_down_dqs,   input                                    dbg_idel_up_gate,   input                                    dbg_idel_down_gate,   input [DQ_BITS-1:0]                      dbg_sel_idel_dq,   input                                    dbg_sel_all_idel_dq,   input [DQS_BITS:0]                       dbg_sel_idel_dqs,   input                                    dbg_sel_all_idel_dqs,   input [DQS_BITS:0]                       dbg_sel_idel_gate,   input                                    dbg_sel_all_idel_gate,   output [3:0]                             dbg_calib_done,   output [3:0]                             dbg_calib_err,   output [(6*DQ_WIDTH)-1:0]                dbg_calib_dq_tap_cnt,   output [(6*DQS_WIDTH)-1:0]               dbg_calib_dqs_tap_cnt,   output [(6*DQS_WIDTH)-1:0]               dbg_calib_gate_tap_cnt,   output [DQS_WIDTH-1:0]                   dbg_calib_rd_data_sel,   output [(5*DQS_WIDTH)-1:0]               dbg_calib_rden_dly,   output [(5*DQS_WIDTH)-1:0]               dbg_calib_gate_dly   );  wire [30:0]                       af_addr;  wire [2:0]                        af_cmd;  wire                              af_empty;  wire [ROW_WIDTH-1:0]              ctrl_addr;  wire                              ctrl_af_rden;  wire [BANK_WIDTH-1:0]             ctrl_ba;  wire                              ctrl_cas_n;  wire [CS_NUM-1:0]                 ctrl_cs_n;  wire                              ctrl_ras_n;  wire                              ctrl_rden;  wire                              ctrl_ref_flag;  wire                              ctrl_we_n;  wire                              ctrl_wren;  wire [DQS_WIDTH-1:0]              phy_calib_rden;  wire [DQS_WIDTH-1:0]              phy_calib_rden_sel;  wire [DQ_WIDTH-1:0]               rd_data_fall;  wire [DQ_WIDTH-1:0]               rd_data_rise;  wire [(2*DQ_WIDTH)-1:0]           wdf_data;  wire [((2*DQ_WIDTH)/8)-1:0]       wdf_mask_data;  wire                              wdf_rden;  //***************************************************************************  phy_top #    (     .BANK_WIDTH     (BANK_WIDTH),     .CKE_WIDTH      (CKE_WIDTH),     .CLK_WIDTH      (CLK_WIDTH),     .COL_WIDTH      (COL_WIDTH),     .CS_NUM         (CS_NUM),     .CS_WIDTH       (CS_WIDTH),     .DM_WIDTH       (DM_WIDTH),     .DQ_WIDTH       (DQ_WIDTH),     .DQ_BITS        (DQ_BITS),     .DQ_PER_DQS     (DQ_PER_DQS),     .DQS_BITS       (DQS_BITS),     .DQS_WIDTH      (DQS_WIDTH),     .ODT_WIDTH      (ODT_WIDTH),     .ROW_WIDTH      (ROW_WIDTH),     .TWO_T_TIME_EN  (TWO_T_TIME_EN),     .ADDITIVE_LAT   (ADDITIVE_LAT),     .BURST_LEN      (BURST_LEN),     .BURST_TYPE     (BURST_TYPE),     .CAS_LAT        (CAS_LAT),     .ECC_ENABLE     (ECC_ENABLE),     .ODT_TYPE       (ODT_TYPE),     .DDR_TYPE       (DDR_TYPE),     .REDUCE_DRV     (REDUCE_DRV),     .REG_ENABLE     (REG_ENABLE),     .CLK_PERIOD     (CLK_PERIOD),     .SIM_ONLY       (SIM_ONLY),     .DEBUG_EN       (DEBUG_EN),     .DQS_IO_COL     (DQS_IO_COL),     .DQ_IO_MS       (DQ_IO_MS)     )    u_phy_top      (       .clk0                   (clk0),       .clk90                  (clk90),       .clkdiv0                (clkdiv0),       .rst0                   (rst0),       .rst90                  (rst90),       .rstdiv0                (rstdiv0),       .ctrl_wren              (ctrl_wren),       .ctrl_addr              (ctrl_addr),       .ctrl_ba                (ctrl_ba),       .ctrl_ras_n             (ctrl_ras_n),       .ctrl_cas_n             (ctrl_cas_n),       .ctrl_we_n              (ctrl_we_n),       .ctrl_cs_n              (ctrl_cs_n),       .ctrl_rden              (ctrl_rden),       .ctrl_ref_flag          (ctrl_ref_flag),       .wdf_data               (wdf_data),       .wdf_mask_data          (wdf_mask_data),       .wdf_rden               (wdf_rden),       .phy_init_done          (phy_init_done),       .phy_calib_rden         (phy_calib_rden),       .phy_calib_rden_sel     (phy_calib_rden_sel),       .rd_data_rise           (rd_data_rise),       .rd_data_fall           (rd_data_fall),       .ddr_ck                 (ddr_ck),       .ddr_ck_n               (ddr_ck_n),       .ddr_addr               (ddr_addr),       .ddr_ba                 (ddr_ba),       .ddr_ras_n              (ddr_ras_n),       .ddr_cas_n              (ddr_cas_n),       .ddr_we_n               (ddr_we_n),       .ddr_cs_n               (ddr_cs_n),       .ddr_cke                (ddr_cke),       .ddr_odt                (ddr_odt),       .ddr_dm                 (ddr_dm),       .ddr_dqs                (ddr_dqs),       .ddr_dqs_n              (ddr_dqs_n),       .ddr_dq                 (ddr_dq),       .dbg_idel_up_all        (dbg_idel_up_all),       .dbg_idel_down_all      (dbg_idel_down_all),       .dbg_idel_up_dq         (dbg_idel_up_dq),       .dbg_idel_down_dq       (dbg_idel_down_dq),       .dbg_idel_up_dqs        (dbg_idel_up_dqs),       .dbg_idel_down_dqs      (dbg_idel_down_dqs),       .dbg_idel_up_gate       (dbg_idel_up_gate),       .dbg_idel_down_gate     (dbg_idel_down_gate),       .dbg_sel_idel_dq        (dbg_sel_idel_dq),       .dbg_sel_all_idel_dq    (dbg_sel_all_idel_dq),       .dbg_sel_idel_dqs       (dbg_sel_idel_dqs),       .dbg_sel_all_idel_dqs   (dbg_sel_all_idel_dqs),       .dbg_sel_idel_gate      (dbg_sel_idel_gate),       .dbg_sel_all_idel_gate  (dbg_sel_all_idel_gate),       .dbg_calib_done         (dbg_calib_done),       .dbg_calib_err          (dbg_calib_err),       .dbg_calib_dq_tap_cnt   (dbg_calib_dq_tap_cnt),       .dbg_calib_dqs_tap_cnt  (dbg_calib_dqs_tap_cnt),       .dbg_calib_gate_tap_cnt (dbg_calib_gate_tap_cnt),       .dbg_calib_rd_data_sel  (dbg_calib_rd_data_sel),       .dbg_calib_rden_dly     (dbg_calib_rden_dly),       .dbg_calib_gate_dly     (dbg_calib_gate_dly)       );  usr_top #    (     .BANK_WIDTH    (BANK_WIDTH),     .COL_WIDTH     (COL_WIDTH),     .CS_BITS       (CS_BITS),     .DQ_WIDTH      (DQ_WIDTH),     .DQ_PER_DQS    (DQ_PER_DQS),     .DQS_WIDTH     (DQS_WIDTH),     .APPDATA_WIDTH (APPDATA_WIDTH),     .ECC_ENABLE    (ECC_ENABLE),     .ROW_WIDTH     (ROW_WIDTH)     )    u_usr_top      (       .clk0              (clk0),       .clk90             (clk90),       .rst0              (rst0),       .rd_data_in_rise   (rd_data_rise),       .rd_data_in_fall   (rd_data_fall),       .phy_calib_rden    (phy_calib_rden),       .phy_calib_rden_sel(phy_calib_rden_sel),       .rd_data_valid     (rd_data_valid),       .rd_ecc_error      (rd_ecc_error),       .rd_data_fifo_out  (rd_data_fifo_out),       .app_af_cmd        (app_af_cmd),       .app_af_addr       (app_af_addr),       .app_af_wren       (app_af_wren),       .ctrl_af_rden      (ctrl_af_rden),       .af_cmd            (af_cmd),       .af_addr           (af_addr),       .af_empty          (af_empty),       .app_af_afull      (app_af_afull),       .app_wdf_wren      (app_wdf_wren),       .app_wdf_data      (app_wdf_data),       .app_wdf_mask_data (app_wdf_mask_data),       .wdf_rden          (wdf_rden),       .app_wdf_afull     (app_wdf_afull),       .wdf_data          (wdf_data),       .wdf_mask_data     (wdf_mask_data)       );  ctrl #    (     .BANK_WIDTH    (BANK_WIDTH),     .COL_WIDTH     (COL_WIDTH),     .CS_BITS       (CS_BITS),     .CS_NUM        (CS_NUM),     .ROW_WIDTH     (ROW_WIDTH),     .ADDITIVE_LAT  (ADDITIVE_LAT),     .BURST_LEN     (BURST_LEN),     .CAS_LAT       (CAS_LAT),     .ECC_ENABLE    (ECC_ENABLE),     .REG_ENABLE    (REG_ENABLE),     .MULTI_BANK_EN (MULTI_BANK_EN),     .TWO_T_TIME_EN (TWO_T_TIME_EN),     .TREFI_NS      (TREFI_NS),     .TRAS          (TRAS),     .TRCD          (TRCD),     .TRFC          (TRFC),     .TRP           (TRP),     .TRTP          (TRTP),     .TWR           (TWR),     .TWTR          (TWTR),     .CLK_PERIOD    (CLK_PERIOD),     .DDR_TYPE      (DDR_TYPE)     )    u_ctrl      (       .clk           (clk0),       .rst           (rst0),       .af_cmd        (af_cmd),       .af_addr       (af_addr),       .af_empty      (af_empty),       .phy_init_done (phy_init_done),       .ctrl_ref_flag (ctrl_ref_flag),       .ctrl_af_rden  (ctrl_af_rden),       .ctrl_wren     (ctrl_wren),       .ctrl_rden     (ctrl_rden),       .ctrl_addr     (ctrl_addr),       .ctrl_ba       (ctrl_ba),       .ctrl_ras_n    (ctrl_ras_n),       .ctrl_cas_n    (ctrl_cas_n),       .ctrl_we_n     (ctrl_we_n),       .ctrl_cs_n     (ctrl_cs_n)       );endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -