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

📄 mem_interface_top_top_0.txt

📁 利用fpga读写ddr的源代码 实测可以使用
💻 TXT
字号:
///////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2005 Xilinx, Inc.
// This design is confidential and proprietary of Xilinx, All Rights Reserved.
///////////////////////////////////////////////////////////////////////////////
//   ____  ____
//  /   /\/   /
// /___/  \  /   Vendor             : Xilinx
// \   \   \/    Version            : $Name: mig_v1_7 $
//  \   \        Application        : MIG
//  /   /        Filename           : mem_interface_top_top_0.v
// /___/   /\    Date Last Modified : $Date: 2007/02/15 12:06:16 $
// \   \  /  \   Date Created       : Mon May 2 2005
//  \___\/\___\
//
// Device      : Virtex-4
// Design Name : DDR SDRAM
// Description: Instantiates the main design logic of memory interface and
//              interfaces with the user.
///////////////////////////////////////////////////////////////////////////////

`timescale 1ns / 1ps
`include "../rtl/mem_interface_top_parameters_0.v"

module mem_interface_top_top_0
  (
   input                           clk_0,
   input                           clk_90,
   input                           sys_rst,
   input                           sys_rst90,
   input                           idelay_ctrl_rdy,
   input  [35:0]                   APP_AF_ADDR,
   input                           APP_AF_WREN,
   input [(`data_width*2)-1:0]     APP_WDF_DATA,
   input                           APP_WDF_WREN,
   inout [`data_width-1:0]         DDR_DQ,
   inout [`data_strobe_width-1:0]  DDR_DQS,
   output                          DDR_RAS_N,
   output                          DDR_CAS_N,
   output                          DDR_WE_N,
   output [`cke_width-1:0]         DDR_CKE,
   output [`no_of_cs-1:0]          DDR_CS_N,
   output[`data_mask_width-1:0]     DDR_DM,
         input [(`data_mask_width*2)-1:0]   APP_MASK_DATA,
 
   
   output [`bank_address-1:0]      DDR_BA,
   output [`row_address-1:0]       DDR_A,
   output [`clk_width-1:0]         DDR_CK,
   output [`clk_width-1:0]         DDR_CK_N,
   output                          CLK_TB,
   output                          RESET_TB,
   output                          init_done,
   //test bench signals
   output                          WDF_ALMOST_FULL,
   output                          AF_ALMOST_FULL,
   output [2:0]                    BURST_LENGTH,
   output                          READ_DATA_VALID,
   output [(`data_width*2)-1:0]    READ_DATA_FIFO_OUT
   );

   wire [(`data_width*2)-1:0]      wr_df_data;
   wire [(`data_mask_width*2)-1:0] mask_df_data;
   wire [`data_width-1:0]          rd_data_rise ;
   wire [`data_width-1:0]          rd_data_fall ;
   wire                            af_empty_w;
   wire                            dq_tap_sel_done;
   wire [35:0]                     af_addr;
   wire                            ctrl_af_rden;
   wire                            ctrl_wr_df_rden;
   wire                            ctrl_dummy_rden;
   wire                            ctrl_dqs_enable;
   wire                            ctrl_dqs_reset;
   wire                            ctrl_wr_en;
   wire                            ctrl_rden;
   wire [`ReadEnable-1:0]          dqs_idelay_inc;
   wire [`ReadEnable-1:0]          dqs_idelay_ce;
   wire [`ReadEnable-1:0]          dqs_idelay_rst;
   wire [`ReadEnable-1:0]          data_idelay_inc;
   wire [`ReadEnable-1:0]          data_idelay_ce;
   wire [`ReadEnable-1:0]          data_idelay_rst;
   wire                            wr_en;
   wire                            dqs_rst;
   wire                            dqs_en;
   wire [`data_width-1:0]          wr_data_rise;
   wire [`data_width-1:0]          wr_data_fall;
   wire [`data_strobe_width-1:0]   dqs_delayed;
   wire [`data_mask_width-1:0]     mask_data_fall;
   wire [`data_mask_width-1:0]     mask_data_rise;
   wire [`row_address-1:0]         ctrl_ddr_address;
   wire [`bank_address-1:0]        ctrl_ddr_ba;
   wire                            ctrl_ddr_ras_L;
   wire                            ctrl_ddr_cas_L;
   wire                            ctrl_ddr_we_L;
   wire [`no_of_cs-1:0]            ctrl_ddr_cs_L;
   wire [`cke_width-1:0]           ctrl_ddr_cke;
   wire                            dummy_write_pattern;
   

   assign CLK_TB      = clk_0;
   assign RESET_TB    = sys_rst;
   

   mem_interface_top_data_path_0 data_path_00
             (
              .CLK                       (clk_0),
              .CLK90                     (clk_90),
              .RESET0                    (sys_rst),
              .RESET90                   (sys_rst90),
              .idelay_ctrl_rdy           (idelay_ctrl_rdy),
              .CTRL_DUMMYREAD_START      (ctrl_dummy_rden),
              .dummy_write_pattern       (dummy_write_pattern),
              .WDF_DATA                  (wr_df_data),
              .MASK_DATA                 (mask_df_data),
              .CTRL_WREN                 (ctrl_wr_en),
              .CTRL_DQS_RST              (ctrl_dqs_reset),
              .CTRL_DQS_EN               (ctrl_dqs_enable),
              .dqs_delayed               (dqs_delayed),
              .data_idelay_inc           (data_idelay_inc),
              .data_idelay_ce            (data_idelay_ce),
              .data_idelay_rst           (data_idelay_rst),
              .dqs_idelay_inc            (dqs_idelay_inc),
              .dqs_idelay_ce             (dqs_idelay_ce),
              .dqs_idelay_rst            (dqs_idelay_rst),
              .SEL_DONE                  (dq_tap_sel_done),
              .dqs_rst                   (dqs_rst),
              .dqs_en                    (dqs_en),
              .wr_en                     (wr_en),
              .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_iobs_0 iobs_00
             (
              .DDR_CK                      (DDR_CK),
              .DDR_CK_N                    (DDR_CK_N),
              .CLK                         (clk_0),
              .CLK90                       (clk_90),
              .RESET0                      (sys_rst),
              .RESET90                     (sys_rst90),
              .dqs_idelay_inc              (dqs_idelay_inc),
              .dqs_idelay_ce               (dqs_idelay_ce),
              .dqs_idelay_rst              (dqs_idelay_rst),
              .data_idelay_inc             (data_idelay_inc),
              .data_idelay_ce              (data_idelay_ce),
              .data_idelay_rst             (data_idelay_rst),
              .dqs_rst                     (dqs_rst),
              .dqs_en                      (dqs_en),
              .wr_en                       (wr_en),
              .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),
              .dqs_delayed                 (dqs_delayed),
              .DDR_DQ                      (DDR_DQ),
              .DDR_DQS                     (DDR_DQS),
              .DDR_DM                      (DDR_DM),
              .ctrl_ddr_address            (ctrl_ddr_address),
              .ctrl_ddr_ba                 (ctrl_ddr_ba),
              .ctrl_ddr_ras_L              (ctrl_ddr_ras_L),
              .ctrl_ddr_cas_L              (ctrl_ddr_cas_L),
              .ctrl_ddr_we_L               (ctrl_ddr_we_L),
              .ctrl_ddr_cs_L               (ctrl_ddr_cs_L),
              .ctrl_ddr_cke                (ctrl_ddr_cke),
              .DDR_ADDRESS                 (DDR_A),
              .DDR_BA                      (DDR_BA),
              .DDR_RAS_L                   (DDR_RAS_N),
              .DDR_CAS_L                   (DDR_CAS_N),
              .DDR_WE_L                    (DDR_WE_N),
              .DDR_CKE                     (DDR_CKE),
              .ddr_cs_L                    (DDR_CS_N)

              );

   mem_interface_top_user_interface_0 user_interface_00
             (
              .CLK                    (clk_0),
              .clk90                  (clk_90),
              .RESET                  (sys_rst),
              .ctrl_rden              (ctrl_rden),
              .READ_DATA_RISE         (rd_data_rise),
              .READ_DATA_FALL         (rd_data_fall),
              .READ_DATA_FIFO_OUT     (READ_DATA_FIFO_OUT),
              .READ_DATA_VALID        (READ_DATA_VALID),
              .AF_EMPTY               (af_empty_w),
              .AF_ALMOST_FULL         (AF_ALMOST_FULL),
              .APP_AF_ADDR            (APP_AF_ADDR),
              .APP_AF_WREN            (APP_AF_WREN),
              .CTRL_AF_RDEN           (ctrl_af_rden),
              .AF_ADDR                (af_addr),
              .APP_WDF_DATA           (APP_WDF_DATA),
              .APP_MASK_DATA          (APP_MASK_DATA),
              .APP_WDF_WREN           (APP_WDF_WREN),
              .CTRL_WDF_RDEN          (ctrl_wr_df_rden),
              .comp_done              (comp_done),
              .WDF_DATA               (wr_df_data),
              .MASK_DATA              (mask_df_data),
              .WDF_ALMOST_FULL        (WDF_ALMOST_FULL)
              );


   mem_interface_top_ddr_controller_0 ddr_controller_00
             (
              .clk_0                     (clk_0),
              .rst                       (sys_rst),
              .burst_length              (BURST_LENGTH),
              .af_addr                   (af_addr),
              .af_empty                  (af_empty_w),
              .comp_done                 (comp_done),
              .phy_Dly_Slct_Done         (dq_tap_sel_done),
              .ctrl_Dummyread_Start      (ctrl_dummy_rden),
              .dummy_write_pattern       (dummy_write_pattern),
              .ctrl_af_RdEn              (ctrl_af_rden),
              .ctrl_Wdf_RdEn             (ctrl_wr_df_rden),
              .ctrl_Dqs_Rst              (ctrl_dqs_reset),
              .ctrl_Dqs_En               (ctrl_dqs_enable),
              .ctrl_WrEn                 (ctrl_wr_en),
              .ctrl_RdEn                 (ctrl_rden),
              .ctrl_ddr_address          (ctrl_ddr_address),
              .ctrl_ddr_ba               (ctrl_ddr_ba),
              .ctrl_ddr_ras_L            (ctrl_ddr_ras_L),
              .ctrl_ddr_cas_L            (ctrl_ddr_cas_L),
              .ctrl_ddr_we_L             (ctrl_ddr_we_L),
              .ctrl_ddr_cs_L             (ctrl_ddr_cs_L),
              .ctrl_ddr_cke              (ctrl_ddr_cke),
              .init_done                 (init_done)
              );


endmodule

⌨️ 快捷键说明

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