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_iobs_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, 2008 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_iobs_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 instantiations s3_dq_iob, s3_dqs_iob 
52
//                and ddr_dm modules.
53
//*****************************************************************************
54
 
55
`timescale 1ns/100ps
56
`include "../rtl/ddr_parameters_0.v"
57
 
58
module ddr_data_path_iobs_0
59
  (
60
   input                             clk,
61
   input                             clk90,
62
   input                             dqs_reset,
63
   input                             dqs_enable,
64
   inout  [(`DATA_STROBE_WIDTH-1):0] ddr_dqs,
65
   inout  [(`DATA_WIDTH-1):0]        ddr_dq,
66
   inout  [(`DATA_STROBE_WIDTH-1):0] ddr_dqs_n,
67
   output [(`DATA_STROBE_WIDTH-1):0] dqs_int_delay_in,
68
   output [((`DATA_MASK_WIDTH)-1):0] ddr_dm,
69
   input  [(`DATA_WIDTH-1):0]        write_data_falling,
70
   input  [(`DATA_WIDTH-1):0]        write_data_rising,
71
   input                             write_en_val,
72
   input  [(`DATA_MASK_WIDTH-1):0]   data_mask_f,
73
   input  [(`DATA_MASK_WIDTH-1):0]   data_mask_r,
74
   output [(`DATA_WIDTH-1):0]        ddr_dq_val
75
   );
76
 
77
   wire [(`DATA_WIDTH-1):0]           ddr_dq_in;
78
 
79
   localparam MASK_CHK = `MASK_ENABLE;
80
 
81
   assign ddr_dq_val = ddr_dq_in;
82
 
83
//***********************************************************************
84
// DM IOB instantiations
85
//***********************************************************************
86
  genvar mask_i;
87
   generate
88
     if(MASK_CHK == 1'd1) begin : MASK_INST
89
       for(mask_i = 0; mask_i < `DATA_MASK_WIDTH; mask_i = mask_i+1) begin: gen_dm
90
         ddr_s3_dm_iob s3_dm_iob_inst
91
           (
92
            .ddr_dm       (ddr_dm[mask_i]),
93
            .mask_falling (data_mask_f[mask_i]),
94
            .mask_rising  (data_mask_r[mask_i]),
95
            .clk90        (clk90)
96
            );
97
       end
98
     end
99
   endgenerate
100
 
101
 
102
//******************************************************************************
103
// Read Data Capture Module Instantiations
104
//******************************************************************************
105
// DQS IOB instantiations
106
//******************************************************************************
107
 
108
 
109
  genvar dqs_i;
110
  generate
111
    for(dqs_i = 0; dqs_i < `DATA_STROBE_WIDTH; dqs_i = dqs_i+1) begin: gen_dqs
112
         ddr_s3_dqs_iob  s3_dqs_iob_inst
113
     (
114
      .clk            (clk),
115
      .ddr_dqs_reset  (dqs_reset),
116
      .ddr_dqs_enable (dqs_enable),
117
      .ddr_dqs        (ddr_dqs[dqs_i]),
118
      .ddr_dqs_n      (ddr_dqs_n[dqs_i]),
119
      .dqs            (dqs_int_delay_in[dqs_i])
120
      );
121
  end
122
  endgenerate
123
 
124
 
125
 
126
 
127
//******************************************************************************
128
// DDR Data bit instantiations
129
//******************************************************************************
130
 
131
   genvar dq_i;
132
   generate
133
      for(dq_i = 0; dq_i < `DATA_WIDTH; dq_i = dq_i+1) begin: gen_dq
134
         ddr_s3_dq_iob  s3_dq_iob_inst
135
           (
136
            .ddr_dq_inout       (ddr_dq[dq_i]),
137
            .write_data_falling (write_data_falling[dq_i]),
138
            .write_data_rising  (write_data_rising[dq_i]),
139
            .read_data_in       (ddr_dq_in[dq_i]),
140
            .clk90              (clk90),
141
            .write_en_val       (write_en_val)
142
            );
143
      end
144
   endgenerate
145
 
146
endmodule

powered by: WebSVN 2.1.0

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