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

Subversion Repositories usb_fpga_2_14

[/] [usb_fpga_2_14/] [trunk/] [examples/] [memfifo/] [fpga-2.13/] [memfifo.srcs/] [sources_1/] [ip/] [mig_7series_0/] [mig_7series_0/] [user_design/] [rtl/] [phy/] [mig_7series_v2_3_poc_top.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ZTEX
//*****************************************************************************
2
// (c) Copyright 2009 - 2012 Xilinx, Inc. All rights reserved.
3
//
4
// This file contains confidential and proprietary information
5
// of Xilinx, Inc. and is protected under U.S. and
6
// international copyright and other intellectual property
7
// laws.
8
//
9
// DISCLAIMER
10
// This disclaimer is not a license and does not grant any
11
// rights to the materials distributed herewith. Except as
12
// otherwise provided in a valid license issued to you by
13
// Xilinx, and to the maximum extent permitted by applicable
14
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
15
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
16
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
17
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
18
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
19
// (2) Xilinx shall not be liable (whether in contract or tort,
20
// including negligence, or under any other theory of
21
// liability) for any loss or damage of any kind or nature
22
// related to, arising under or in connection with these
23
// materials, including for any direct, or any indirect,
24
// special, incidental, or consequential loss or damage
25
// (including loss of data, profits, goodwill, or any type of
26
// loss or damage suffered as a result of any action brought
27
// by a third party) even if such damage or loss was
28
// reasonably foreseeable or Xilinx had been advised of the
29
// possibility of the same.
30
//
31
// CRITICAL APPLICATIONS
32
// Xilinx products are not designed or intended to be fail-
33
// safe, or for use in any application requiring fail-safe
34
// performance, such as life-support or safety devices or
35
// systems, Class III medical devices, nuclear facilities,
36
// applications related to the deployment of airbags, or any
37
// other applications that could lead to death, personal
38
// injury, or severe property or environmental damage
39
// (individually and collectively, "Critical
40
// Applications"). Customer assumes the sole risk and
41
// liability of any use of Xilinx products in Critical
42
// Applications, subject only to applicable laws and
43
// regulations governing limitations on product liability.
44
//
45
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
46
// PART OF THIS FILE AT ALL TIMES.
47
//
48
//*****************************************************************************
49
//   ____  ____
50
//  /   /\/   /
51
// /___/  \  /    Vendor: Xilinx
52
// \   \   \/     Version:%version
53
//  \   \         Application: MIG
54
//  /   /         Filename: mig_7series_v2_3_poc_top.v
55
// /___/   /\     Date Last Modified: $$
56
// \   \  /  \    Date Created:Tue 15 Jan 2014
57
//  \___\/\___\
58
//
59
//Device: Virtex-7
60
//Design Name: DDR3 SDRAM
61
//Purpose: Phaser out calibration top.
62
//Reference:
63
//Revision History:
64
//*****************************************************************************
65
 
66
`timescale 1 ps / 1 ps
67
 
68
module mig_7series_v2_3_poc_top #
69
  (parameter MMCM_SAMP_WAIT             = 10,
70
   parameter PCT_SAMPS_SOLID            = 95,
71
   parameter POC_USE_METASTABLE_SAMP    = "FALSE",
72
   parameter TCQ                        = 100,
73
   parameter CCENABLE                   = 0,
74
   parameter SCANFROMRIGHT              = 0,
75
   parameter SAMPCNTRWIDTH              = 8,
76
   parameter SAMPLES                    = 128,
77
   parameter TAPCNTRWIDTH               = 7,
78
   parameter TAPSPERKCLK                =112)
79
  (/*AUTOARG*/
80
  // Outputs
81
  psincdec, poc_error, poc_backup, psen, rise_lead_right,
82
  rise_trail_right, mmcm_edge_detect_done, mmcm_lbclk_edge_aligned,
83
  // Inputs
84
  use_noise_window, rst, psdone, poc_sample_pd, pd_out,
85
  ninety_offsets, mmcm_edge_detect_rdy, ktap_at_right_edge,
86
  ktap_at_left_edge, clk
87
  );
88
 
89
  /*AUTOINPUT*/
90
  // Beginning of automatic inputs (from unused autoinst inputs)
91
  input                 clk;                    // To u_poc_tap_base of mig_7series_v2_3_poc_tap_base.v, ...
92
  input                 ktap_at_left_edge;      // To u_poc_meta of mig_7series_v2_3_poc_meta.v, ...
93
  input                 ktap_at_right_edge;     // To u_poc_meta of mig_7series_v2_3_poc_meta.v, ...
94
  input                 mmcm_edge_detect_rdy;   // To u_poc_meta of mig_7series_v2_3_poc_meta.v
95
  input [1:0]            ninety_offsets;         // To u_poc_meta of mig_7series_v2_3_poc_meta.v
96
  input                 pd_out;                 // To u_poc_tap_base of mig_7series_v2_3_poc_tap_base.v
97
  input                 poc_sample_pd;          // To u_poc_tap_base of mig_7series_v2_3_poc_tap_base.v
98
  input                 psdone;                 // To u_poc_tap_base of mig_7series_v2_3_poc_tap_base.v
99
  input                 rst;                    // To u_poc_tap_base of mig_7series_v2_3_poc_tap_base.v, ...
100
  input                 use_noise_window;       // To u_poc_meta of mig_7series_v2_3_poc_meta.v
101
  // End of automatics
102
  /*AUTOOUTPUT*/
103
  // Beginning of automatic outputs (from unused autoinst outputs)
104
  output                poc_backup;             // From u_poc_meta of mig_7series_v2_3_poc_meta.v
105
  output                poc_error;              // From u_poc_cc of mig_7series_v2_3_poc_cc.v
106
  output                psincdec;               // From u_poc_tap_base of mig_7series_v2_3_poc_tap_base.v
107
  // End of automatics
108
  /*AUTOwire*/
109
  // Beginning of automatic wires (for undeclared instantiated-module outputs)
110
  wire [TAPCNTRWIDTH-1:0] fall_lead_center;      // From u_edge_center of mig_7series_v2_3_poc_edge_store.v
111
  wire [TAPCNTRWIDTH-1:0] fall_lead_left;        // From u_edge_left of mig_7series_v2_3_poc_edge_store.v
112
  wire [TAPCNTRWIDTH-1:0] fall_lead_right;       // From u_edge_right of mig_7series_v2_3_poc_edge_store.v
113
  wire [TAPCNTRWIDTH-1:0] fall_trail_center;     // From u_edge_center of mig_7series_v2_3_poc_edge_store.v
114
  wire [TAPCNTRWIDTH-1:0] fall_trail_left;       // From u_edge_left of mig_7series_v2_3_poc_edge_store.v
115
  wire [TAPCNTRWIDTH-1:0] fall_trail_right;      // From u_edge_right of mig_7series_v2_3_poc_edge_store.v
116
  wire [TAPCNTRWIDTH-1:0] rise_lead_center;      // From u_edge_center of mig_7series_v2_3_poc_edge_store.v
117
  wire [TAPCNTRWIDTH-1:0] rise_lead_left;        // From u_edge_left of mig_7series_v2_3_poc_edge_store.v
118
  wire [TAPCNTRWIDTH-1:0] rise_trail_center;     // From u_edge_center of mig_7series_v2_3_poc_edge_store.v
119
  wire [TAPCNTRWIDTH-1:0] rise_trail_left;       // From u_edge_left of mig_7series_v2_3_poc_edge_store.v
120
  wire [TAPCNTRWIDTH-1:0] run;                   // From u_poc_tap_base of mig_7series_v2_3_poc_tap_base.v
121
  wire                  run_end;                // From u_poc_tap_base of mig_7series_v2_3_poc_tap_base.v
122
  wire                  run_polarity;           // From u_poc_tap_base of mig_7series_v2_3_poc_tap_base.v
123
  wire [SAMPCNTRWIDTH:0] samples;                // From u_poc_cc of mig_7series_v2_3_poc_cc.v
124
  wire [SAMPCNTRWIDTH:0] samps_hi_held;          // From u_poc_tap_base of mig_7series_v2_3_poc_tap_base.v
125
  wire [SAMPCNTRWIDTH:0] samps_solid_thresh;     // From u_poc_cc of mig_7series_v2_3_poc_cc.v
126
  wire [TAPCNTRWIDTH-1:0] tap;                   // From u_poc_tap_base of mig_7series_v2_3_poc_tap_base.v
127
  // End of automatics
128
 
129
  output psen;
130
  output [TAPCNTRWIDTH-1:0] rise_lead_right;
131
  output [TAPCNTRWIDTH-1:0] rise_trail_right;
132
  output mmcm_edge_detect_done;
133
  output mmcm_lbclk_edge_aligned;
134
 
135
  mig_7series_v2_3_poc_tap_base #
136
    (/*AUTOINSTPARAM*/
137
     // Parameters
138
     .MMCM_SAMP_WAIT                    (MMCM_SAMP_WAIT),
139
     .POC_USE_METASTABLE_SAMP           (POC_USE_METASTABLE_SAMP),
140
     .SAMPCNTRWIDTH                     (SAMPCNTRWIDTH),
141
     .TAPCNTRWIDTH                      (TAPCNTRWIDTH),
142
     .TAPSPERKCLK                       (TAPSPERKCLK),
143
     .TCQ                               (TCQ))
144
  u_poc_tap_base
145
    (/*AUTOINST*/
146
     // Outputs
147
     .psen                              (psen),
148
     .psincdec                          (psincdec),
149
     .run                               (run[TAPCNTRWIDTH-1:0]),
150
     .run_end                           (run_end),
151
     .run_polarity                      (run_polarity),
152
     .samps_hi_held                     (samps_hi_held[SAMPCNTRWIDTH:0]),
153
     .tap                               (tap[TAPCNTRWIDTH-1:0]),
154
     // Inputs
155
     .clk                               (clk),
156
     .pd_out                            (pd_out),
157
     .poc_sample_pd                     (poc_sample_pd),
158
     .psdone                            (psdone),
159
     .rst                               (rst),
160
     .samples                           (samples[SAMPCNTRWIDTH:0]),
161
     .samps_solid_thresh                (samps_solid_thresh[SAMPCNTRWIDTH:0]));
162
 
163
  mig_7series_v2_3_poc_meta #
164
    (/*AUTOINSTPARAM*/
165
     // Parameters
166
     .SCANFROMRIGHT                     (SCANFROMRIGHT),
167
     .TAPCNTRWIDTH                      (TAPCNTRWIDTH),
168
     .TAPSPERKCLK                       (TAPSPERKCLK),
169
     .TCQ                               (TCQ))
170
  u_poc_meta
171
    (/*AUTOINST*/
172
     // Outputs
173
     .mmcm_edge_detect_done             (mmcm_edge_detect_done),
174
     .mmcm_lbclk_edge_aligned           (mmcm_lbclk_edge_aligned),
175
     .poc_backup                        (poc_backup),
176
     // Inputs
177
     .clk                               (clk),
178
     .ktap_at_left_edge                 (ktap_at_left_edge),
179
     .ktap_at_right_edge                (ktap_at_right_edge),
180
     .mmcm_edge_detect_rdy              (mmcm_edge_detect_rdy),
181
     .ninety_offsets                    (ninety_offsets[1:0]),
182
     .rise_lead_center                  (rise_lead_center[TAPCNTRWIDTH-1:0]),
183
     .rise_lead_left                    (rise_lead_left[TAPCNTRWIDTH-1:0]),
184
     .rise_lead_right                   (rise_lead_right[TAPCNTRWIDTH-1:0]),
185
     .rise_trail_center                 (rise_trail_center[TAPCNTRWIDTH-1:0]),
186
     .rise_trail_left                   (rise_trail_left[TAPCNTRWIDTH-1:0]),
187
     .rise_trail_right                  (rise_trail_right[TAPCNTRWIDTH-1:0]),
188
     .rst                               (rst),
189
     .run                               (run[TAPCNTRWIDTH-1:0]),
190
     .run_end                           (run_end),
191
     .run_polarity                      (run_polarity),
192
     .use_noise_window                  (use_noise_window));
193
 
194
  /*mig_7series_v2_3_poc_edge_store AUTO_TEMPLATE "edge_\(.*\)$" (
195
   .\(.*\)lead                          (\1lead_@@"vl-bits"),
196
   .\(.*\)trail                         (\1trail_@@"vl-bits"),
197
   .select0                             (ktap_at_@_edge),
198
   .select1                             (1'b1),)*/
199
 
200
  mig_7series_v2_3_poc_edge_store #
201
    (/*AUTOINSTPARAM*/
202
     // Parameters
203
     .TAPCNTRWIDTH                      (TAPCNTRWIDTH),
204
     .TAPSPERKCLK                       (TAPSPERKCLK),
205
     .TCQ                               (TCQ))
206
  u_edge_right
207
    (/*AUTOINST*/
208
     // Outputs
209
     .fall_lead                         (fall_lead_right[TAPCNTRWIDTH-1:0]), // Templated
210
     .fall_trail                        (fall_trail_right[TAPCNTRWIDTH-1:0]), // Templated
211
     .rise_lead                         (rise_lead_right[TAPCNTRWIDTH-1:0]), // Templated
212
     .rise_trail                        (rise_trail_right[TAPCNTRWIDTH-1:0]), // Templated
213
     // Inputs
214
     .clk                               (clk),
215
     .run                               (run[TAPCNTRWIDTH-1:0]),
216
     .run_end                           (run_end),
217
     .run_polarity                      (run_polarity),
218
     .select0                           (ktap_at_right_edge),    // Templated
219
     .select1                           (1'b1),                  // Templated
220
     .tap                               (tap[TAPCNTRWIDTH-1:0]));
221
 
222
  mig_7series_v2_3_poc_edge_store #
223
    (/*AUTOINSTPARAM*/
224
     // Parameters
225
     .TAPCNTRWIDTH                      (TAPCNTRWIDTH),
226
     .TAPSPERKCLK                       (TAPSPERKCLK),
227
     .TCQ                               (TCQ))
228
  u_edge_left
229
    (/*AUTOINST*/
230
     // Outputs
231
     .fall_lead                         (fall_lead_left[TAPCNTRWIDTH-1:0]), // Templated
232
     .fall_trail                        (fall_trail_left[TAPCNTRWIDTH-1:0]), // Templated
233
     .rise_lead                         (rise_lead_left[TAPCNTRWIDTH-1:0]), // Templated
234
     .rise_trail                        (rise_trail_left[TAPCNTRWIDTH-1:0]), // Templated
235
     // Inputs
236
     .clk                               (clk),
237
     .run                               (run[TAPCNTRWIDTH-1:0]),
238
     .run_end                           (run_end),
239
     .run_polarity                      (run_polarity),
240
     .select0                           (ktap_at_left_edge),     // Templated
241
     .select1                           (1'b1),                  // Templated
242
     .tap                               (tap[TAPCNTRWIDTH-1:0]));
243
 
244
  wire not_ktap_at_right_edge = ~ktap_at_right_edge;
245
  wire not_ktap_at_left_edge = ~ktap_at_left_edge;
246
  /*mig_7series_v2_3_poc_edge_store AUTO_TEMPLATE "edge_\(.*\)$" (
247
   .\(.*\)lead                          (\1lead_@@"vl-bits"),
248
   .\(.*\)trail                         (\1trail_@@"vl-bits"),
249
   .select0                             (not_ktap_at_right_edge),
250
   .select1                             (not_ktap_at_left_edge),)*/
251
 
252
  mig_7series_v2_3_poc_edge_store #
253
    (/*AUTOINSTPARAM*/
254
     // Parameters
255
     .TAPCNTRWIDTH                      (TAPCNTRWIDTH),
256
     .TAPSPERKCLK                       (TAPSPERKCLK),
257
     .TCQ                               (TCQ))
258
  u_edge_center
259
    (/*AUTOINST*/
260
     // Outputs
261
     .fall_lead                         (fall_lead_center[TAPCNTRWIDTH-1:0]), // Templated
262
     .fall_trail                        (fall_trail_center[TAPCNTRWIDTH-1:0]), // Templated
263
     .rise_lead                         (rise_lead_center[TAPCNTRWIDTH-1:0]), // Templated
264
     .rise_trail                        (rise_trail_center[TAPCNTRWIDTH-1:0]), // Templated
265
     // Inputs
266
     .clk                               (clk),
267
     .run                               (run[TAPCNTRWIDTH-1:0]),
268
     .run_end                           (run_end),
269
     .run_polarity                      (run_polarity),
270
     .select0                           (not_ktap_at_right_edge), // Templated
271
     .select1                           (not_ktap_at_left_edge), // Templated
272
     .tap                               (tap[TAPCNTRWIDTH-1:0]));
273
 
274
  mig_7series_v2_3_poc_cc #
275
    (/*AUTOINSTPARAM*/
276
     // Parameters
277
     .CCENABLE                          (CCENABLE),
278
     .PCT_SAMPS_SOLID                   (PCT_SAMPS_SOLID),
279
     .SAMPCNTRWIDTH                     (SAMPCNTRWIDTH),
280
     .SAMPLES                           (SAMPLES),
281
     .TAPCNTRWIDTH                      (TAPCNTRWIDTH),
282
     .TCQ                               (TCQ))
283
  u_poc_cc
284
    (/*AUTOINST*/
285
     // Outputs
286
     .poc_error                         (poc_error),
287
     .samples                           (samples[SAMPCNTRWIDTH:0]),
288
     .samps_solid_thresh                (samps_solid_thresh[SAMPCNTRWIDTH:0]),
289
     // Inputs
290
     .clk                               (clk),
291
     .fall_lead_center                  (fall_lead_center[TAPCNTRWIDTH-1:0]),
292
     .fall_lead_left                    (fall_lead_left[TAPCNTRWIDTH-1:0]),
293
     .fall_lead_right                   (fall_lead_right[TAPCNTRWIDTH-1:0]),
294
     .fall_trail_center                 (fall_trail_center[TAPCNTRWIDTH-1:0]),
295
     .fall_trail_left                   (fall_trail_left[TAPCNTRWIDTH-1:0]),
296
     .fall_trail_right                  (fall_trail_right[TAPCNTRWIDTH-1:0]),
297
     .ktap_at_left_edge                 (ktap_at_left_edge),
298
     .ktap_at_right_edge                (ktap_at_right_edge),
299
     .mmcm_edge_detect_done             (mmcm_edge_detect_done),
300
     .mmcm_lbclk_edge_aligned           (mmcm_lbclk_edge_aligned),
301
     .psen                              (psen),
302
     .rise_lead_center                  (rise_lead_center[TAPCNTRWIDTH-1:0]),
303
     .rise_lead_left                    (rise_lead_left[TAPCNTRWIDTH-1:0]),
304
     .rise_lead_right                   (rise_lead_right[TAPCNTRWIDTH-1:0]),
305
     .rise_trail_center                 (rise_trail_center[TAPCNTRWIDTH-1:0]),
306
     .rise_trail_left                   (rise_trail_left[TAPCNTRWIDTH-1:0]),
307
     .rise_trail_right                  (rise_trail_right[TAPCNTRWIDTH-1:0]),
308
     .rst                               (rst),
309
     .samps_hi_held                     (samps_hi_held[SAMPCNTRWIDTH:0]),
310
     .tap                               (tap[TAPCNTRWIDTH-1:0]));
311
 
312
endmodule // mig_7series_v2_3_poc_top
313
 
314
// Local Variables:
315
// verilog-library-directories:(".")
316
// verilog-library-extensions:(".v")
317
// End:

powered by: WebSVN 2.1.0

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