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

Subversion Repositories sata_phy

[/] [sata_phy/] [trunk/] [hdl/] [sata_s6_sata1_gtp.v] - Blame information for rev 15

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 15 beandigita
///////////////////////////////////////////////////////////////////////////////
2
//   ____  ____
3
//  /   /\/   /
4
// /___/  \  /    Vendor: Xilinx
5
// \   \   \/     Version : 1.11
6
//  \   \         Application : Spartan-6 FPGA GTP Transceiver Wizard
7
//  /   /         Filename : sata_s6_sata1_gtp.v
8
// /___/   /\      
9
// \   \  /  \ 
10
//  \___\/\___\
11
//
12
//
13
// Module sata_s6_sata1_gtp (a GTP Wrapper)
14
// Generated by Xilinx Spartan-6 FPGA GTP Transceiver Wizard
15
// 
16
// 
17
// (c) Copyright 2009 - 2011 Xilinx, Inc. All rights reserved.
18
// 
19
// This file contains confidential and proprietary information
20
// of Xilinx, Inc. and is protected under U.S. and
21
// international copyright and other intellectual property
22
// laws.
23
// 
24
// DISCLAIMER
25
// This disclaimer is not a license and does not grant any
26
// rights to the materials distributed herewith. Except as
27
// otherwise provided in a valid license issued to you by
28
// Xilinx, and to the maximum extent permitted by applicable
29
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
30
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
31
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
32
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
33
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
34
// (2) Xilinx shall not be liable (whether in contract or tort,
35
// including negligence, or under any other theory of
36
// liability) for any loss or damage of any kind or nature
37
// related to, arising under or in connection with these
38
// materials, including for any direct, or any indirect,
39
// special, incidental, or consequential loss or damage
40
// (including loss of data, profits, goodwill, or any type of
41
// loss or damage suffered as a result of any action brought
42
// by a third party) even if such damage or loss was
43
// reasonably foreseeable or Xilinx had been advised of the
44
// possibility of the same.
45
// 
46
// CRITICAL APPLICATIONS
47
// Xilinx products are not designed or intended to be fail-
48
// safe, or for use in any application requiring fail-safe
49
// performance, such as life-support or safety devices or
50
// systems, Class III medical devices, nuclear facilities,
51
// applications related to the deployment of airbags, or any
52
// other applications that could lead to death, personal
53
// injury, or severe property or environmental damage
54
// (individually and collectively, "Critical
55
// Applications"). Customer assumes the sole risk and
56
// liability of any use of Xilinx products in Critical
57
// Applications, subject only to applicable laws and
58
// regulations governing limitations on product liability.
59
// 
60
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
61
// PART OF THIS FILE AT ALL TIMES. 
62
 
63
 
64
 
