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

📄 mem_interface_top_phy_top_0.v

📁 sata_device_model,对做硬盘控制器的朋友有帮助
💻 V
字号:
//*****************************************************************************
// Copyright (c) 2006 Xilinx, Inc.
// This design is confidential and proprietary of Xilinx, Inc.
// All Rights Reserved
//*****************************************************************************
//   ____  ____
//  /   /\/   /
// /___/  \  /    Vendor: Xilinx
// \   \   \/     Version: $Name: i+IP+125372 $
//  \   \         Application: MIG
//  /   /         Filename: mem_interface_top_phy_top_0.v
// /___/   /\     Date Last Modified: $Date: 2007/04/18 13:49:32 $
// \   \  /  \    Date Created: Wed Aug 16 2006
//  \___\/\___\
//
//Device: Virtex-5
//Design Name: DDR2
//Purpose:
//Reference:
//Revision History:
//*****************************************************************************

`timescale 1ns/1ps

module mem_interface_top_phy_top_0 #
  (
   parameter BANK_WIDTH     = 3,
   parameter CLK_WIDTH      = 1,
   parameter CKE_WIDTH      = 1,
   parameter COL_WIDTH      = 10,
   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_WIDTH      = 9,
   parameter DQS_BITS       = 4,
   parameter ODT_WIDTH      = 1,
   parameter ROW_WIDTH      = 14,
   parameter ADDITIVE_LAT   = 0,
   parameter BURST_LEN      = 4,
   parameter BURST_TYPE     = 0,
   parameter CAS_LAT        = 3,
   parameter ECC_ENABLE     = 0,
   parameter ODT_TYPE       = 0,
   parameter REDUCE_DRV     = 0,
   parameter REG_ENABLE     = 1,
   parameter CLK_PERIOD     = 5000,
   parameter DDR2_ENABLE    = 1,
   parameter DQS_GATE_EN    = 0,
   parameter IDEL_HIGH_PERF = "TRUE",
   parameter SIM_ONLY       = 0
   )
  (
   input                                  clk0,
   input                                  clk90,
   input                                  rst0,
   input                                  rst90,
   input                                  ctrl_wren,
   input [ROW_WIDTH-1:0]                  ctrl_addr,
   input [BANK_WIDTH-1:0]                 ctrl_ba,
   input                                  ctrl_ras_n,
   input                                  ctrl_cas_n,
   input                                  ctrl_we_n,
   input [CS_NUM-1:0]                     ctrl_cs_n,
   input                                  ctrl_rden,
   input                                  ctrl_ref_flag,
   input [(2*DQ_WIDTH)-1:0]               wdf_data,
   input [(2*DQ_WIDTH/8)-1:0]             wdf_mask_data,
   output                                 wdf_rden,
   output                                 phy_init_done,
   output [DQS_WIDTH-1:0]                 phy_calib_rden,
   output                                 phy_init_wdf_wren,
   output [63:0]                          phy_init_wdf_data,
   output [DQ_WIDTH-1:0]                  rd_data_rise,
   output [DQ_WIDTH-1:0]                  rd_data_fall,
   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
   );

  wire [3:0]              calib_done;
  wire [3:0]              calib_start;
  wire                    dq_oe_n;
  wire                    dqs_oe_n;
  wire                    dqs_rst_n;
  wire [(DQ_WIDTH/8)-1:0] mask_data_fall;
  wire [(DQ_WIDTH/8)-1:0] mask_data_rise;
  wire [ROW_WIDTH-1:0]    phy_init_addr;
  wire [BANK_WIDTH-1:0]   phy_init_ba;
  wire                    phy_init_cas_n;
  wire [CKE_WIDTH-1:0]    phy_init_cke;
  wire [CS_NUM-1:0]       phy_init_cs_n;
  wire                    phy_init_ras_n;
  wire                    phy_init_rden;
  wire                    phy_init_we_n;
  wire                    phy_init_wren;
  wire [DQ_WIDTH-1:0]     wr_data_fall;
  wire [DQ_WIDTH-1:0]     wr_data_rise;

  mem_interface_top_phy_write_0 #
    (
     .DQ_WIDTH     (DQ_WIDTH),
     .ADDITIVE_LAT (ADDITIVE_LAT),
     .CAS_LAT      (CAS_LAT),
     .ECC_ENABLE   (ECC_ENABLE),
     .ODT_TYPE     (ODT_TYPE),
     .REG_ENABLE   (REG_ENABLE),
     .DDR2_ENABLE  (DDR2_ENABLE)
     )
    u_phy_write_0
      (
       .clk0               (clk0),
       .clk90              (clk90),
       .wdf_data           (wdf_data),
       .wdf_mask_data      (wdf_mask_data),
       .ctrl_wren          (ctrl_wren),
       .phy_init_wren      (phy_init_wren),
       .phy_init_done      (phy_init_done),
       .dq_oe_n            (dq_oe_n),
       .dqs_oe_n           (dqs_oe_n),
       .dqs_rst_n          (dqs_rst_n),
       .wdf_rden           (wdf_rden),
       .odt                (odt),
       .wr_data_rise       (wr_data_rise),
       .wr_data_fall       (wr_data_fall),
       .mask_data_rise     (mask_data_rise),
       .mask_data_fall     (mask_data_fall)
       );

  mem_interface_top_phy_io_0 #
    (
     .CLK_WIDTH      (CLK_WIDTH),
     .SIM_ONLY       (SIM_ONLY),
     .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),
     .ADDITIVE_LAT   (ADDITIVE_LAT),
     .CAS_LAT        (CAS_LAT),
     .ECC_ENABLE     (ECC_ENABLE),
     .REG_ENABLE     (REG_ENABLE),
     .CLK_PERIOD     (CLK_PERIOD),
     .DDR2_ENABLE    (DDR2_ENABLE),
     .DQS_GATE_EN    (DQS_GATE_EN),
     .IDEL_HIGH_PERF (IDEL_HIGH_PERF)
     )
    u_phy_io_0
      (
       .clk0            (clk0),
       .clk90           (clk90),
       .rst0            (rst0),
       .rst90           (rst90),
       .dq_oe_n         (dq_oe_n),
       .dqs_oe_n        (dqs_oe_n),
       .dqs_rst_n       (dqs_rst_n),
       .calib_start     (calib_start),
       .ctrl_rden       (ctrl_rden),
       .phy_init_rden   (phy_init_rden),
       .phy_init_done   (phy_init_done),
       .calib_done      (calib_done),
       .calib_rden      (phy_calib_rden),
       .wr_data_rise    (wr_data_rise),
       .wr_data_fall    (wr_data_fall),
       .mask_data_rise  (mask_data_rise),
       .mask_data_fall  (mask_data_fall),
       .rd_data_rise    (rd_data_rise),
       .rd_data_fall    (rd_data_fall),
       .ddr_ck          (ddr_ck),
       .ddr_ck_n        (ddr_ck_n),
       .ddr_dm          (ddr_dm),
       .ddr_dqs         (ddr_dqs),
       .ddr_dqs_n       (ddr_dqs_n),
       .ddr_dq          (ddr_dq)
       );

  mem_interface_top_phy_ctl_io_0 #
    (
     .BANK_WIDTH (BANK_WIDTH),
     .CKE_WIDTH  (CKE_WIDTH),
     .COL_WIDTH  (COL_WIDTH),
     .CS_NUM     (CS_NUM),
     .CS_WIDTH   (CS_WIDTH),
     .ODT_WIDTH  (ODT_WIDTH),
     .ROW_WIDTH  (ROW_WIDTH)
     )
    u_phy_ctl_io_0
      (
       .clk0           (clk0),
       .rst0           (rst0),
       .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),
       .phy_init_addr  (phy_init_addr),
       .phy_init_ba    (phy_init_ba),
       .phy_init_ras_n (phy_init_ras_n),
       .phy_init_cas_n (phy_init_cas_n),
       .phy_init_we_n  (phy_init_we_n),
       .phy_init_cs_n  (phy_init_cs_n),
       .phy_init_cke   (phy_init_cke),
       .phy_init_done  (phy_init_done),
       .odt            (odt),
       .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_cke        (ddr_cke),
       .ddr_cs_n       (ddr_cs_n),
       .ddr_odt        (ddr_odt)
       );

  mem_interface_top_phy_init_0 #
    (
     .BANK_WIDTH   (BANK_WIDTH),
     .CKE_WIDTH    (CKE_WIDTH),
     .COL_WIDTH    (COL_WIDTH),
     .CS_NUM       (CS_NUM),
     .DQ_WIDTH     (DQ_WIDTH),
     .ODT_WIDTH    (ODT_WIDTH),
     .ROW_WIDTH    (ROW_WIDTH),
     .ADDITIVE_LAT (ADDITIVE_LAT),
     .BURST_LEN    (BURST_LEN),
     .BURST_TYPE   (BURST_TYPE),
     .CAS_LAT      (CAS_LAT),
     .ODT_TYPE     (ODT_TYPE),
     .REDUCE_DRV   (REDUCE_DRV),
     .REG_ENABLE   (REG_ENABLE),
     .DDR2_ENABLE  (DDR2_ENABLE),
     .DQS_GATE_EN  (DQS_GATE_EN),
     .SIM_ONLY     (SIM_ONLY)
     )
    u_phy_init_0
      (
       .clk0                (clk0),
       .rst0                (rst0),
       .calib_done          (calib_done),
       .ctrl_ref_flag       (ctrl_ref_flag),
       .calib_start         (calib_start),
       .phy_init_wren       (phy_init_wren),
       .phy_init_rden       (phy_init_rden),
       .phy_init_wdf_wren   (phy_init_wdf_wren),
       .phy_init_wdf_data   (phy_init_wdf_data),
       .phy_init_addr       (phy_init_addr),
       .phy_init_ba         (phy_init_ba),
       .phy_init_ras_n      (phy_init_ras_n),
       .phy_init_cas_n      (phy_init_cas_n),
       .phy_init_we_n       (phy_init_we_n),
       .phy_init_cs_n       (phy_init_cs_n),
       .phy_init_cke        (phy_init_cke),
       .phy_init_done       (phy_init_done)
       );

endmodule

⌨️ 快捷键说明

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