OpenCores
URL https://opencores.org/ocsvn/next186_soc_pc/next186_soc_pc/trunk

Subversion Repositories next186_soc_pc

[/] [next186_soc_pc/] [trunk/] [HW/] [ddr/] [user_design/] [rtl/] [ddr_data_path_0.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ndumitrach
//*****************************************************************************
2
// DISCLAIMER OF LIABILITY
3
//
4
// This file contains proprietary and confidential information of
5
// Xilinx, Inc. ("Xilinx"), that is distributed under a license
6
// from Xilinx, and may be used, copied and/or disclosed only
7
// pursuant to the terms of a valid license agreement with Xilinx.
8
//
9
// XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION
10
// ("MATERIALS") "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
11
// EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING WITHOUT
12
// LIMITATION, ANY WARRANTY WITH RESPECT TO NONINFRINGEMENT,
13
// MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. Xilinx
14
// does not warrant that functions included in the Materials will
15
// meet the requirements of Licensee, or that the operation of the
16
// Materials will be uninterrupted or error-free, or that defects
17
// in the Materials will be corrected. Furthermore, Xilinx does
18
// not warrant or make any representations regarding use, or the
19
// results of the use, of the Materials in terms of correctness,
20
// accuracy, reliability or otherwise.
21
//
22
// Xilinx products are not designed or intended to be fail-safe,
23
// or for use in any application requiring fail-safe performance,
24
// such as life-support or safety devices or systems, Class III
25
// medical devices, nuclear facilities, applications related to
26
// the deployment of airbags, or any other applications that could
27
// lead to death, personal injury or severe property or
28
// environmental damage (individually and collectively, "critical
29
// applications"). Customer assumes the sole risk and liability
30
// of any use of Xilinx products in critical applications,
31
// subject only to applicable laws and regulations governing
32
// limitations on product liability.
33
//
34
// Copyright 2005, 2006, 2007 Xilinx, Inc.
35
// All rights reserved.
36
//
37
// This disclaimer and copyright notice must be retained as part
38
// of this file at all times.
39
//*****************************************************************************
40
//   ____  ____
41
//  /   /\/   /
42
// /___/  \  /   Vendor             : Xilinx
43
// \   \   \/    Version            : 3.6.1
44
//  \   \        Application        : MIG
45
//  /   /        Filename           : ddr_data_path_0.v
46
// /___/   /\    Date Last Modified : $Date: 2010/11/26 18:25:41 $
47
// \   \  /  \   Date Created       : Mon May 2 2005
48
//  \___\/\___\
49
// Device       : Spartan-3/3A/3A-DSP
50
// Design Name  : DDR2 SDRAM
51
// Purpose      : This module has the write and read data paths for the
52
//                DDR2 memory interface. The write data along with write enable
53
//                signals are forwarded to the DDR IOB FFs. The read data is
54
//                captured in CLB FFs and finally input to FIFOs.
55
//*****************************************************************************
56
 
57
`include "../rtl/ddr_parameters_0.v"
58
`timescale 1ns/100ps
59
module ddr_data_path_0
60
  (
61
   input [((`DATA_WIDTH*2)-1):0]       user_input_data,
62
   input [((`DATA_MASK_WIDTH*2) -1):0] user_data_mask,
63
   input                               clk,
64
   input                               clk90,
65
   input                               reset,
66
   input                               reset90,
67
   input                               write_enable,
68
   input                               rst_dqs_div_in,
69
   input [4:0]                         delay_sel,
70
   input [(`DATA_WIDTH-1):0]           dq,
71
   input [(`DATA_STROBE_WIDTH-1):0]    dqs_int_delay_in,
72
   input                               read_fifo_rden, // Added new signal
73
   output                              u_data_val,
74
   output [((`DATA_WIDTH*2)-1):0]      user_output_data,
75
   output                              write_en_val,
76
   output [((`DATA_MASK_WIDTH)-1):0]   data_mask_f,
77
   output [((`DATA_MASK_WIDTH)-1):0]   data_mask_r,
78
   output [(`DATA_WIDTH-1):0]          write_data_falling,
79
   output [(`DATA_WIDTH-1):0]          write_data_rising,
80
   //debug_signals
81
   input [4:0]                           vio_out_dqs,
82
   input                                vio_out_dqs_en,
83
   input [4:0]                          vio_out_rst_dqs_div,
84
   input                                vio_out_rst_dqs_div_en
85
   );
86
 
87
   wire  [(4*`DATA_STROBE_WIDTH)-1:0] fifo_0_wr_addr;
88
   wire  [(4*`DATA_STROBE_WIDTH)-1:0] fifo_1_wr_addr;
89
   wire  [(`DATA_STROBE_WIDTH-1):0]   dqs_delayed_col0;
90
   wire  [(`DATA_STROBE_WIDTH-1):0]   dqs_delayed_col1;
91
   wire  [(`DATA_STROBE_WIDTH-1):0]   fifo_0_wr_en/* synthesis syn_keep=1 */;
92
   wire  [(`DATA_STROBE_WIDTH-1):0]   fifo_1_wr_en/* synthesis syn_keep=1 */;
93
 
94
   ddr_data_read_0 data_read0
95
     (
96
      .clk90             (clk90),
97
      .reset90           (reset90),
98
      .ddr_dq_in         (dq),
99
      .fifo_0_wr_en      (fifo_0_wr_en),
100
      .fifo_1_wr_en      (fifo_1_wr_en),
101
      .fifo_0_wr_addr    (fifo_0_wr_addr),
102
      .fifo_1_wr_addr    (fifo_1_wr_addr),
103
      .dqs_delayed_col0  (dqs_delayed_col0),
104
      .dqs_delayed_col1  (dqs_delayed_col1),
105
      .read_fifo_rden    (read_fifo_rden),
106
      .user_output_data  (user_output_data),
107
      .u_data_val        (u_data_val)
108
      );
109
   ddr_data_read_controller_0  data_read_controller0
110
     (
111
      .clk                   (clk),
112
      .reset                 (reset),
113
      .rst_dqs_div_in        (rst_dqs_div_in),
114
      .delay_sel             (delay_sel),
115
      .dqs_int_delay_in      (dqs_int_delay_in),
116
      .fifo_0_wr_en_val      (fifo_0_wr_en),
117
      .fifo_1_wr_en_val      (fifo_1_wr_en),
118
      .fifo_0_wr_addr_val    (fifo_0_wr_addr),
119
      .fifo_1_wr_addr_val    (fifo_1_wr_addr),
120
      .dqs_delayed_col0_val  (dqs_delayed_col0),
121
      .dqs_delayed_col1_val  (dqs_delayed_col1),
122
   //debug_signals
123
      .vio_out_dqs            (vio_out_dqs),
124
      .vio_out_dqs_en         (vio_out_dqs_en),
125
      .vio_out_rst_dqs_div    (vio_out_rst_dqs_div),
126
      .vio_out_rst_dqs_div_en (vio_out_rst_dqs_div_en)
127
      );
128
 
129
 
130
   ddr_data_write_0 data_write0
131
     (
132
      .user_input_data    (user_input_data),
133
      .user_data_mask     (user_data_mask),
134
      .clk90              (clk90),
135
      .write_enable       (write_enable),
136
      .write_en_val       (write_en_val),
137
      .write_data_falling (write_data_falling),
138
      .write_data_rising  (write_data_rising),
139
      .data_mask_f        (data_mask_f),
140
      .data_mask_r        (data_mask_r)
141
      );
142
 
143
 
144
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.