65
`timescale 1ns / 1ps
66
 
67
 
68
//***************************** Entity Declaration ****************************
69
(* CORE_GENERATION_INFO = "sata_s6_sata1_gtp,s6_gtpwizard_v1_11,{gtp0_protocol_file=sata,gtp1_protocol_file=Use_GTP0_settings}" *)
70
module sata_s6_sata1_gtp #
71
(
72
    // Simulation attributes
73
    parameter   WRAPPER_SIM_GTPRESET_SPEEDUP    = 0,    // Set to 1 to speed up sim reset
74
    parameter   WRAPPER_CLK25_DIVIDER_0         = 6,
75
    parameter   WRAPPER_CLK25_DIVIDER_1         = 6,
76
    parameter   WRAPPER_PLL_DIVSEL_FB_0         = 2,
77
    parameter   WRAPPER_PLL_DIVSEL_FB_1         = 2,
78
    parameter   WRAPPER_PLL_DIVSEL_REF_0        = 1,
79
    parameter   WRAPPER_PLL_DIVSEL_REF_1        = 1,
80
 
81
 
82
    parameter   WRAPPER_SIMULATION              = 0     // Set to 1 for simulation
83
)
84
(
85
 
86
    //_________________________________________________________________________
87
    //_________________________________________________________________________
88
    //TILE0  (X0_Y0)
89
 
90
 
91
    //---------------------- Loopback and Powerdown Ports ----------------------
92
    input   [2:0]   TILE0_LOOPBACK0_IN,
93
    input   [2:0]   TILE0_LOOPBACK1_IN,
94
    //------------------------------- PLL Ports --------------------------------
95
    input           TILE0_CLK00_IN,
96
    input           TILE0_CLK01_IN,
97
    input           TILE0_GTPRESET0_IN,
98
    input           TILE0_GTPRESET1_IN,
99
    output          TILE0_PLLLKDET0_OUT,
100
    output          TILE0_RESETDONE0_OUT,
101
    output          TILE0_RESETDONE1_OUT,
102
    //--------------------- Receive Ports - 8b10b Decoder ----------------------
103
    output  [1:0]   TILE0_RXCHARISCOMMA0_OUT,
104
    output  [1:0]   TILE0_RXCHARISCOMMA1_OUT,
105
    output  [1:0]   TILE0_RXCHARISK0_OUT,
106
    output  [1:0]   TILE0_RXCHARISK1_OUT,
107
    output  [1:0]   TILE0_RXDISPERR0_OUT,
108
    output  [1:0]   TILE0_RXDISPERR1_OUT,
109
    output  [1:0]   TILE0_RXNOTINTABLE0_OUT,
110
    output  [1:0]   TILE0_RXNOTINTABLE1_OUT,
111
    //-------------------- Receive Ports - Clock Correction --------------------
112
    output  [2:0]   TILE0_RXCLKCORCNT0_OUT,
113
    output  [2:0]   TILE0_RXCLKCORCNT1_OUT,
114
    //------------- Receive Ports - Comma Detection and Alignment --------------
115
    output          TILE0_RXBYTEISALIGNED0_OUT,
116
    output          TILE0_RXBYTEISALIGNED1_OUT,
117
    input           TILE0_RXENMCOMMAALIGN0_IN,
118
    input           TILE0_RXENMCOMMAALIGN1_IN,
119
    input           TILE0_RXENPCOMMAALIGN0_IN,
120
    input           TILE0_RXENPCOMMAALIGN1_IN,
121
    //----------------- Receive Ports - RX Data Path interface -----------------
122
    output  [15:0]  TILE0_RXDATA0_OUT,
123
    output  [15:0]  TILE0_RXDATA1_OUT,
124
    output          TILE0_RXRECCLK0_OUT,
125
    output          TILE0_RXRECCLK1_OUT,
126
    input           TILE0_RXRESET0_IN,
127
    input           TILE0_RXRESET1_IN,
128
    input           TILE0_RXUSRCLK0_IN,
129
    input           TILE0_RXUSRCLK1_IN,
130
    input           TILE0_RXUSRCLK20_IN,
131
    input           TILE0_RXUSRCLK21_IN,
132
    //----- Receive Ports - RX Driver,OOB signalling,Coupling and Eq.,CDR ------
133
    input           TILE0_GATERXELECIDLE0_IN,
134
    input           TILE0_GATERXELECIDLE1_IN,
135
    input           TILE0_IGNORESIGDET0_IN,
136
    input           TILE0_IGNORESIGDET1_IN,
137
    output          TILE0_RXELECIDLE0_OUT,
138
    output          TILE0_RXELECIDLE1_OUT,
139
    input   [1:0]   TILE0_RXEQMIX0_IN,
140
    input   [1:0]   TILE0_RXEQMIX1_IN,
141
    input           TILE0_RXN0_IN,
142
    input           TILE0_RXN1_IN,
143
    input           TILE0_RXP0_IN,
144
    input           TILE0_RXP1_IN,
145
    //--------- Receive Ports - RX Elastic Buffer and Phase Alignment ----------
146
    output  [2:0]   TILE0_RXSTATUS0_OUT,
147
    output  [2:0]   TILE0_RXSTATUS1_OUT,
148
    //-------------------------- TX/RX Datapath Ports --------------------------
149
    output  [1:0]   TILE0_GTPCLKOUT0_OUT,
150
    output  [1:0]   TILE0_GTPCLKOUT1_OUT,
151
    //----------------- Transmit Ports - 8b10b Encoder Control -----------------
152
    input   [1:0]   TILE0_TXCHARISK0_IN,
153
    input   [1:0]   TILE0_TXCHARISK1_IN,
154
    //---------------- Transmit Ports - TX Data Path interface -----------------
155
    input   [15:0]  TILE0_TXDATA0_IN,
156
    input   [15:0]  TILE0_TXDATA1_IN,
157
    output          TILE0_TXOUTCLK0_OUT,
158
    output          TILE0_TXOUTCLK1_OUT,
159
    input           TILE0_TXRESET0_IN,
160
    input           TILE0_TXRESET1_IN,
161
    input           TILE0_TXUSRCLK0_IN,
162
    input           TILE0_TXUSRCLK1_IN,
163
    input           TILE0_TXUSRCLK20_IN,
164
    input           TILE0_TXUSRCLK21_IN,
165
    //------------- Transmit Ports - TX Driver and OOB signalling --------------
166
    input   [3:0]   TILE0_TXDIFFCTRL0_IN,
167
    input   [3:0]   TILE0_TXDIFFCTRL1_IN,
168
    output          TILE0_TXN0_OUT,
169
    output          TILE0_TXN1_OUT,
170
    output          TILE0_TXP0_OUT,
171
    output          TILE0_TXP1_OUT,
172
    input   [2:0]   TILE0_TXPREEMPHASIS0_IN,
173
    input   [2:0]   TILE0_TXPREEMPHASIS1_IN,
174
    //--------------- Transmit Ports - TX Ports for PCI Express ----------------
175
    input           TILE0_TXELECIDLE0_IN,
176
    input           TILE0_TXELECIDLE1_IN,
177
    //------------------- Transmit Ports - TX Ports for SATA -------------------
178
    input           TILE0_TXCOMSTART0_IN,
179
    input           TILE0_TXCOMSTART1_IN,
180
    input           TILE0_TXCOMTYPE0_IN,
181
    input           TILE0_TXCOMTYPE1_IN
182
 
183
 
184
);
185
 
186
 
187
//***************************** Wire Declarations *****************************
188
 
189
    // ground and vcc signals
190
    wire            tied_to_ground_i;
191
    wire    [63:0]  tied_to_ground_vec_i;
192
    wire            tied_to_vcc_i;
193
    wire    [63:0]  tied_to_vcc_vec_i;
194
    wire            tile0_plllkdet0_i;
195
    wire            tile0_plllkdet1_i;
196
 
197
    reg            tile0_plllkdet0_i2;
198
    reg    [4:0]   count00;
199
    reg            start00;
200
 
201
 
202
//********************************* Main Body of Code**************************
203
 
204
    assign tied_to_ground_i             = 1'b0;
205
    assign tied_to_ground_vec_i         = 64'h0000000000000000;
206
    assign tied_to_vcc_i                = 1'b1;
207
    assign tied_to_vcc_vec_i            = 64'hffffffffffffffff;
208
 
209
generate
210
if (WRAPPER_SIMULATION==1)
211
begin : simulation
212
 
213
    assign TILE0_PLLLKDET0_OUT = tile0_plllkdet0_i2;
214
 
215
    always@(posedge TILE0_CLK00_IN or posedge TILE0_GTPRESET0_IN)
216
    begin
217
      if (TILE0_GTPRESET0_IN == 1'b1) begin
218
        count00 <= 5'b00000;
219
      end
220
      else begin
221
        if ((count00 == 5'b10100) | (tile0_plllkdet0_i == 1'b0)) begin
222
          count00 <= 5'b00000;
223
        end
224
        else begin
225
          count00 <= count00 + 5'b00001;
226
        end
227
      end
228
    end
229
 
230
    always@(posedge TILE0_CLK00_IN or negedge tile0_plllkdet0_i)
231
    begin
232
      if(tile0_plllkdet0_i == 1'b0) begin
233
        tile0_plllkdet0_i2 <= 1'b0;
234
      end
235
      else begin
236
        if((count00 == 5'b10100) & (tile0_plllkdet0_i == 1'b1)) begin
237
          tile0_plllkdet0_i2 <= 1'b1;
238
        end
239
      end
240
    end
241
 
242
 
243
 
244
end //end WRAPPER_SIMULATION =1 generate section
245
else
246
begin: implementation
247
 
248
    assign TILE0_PLLLKDET0_OUT = tile0_plllkdet0_i;
249
 
250
 
251
end
252
endgenerate //End generate for WRAPPER_SIMULATION
253
 
254
    //------------------------- Tile Instances  -------------------------------   
255
 
256
 
257
 
258
    //_________________________________________________________________________
259
    //_________________________________________________________________________
260
    //TILE0  (X0_Y0)
261
 
262
    sata_s6_sata1_gtp_tile #
263
    (
264
        // Simulation attributes
265
        .TILE_SIM_GTPRESET_SPEEDUP   (WRAPPER_SIM_GTPRESET_SPEEDUP),
266
        .TILE_CLK25_DIVIDER_0        (WRAPPER_CLK25_DIVIDER_0),
267
        .TILE_CLK25_DIVIDER_1        (WRAPPER_CLK25_DIVIDER_1),
268
        .TILE_PLL_DIVSEL_FB_0        (WRAPPER_PLL_DIVSEL_FB_0),
269
        .TILE_PLL_DIVSEL_FB_1        (WRAPPER_PLL_DIVSEL_FB_1),
270
        .TILE_PLL_DIVSEL_REF_0       (WRAPPER_PLL_DIVSEL_REF_0),
271
        .TILE_PLL_DIVSEL_REF_1       (WRAPPER_PLL_DIVSEL_REF_1),
272
 
273
 
274
        //
275
        .TILE_PLL_SOURCE_0               ("PLL0"),
276
        .TILE_PLL_SOURCE_1               ("PLL0")
277
    )
278
    tile0_sata_s6_sata1_gtp_i
279
    (
280
        //---------------------- Loopback and Powerdown Ports ----------------------
281
        .LOOPBACK0_IN                   (TILE0_LOOPBACK0_IN),
282
        .LOOPBACK1_IN                   (TILE0_LOOPBACK1_IN),
283
        //------------------------------- PLL Ports --------------------------------
284
        .CLK00_IN                       (TILE0_CLK00_IN),
285
        .CLK01_IN                       (TILE0_CLK01_IN),
286
        .GTPRESET0_IN                   (TILE0_GTPRESET0_IN),
287
        .GTPRESET1_IN                   (TILE0_GTPRESET1_IN),
288
        .PLLLKDET0_OUT                  (tile0_plllkdet0_i),
289
        .PLLLKDET1_OUT                  (tile0_plllkdet1_i),
290
        .RESETDONE0_OUT                 (TILE0_RESETDONE0_OUT),
291
        .RESETDONE1_OUT                 (TILE0_RESETDONE1_OUT),
292
        //--------------------- Receive Ports - 8b10b Decoder ----------------------
293
        .RXCHARISCOMMA0_OUT             (TILE0_RXCHARISCOMMA0_OUT),
294
        .RXCHARISCOMMA1_OUT             (TILE0_RXCHARISCOMMA1_OUT),
295
        .RXCHARISK0_OUT                 (TILE0_RXCHARISK0_OUT),
296
        .RXCHARISK1_OUT                 (TILE0_RXCHARISK1_OUT),
297
        .RXDISPERR0_OUT                 (TILE0_RXDISPERR0_OUT),
298
        .RXDISPERR1_OUT                 (TILE0_RXDISPERR1_OUT),
299
        .RXNOTINTABLE0_OUT              (TILE0_RXNOTINTABLE0_OUT),
300
        .RXNOTINTABLE1_OUT              (TILE0_RXNOTINTABLE1_OUT),
301
        //-------------------- Receive Ports - Clock Correction --------------------
302
        .RXCLKCORCNT0_OUT               (TILE0_RXCLKCORCNT0_OUT),
303
        .RXCLKCORCNT1_OUT               (TILE0_RXCLKCORCNT1_OUT),
304
        //------------- Receive Ports - Comma Detection and Alignment --------------
305
        .RXBYTEISALIGNED0_OUT           (TILE0_RXBYTEISALIGNED0_OUT),
306
        .RXBYTEISALIGNED1_OUT           (TILE0_RXBYTEISALIGNED1_OUT),
307
        .RXENMCOMMAALIGN0_IN            (TILE0_RXENMCOMMAALIGN0_IN),
308
        .RXENMCOMMAALIGN1_IN            (TILE0_RXENMCOMMAALIGN1_IN),
309
        .RXENPCOMMAALIGN0_IN            (TILE0_RXENPCOMMAALIGN0_IN),
310
        .RXENPCOMMAALIGN1_IN            (TILE0_RXENPCOMMAALIGN1_IN),
311
        //----------------- Receive Ports - RX Data Path interface -----------------
312
        .RXDATA0_OUT                    (TILE0_RXDATA0_OUT),
313
        .RXDATA1_OUT                    (TILE0_RXDATA1_OUT),
314
        .RXRECCLK0_OUT                  (TILE0_RXRECCLK0_OUT),
315
        .RXRECCLK1_OUT                  (TILE0_RXRECCLK1_OUT),
316
        .RXRESET0_IN                    (TILE0_RXRESET0_IN),
317
        .RXRESET1_IN                    (TILE0_RXRESET1_IN),
318
        .RXUSRCLK0_IN                   (TILE0_RXUSRCLK0_IN),
319
        .RXUSRCLK1_IN                   (TILE0_RXUSRCLK1_IN),
320
        .RXUSRCLK20_IN                  (TILE0_RXUSRCLK20_IN),
321
        .RXUSRCLK21_IN                  (TILE0_RXUSRCLK21_IN),
322
        //----- Receive Ports - RX Driver,OOB signalling,Coupling and Eq.,CDR ------
323
        .GATERXELECIDLE0_IN             (TILE0_GATERXELECIDLE0_IN),
324
        .GATERXELECIDLE1_IN             (TILE0_GATERXELECIDLE1_IN),
325
        .IGNORESIGDET0_IN               (TILE0_IGNORESIGDET0_IN),
326
        .IGNORESIGDET1_IN               (TILE0_IGNORESIGDET1_IN),
327
        .RXELECIDLE0_OUT                (TILE0_RXELECIDLE0_OUT),
328
        .RXELECIDLE1_OUT                (TILE0_RXELECIDLE1_OUT),
329
        .RXEQMIX0_IN                    (TILE0_RXEQMIX0_IN),
330
        .RXEQMIX1_IN                    (TILE0_RXEQMIX1_IN),
331
        .RXN0_IN                        (TILE0_RXN0_IN),
332
        .RXN1_IN                        (TILE0_RXN1_IN),
333
        .RXP0_IN                        (TILE0_RXP0_IN),
334
        .RXP1_IN                        (TILE0_RXP1_IN),
335
        //--------- Receive Ports - RX Elastic Buffer and Phase Alignment ----------
336
        .RXSTATUS0_OUT                  (TILE0_RXSTATUS0_OUT),
337
        .RXSTATUS1_OUT                  (TILE0_RXSTATUS1_OUT),
338
        //-------------------------- TX/RX Datapath Ports --------------------------
339
        .GTPCLKOUT0_OUT                 (TILE0_GTPCLKOUT0_OUT),
340
        .GTPCLKOUT1_OUT                 (TILE0_GTPCLKOUT1_OUT),
341
        //----------------- Transmit Ports - 8b10b Encoder Control -----------------
342
        .TXCHARISK0_IN                  (TILE0_TXCHARISK0_IN),
343
        .TXCHARISK1_IN                  (TILE0_TXCHARISK1_IN),
344
        //---------------- Transmit Ports - TX Data Path interface -----------------
345
        .TXDATA0_IN                     (TILE0_TXDATA0_IN),
346
        .TXDATA1_IN                     (TILE0_TXDATA1_IN),
347
        .TXOUTCLK0_OUT                  (TILE0_TXOUTCLK0_OUT),
348
        .TXOUTCLK1_OUT                  (TILE0_TXOUTCLK1_OUT),
349
        .TXRESET0_IN                    (TILE0_TXRESET0_IN),
350
        .TXRESET1_IN                    (TILE0_TXRESET1_IN),
351
        .TXUSRCLK0_IN                   (TILE0_TXUSRCLK0_IN),
352
        .TXUSRCLK1_IN                   (TILE0_TXUSRCLK1_IN),
353
        .TXUSRCLK20_IN                  (TILE0_TXUSRCLK20_IN),
354
        .TXUSRCLK21_IN                  (TILE0_TXUSRCLK21_IN),
355
        //------------- Transmit Ports - TX Driver and OOB signalling --------------
356
        .TXDIFFCTRL0_IN                 (TILE0_TXDIFFCTRL0_IN),
357
        .TXDIFFCTRL1_IN                 (TILE0_TXDIFFCTRL1_IN),
358
        .TXN0_OUT                       (TILE0_TXN0_OUT),
359
        .TXN1_OUT                       (TILE0_TXN1_OUT),
360
        .TXP0_OUT                       (TILE0_TXP0_OUT),
361
        .TXP1_OUT                       (TILE0_TXP1_OUT),
362
        .TXPREEMPHASIS0_IN              (TILE0_TXPREEMPHASIS0_IN),
363
        .TXPREEMPHASIS1_IN              (TILE0_TXPREEMPHASIS1_IN),
364
        //--------------- Transmit Ports - TX Ports for PCI Express ----------------
365
        .TXELECIDLE0_IN                 (TILE0_TXELECIDLE0_IN),
366
        .TXELECIDLE1_IN                 (TILE0_TXELECIDLE1_IN),
367
        //------------------- Transmit Ports - TX Ports for SATA -------------------
368
        .TXCOMSTART0_IN                 (TILE0_TXCOMSTART0_IN),
369
        .TXCOMSTART1_IN                 (TILE0_TXCOMSTART1_IN),
370
        .TXCOMTYPE0_IN                  (TILE0_TXCOMTYPE0_IN),
371
        .TXCOMTYPE1_IN                  (TILE0_TXCOMTYPE1_IN)
372
 
373
    );
374
 
375
 
376
 
377
endmodule
378
 

powered by: WebSVN 2.1.0

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