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

Subversion Repositories pcie_sg_dma

[/] [pcie_sg_dma/] [branches/] [Virtex6/] [ML605_ISE12.3/] [pcie_sg_dma/] [Virtex6/] [ML605/] [ml605_link_wrapper.v] - Blame information for rev 11

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 11 barabba
`include "mgt_parameters.h"
2
 
3
module ml605_link_wrapper #
4
(
5
 parameter SIMULATION  = 0,
6
 parameter DATAWIDTH   = 16,
7
 parameter WORDS       = DATAWIDTH/8,
8
 parameter ALIGN_CHAR  = `K285,
9
 parameter READY_CHAR0 = `K284,
10
 parameter READY_CHAR1 = `K287
11
)
12
(
13
 input         TILE0_REFCLK_PAD_N_IN,
14
 input         TILE0_REFCLK_PAD_P_IN,
15
 input         RXN_IN,
16
 input         RXP_IN,
17
 output wire   TXN_OUT,
18
 output wire   TXP_OUT,
19
 input  wire   SFP_LOS,
20
 
21
 output wire tx_clk,
22
 output wire rx_clk,
23
 output wire link_active,
24
 
25
 output wire ctrl2send_stop,
26
 input wire ctrl2send_start,
27
 input wire ctrl2send_end,
28
 input wire [15:0] ctrl2send,
29
 
30
 output wire data2send_stop,
31
 input wire data2send_start,
32
 input wire data2send_end,
33
 input wire [15:0] data2send,
34
 
35
 input wire dlm2send_valid,
36
 input wire [3:0] dlm2send,
37
 
38
 output wire [3:0] dlm_rec,
39
 output wire dlm_rec_valid,
40
 
41
 output wire data_rec_start,
42
 output wire data_rec_end,
43
 output wire [15:0] data_rec,
44
 output wire crc_error_rec,
45
 input wire data_rec_stop,
46
 
47
 output wire ctrl_rec_start,
48
 output wire ctrl_rec_end,
49
 output wire [15:0] ctrl_rec,
50
 input wire ctrl_rec_stop
51
 
52
);
53
 
54
`include "cbm_lp_defines.h"
55
 
56
wire [1:0]  TXN_OUT_i;
57
wire [1:0]  TXP_OUT_i;
58
wire tx_ready0;
59
wire rx_ready0;
60
wire [DATAWIDTH-1:0] rx_data0;
61
wire [WORDS-1:0] rx_charisk0;
62
wire [DATAWIDTH-1:0] tx_data0;
63
wire [WORDS-1:0] tx_charisk0;
64
 
65
wire [(DATAWIDTH-1):0] rx_data2fifo0;
66
wire [(WORDS-1):0] rx_charisk2fifo0;
67
 
68
wire [(DATAWIDTH-1):0] rx_data2idlefilter0;
69
wire [(WORDS-1):0] rx_charisk2idlefilter0;
70
 
71
wire [(DATAWIDTH-1):0] rx_data2idlemux0;
72
wire [(WORDS-1):0] rx_charisk2idlemux0;
73
 
74
reg [(DATAWIDTH-1):0] rx_data2serdes_temp0;
75
reg [(WORDS-1):0] rx_charisk2serdes_temp0;
76
 
77
reg [(DATAWIDTH-1):0] rx_data2serdes0;
78
reg [(WORDS-1):0] rx_charisk2serdes0;
79
 
80
reg no_idle0;
81
wire rxfifo_shift_out0;
82
reg rxfifo_shift_out_del0;
83
 
84
 
85
 
86
  assign TXN_OUT = TXN_OUT_i[0];
87
  assign TXP_OUT = TXP_OUT_i[0];
88
 
89
  gtp_det_lat_wrapper_16bit #
90
  (
91
   .ALIGN_CHAR(`K285),
92
   .READY_CHAR0(`K284),
93
   .READY_CHAR1(`K287),
94
   .SIMULATION(SIMULATION)     //some things get adjusted for simulation
95
  )
96
  gtp_wrapper_i
97
  (
98
   .TILE0_REFCLK_PAD_N_IN (TILE0_REFCLK_PAD_N_IN),
99
   .TILE0_REFCLK_PAD_P_IN (TILE0_REFCLK_PAD_P_IN),
100
   .GTPRESET_IN           (1'b0),
101
   .TILE0_PLLLKDET_OUT    ( ),                      //
102
   .RXN_IN                ({1'b0, RXN_IN}),
103
   .RXP_IN                ({1'b0, RXP_IN}),
104
   .TXN_OUT               (TXN_OUT_i),
105
   .TXP_OUT               (TXP_OUT_i),
106
   .SFP_LOS               ({1'b0, SFP_LOS}),
107
 
108
   .TX_USRCLK             (tx_clk),
109
   .RX_USRCLK0            (rx_clk),
110
   .RX_USRCLK1            ( ),                      //
111
   .TX_READY0             (tx_ready0),
112
   .TX_READY1             ( ),                      //
113
   .RX_READY0             (rx_ready0),
114
   .RX_READY1             ( ),                      //
115
   .RX_DATA0              (rx_data2fifo0),
116
   .RX_DATA1              ( ),                      //
117
   .RX_CHARISK0           (rx_charisk2fifo0),
118
   .RX_CHARISK1           ( ),                      //
119
   .TX_DATA0              (tx_data0),
120
   .TX_DATA1              ('b0),
121
   .TX_CHARISK0           (tx_charisk0),
122
   .TX_CHARISK1           ('b0)
123
  );
124
 
125
 
126
syncfifo4cbm rx0_fifo
127
(
128
  .res_n(rx_ready0),
129
  .w_clk(rx_clk),
130
  .r_clk(tx_clk),
131
  .data_in(rx_data2fifo0),
132
  .charisk_in(rx_charisk2fifo0),
133
  .data_out(rx_data0),
134
  .charisk_out(rx_charisk0)
135
);
136
 
137
 
138
lp_cbm_top lp_cbm_top_I0(
139
    .clk(tx_clk),
140
    .res_n(tx_ready0),
141
    .link_active(link_active),
142
    .link_clk(),
143
 
144
    .ctrl2send_stop(ctrl2send_stop),
145
    .ctrl2send_start(ctrl2send_start),
146
    .ctrl2send_end(ctrl2send_end),
147
    .ctrl2send(ctrl2send),
148
    .crc_error_send(1'b0),
149
 
150
    .data2send_stop(data2send_stop),
151
    .data2send_start(data2send_start),
152
    .data2send_end(data2send_end),
153
    .data2send(data2send),
154
 
155
    .dlm2send_va(dlm2send_valid),
156
    .dlm2send(dlm2send),
157
 
158
    .dlm_rec_type(dlm_rec),
159
    .dlm_rec_va(dlm_rec_valid),
160
 
161
    .data_rec(data_rec),
162
    .data_rec_start(data_rec_start),
163
    .data_rec_end(data_rec_end),
164
    .data_rec_stop(data_rec_stop),
165
    .crc_error_rec(crc_error_rec),
166
 
167
    .ctrl_rec(ctrl_rec),
168
    .ctrl_rec_start(ctrl_rec_start),
169
    .ctrl_rec_end(ctrl_rec_end),
170
    .ctrl_rec_stop(ctrl_rec_stop),
171
 
172
    .clk_link(tx_clk),
173
    .data_from_link({rx_charisk0, rx_data0}),
174
    .data2link({tx_charisk0, tx_data0}),
175
 
176
    .cable_detected(rx_ready0),
177
    .dll_locked(rx_ready0)
178
);
179
 
180
 
181
endmodule

powered by: WebSVN 2.1.0

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