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

Subversion Repositories sgmii

[/] [sgmii/] [trunk/] [sim/] [BFMs/] [SGMII_altera/] [triple_speed_ethernet-library/] [altera_tse_multi_mac_pcs_pma_gige.v] - Blame information for rev 9

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 9 jefflieu
// -------------------------------------------------------------------------
2
// -------------------------------------------------------------------------
3
//
4
// Revision Control Information
5
//
6
// $RCSfile: altera_tse_multi_mac_pcs_pma_gige.v,v $
7
// $Source: /ipbu/cvs/sio/projects/TriSpeedEthernet/src/RTL/Top_level_modules/altera_tse_multi_mac_pcs_pma_gige.v,v $
8
//
9
// $Revision: #3 $
10
// $Date: 2011/12/15 $
11
// Check in by : $Author: perforce $
12
// Author      : Arul Paniandi
13
//
14
// Project     : Triple Speed Ethernet - 10/100/1000 MAC
15
//
16
// Description : 
17
//
18
// Top Level Triple Speed Ethernet(10/100/1000) MAC with MII/GMII
19
// interfaces, mdio module and register space (statistic, control and 
20
// management)
21
 
22
// 
23
// ALTERA Confidential and Proprietary
24
// Copyright 2006 (c) Altera Corporation  
25
// All rights reserved
26
//
27
// -------------------------------------------------------------------------
28
// -------------------------------------------------------------------------
29
 
30
(*altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION OFF;SUPPRESS_DA_RULE_INTERNAL=\"R102,R105,D102,D101,D103\"" } *)
31
module altera_tse_multi_mac_pcs_pma_gige
32
#(
33
parameter USE_SYNC_RESET        = 0,                    //  Use Synchronized Reset Inputs
34
parameter RESET_LEVEL           = 1'b 1 ,               //  Reset Active Level
35
parameter ENABLE_GMII_LOOPBACK  = 1,                    //  GMII_LOOPBACK_ENA : Enable GMII Loopback Logic 
36
parameter ENABLE_HD_LOGIC       = 1,                    //  HD_LOGIC_ENA : Enable Half Duplex Logic
37
parameter ENABLE_SUP_ADDR       = 1,                    //  SUP_ADDR_ENA : Enable Supplemental Addresses
38
parameter ENA_HASH              = 1,                    //  ENA_HASH Enable Hash Table 
39
parameter STAT_CNT_ENA          = 1,                    //  STAT_CNT_ENA Enable Statistic Counters
40
parameter MDIO_CLK_DIV          = 40 ,                  //  Host Clock Division - MDC Generation
41
parameter CORE_VERSION          = 16'h3,                //  ALTERA Core Version
42
parameter CUST_VERSION          = 1 ,                   //  Customer Core Version
43
parameter REDUCED_INTERFACE_ENA = 0,                    //  Enable the RGMII Interface
44
parameter ENABLE_MDIO           = 1,                    //  Enable the MDIO Interface
45
parameter ENABLE_MAGIC_DETECT   = 1,                    //  Enable magic packet detection 
46
parameter ENABLE_PADDING        = 1,                    //  Enable padding operation.
47
parameter ENABLE_LGTH_CHECK     = 1,                    //  Enable frame length checking.
48
parameter GBIT_ONLY             = 1,                    //  Enable Gigabit only operation.
49
parameter MBIT_ONLY             = 1,                    //  Enable Megabit (10/100) only operation.
50
parameter REDUCED_CONTROL       = 0,                    //  Reduced control for MAC LITE
51
parameter CRC32DWIDTH           = 4'b 1000,             //  input data width (informal, not for change)
52
parameter CRC32GENDELAY         = 3'b 110,              //  when the data from the generator is valid
53
parameter CRC32CHECK16BIT       = 1'b 0,                //  1 compare two times 16 bit of the CRC (adds one pipeline step) 
54
parameter CRC32S1L2_EXTERN      = 1'b0,                 //  false: merge enable
55
parameter ENABLE_SHIFT16        = 0,                    //  Enable byte stuffing at packet header 
56
parameter ENABLE_MAC_FLOW_CTRL  = 1'b1,                 //  Option to enable flow control 
57
parameter ENABLE_MAC_TXADDR_SET = 1'b1,                 //  Option to enable MAC address insertion onto 'to-be-transmitted' Ethernet frames on MAC TX data path
58
parameter ENABLE_MAC_RX_VLAN    = 1'b1,                 //  Option to enable VLAN tagged Ethernet frames on MAC RX data path
59
parameter ENABLE_MAC_TX_VLAN    = 1'b1,                 //  Option to enable VLAN tagged Ethernet frames on MAC TX data path
60
parameter PHY_IDENTIFIER        = 32'h 00000000,        //  PHY Identifier
61
parameter DEV_VERSION           = 16'h 0001 ,           //  Customer Phy's Core Version
62
parameter ENABLE_SGMII          = 1,                    //  Enable SGMII logic for synthesis
63
parameter ENABLE_CLK_SHARING    = 1,                    //  Option to share clock for multiple channels (Clocks are rate-matched).
64
parameter ENABLE_REG_SHARING    = 0,                    //  Option to share register space. Uses certain hard-coded values from input.
65
parameter ENABLE_EXTENDED_STAT_REG = 0,                 //  Enable a few extended statistic registers
66
parameter MAX_CHANNELS          = 1,                    //  The number of channels in Multi-TSE component
67
parameter ENABLE_PKT_CLASS      = 1,                    //  Enable Packet Classification Av-ST Interface
68
parameter ENABLE_RX_FIFO_STATUS = 1,                    //  Enable Receive FIFO Almost Full status interface
69
parameter CHANNEL_WIDTH         = 1,                    //  The width of the channel interface
70
parameter EXPORT_PWRDN          = 1'b0,                 //  Option to export the Alt2gxb powerdown signal
71
parameter DEVICE_FAMILY         = "ARRIAGX",            //  The device family the the core is targetted for.
72
parameter TRANSCEIVER_OPTION    = 1'b0,                 //  Option to select transceiver block for MAC PCS PMA Instantiation. Valid Values are 0 and 1:  0 - GXB (GIGE Mode) 1 - LVDS IO
73
parameter ENABLE_ALT_RECONFIG   = 0,                    //  Option to expose the altreconfig ports
74
parameter SYNCHRONIZER_DEPTH    = 3,                    //  Number of synchronizer
75
// Internal parameters
76
parameter STARTING_CHANNEL_NUMBER = 0,
77
parameter ADDR_WIDTH = (MAX_CHANNELS > 16)? 13 :
78
                       (MAX_CHANNELS > 8)? 12 :
79
                       (MAX_CHANNELS > 4)? 11 :
80
                       (MAX_CHANNELS > 2)? 10 :
81
                       (MAX_CHANNELS > 1)? 9 : 8
82
)
83
 
84
 
85
// Port List
86
(
87
 
88
    // RESET / MAC REG IF / MDIO
89
    input wire   reset,                      //  Asynchronous Reset - clk Domain
90
    input wire   clk,                        //  25MHz Host Interface Clock
91
    input wire   read,                       //  Register Read Strobe
92
    input wire   write,                      //  Register Write Strobe
93
    input wire   [ADDR_WIDTH-1:0] address,   //  Register Address
94
    input wire   [31:0] writedata,           //  Write Data for Host Bus
95
    output wire  [31:0] readdata,            //  Read Data to Host Bus
96
    output wire  waitrequest,                //  Interface Busy
97
    output wire  mdc,                        //  2.5MHz Inteface
98
    input wire   mdio_in,                    //  MDIO Input
99
    output wire  mdio_out,                   //  MDIO Output
100
    output wire  mdio_oen,                   //  MDIO Output Enable
101
 
102
    // DEVICE SPECIFIC SIGNALS
103
    input wire   gxb_cal_blk_clk,            //  GXB Calibration Clock
104
    input wire   ref_clk,                    //  Rference Clock
105
 
106
        // SHARED CLK SIGNALS
107
    output wire  mac_rx_clk,                 //  Av-ST Receive Clock
108
    output wire  mac_tx_clk,                 //  Av-ST Transmit Clock 
109
 
110
        // SHARED RX STATUS
111
    input wire   rx_afull_clk,                             //  Almost full clk
112
    input wire   [1:0] rx_afull_data,                      //  Almost full data
113
    input wire   rx_afull_valid,                           //  Almost full valid
114
    input wire   [CHANNEL_WIDTH-1:0] rx_afull_channel,     //  Almost full channel
115
 
116
 
117
    // CHANNEL 0
118
 
119
    // PCS SIGNALS TO PHY
120
    input wire   rxp_0,                    //  Differential Receive Data 
121
    output wire  txp_0,                    //  Differential Transmit Data 
122
    input wire   gxb_pwrdn_in_0,           //  Powerdown signal to GXB
123
    output wire  pcs_pwrdn_out_0,          //  Powerdown Enable from PCS
124
    output wire  rx_recovclkout_0,         //  Receiver Recovered Clock 
125
    output wire  led_crs_0,                //  Carrier Sense
126
    output wire  led_link_0,               //  Valid Link 
127
    output wire  led_col_0,                //  Collision Indication
128
    output wire  led_an_0,                 //  Auto-Negotiation Status
129
    output wire  led_char_err_0,           //  Character Error
130
    output wire  led_disp_err_0,           //  Disparity Error
131
 
132
    // AV-ST TX & RX
133
    output wire  mac_rx_clk_0,             //  Av-ST Receive Clock
134
    output wire  mac_tx_clk_0,             //  Av-ST Transmit Clock   
135
    output wire  data_rx_sop_0,            //  Start of Packet
136
    output wire  data_rx_eop_0,            //  End of Packet
137
    output wire  [7:0] data_rx_data_0,     //  Data from FIFO
138
    output wire  [4:0] data_rx_error_0,    //  Receive packet error
139
    output wire  data_rx_valid_0,          //  Data Receive FIFO Valid
140
    input wire   data_rx_ready_0,          //  Data Receive Ready
141
    output wire  [4:0] pkt_class_data_0,   //  Frame Type Indication
142
    output wire  pkt_class_valid_0,        //  Frame Type Indication Valid 
143
    input wire   data_tx_error_0,          //  STATUS FIFO (Tx frame Error from Apps)
144
    input wire   [7:0] data_tx_data_0,     //  Data from FIFO transmit
145
    input wire   data_tx_valid_0,          //  Data FIFO transmit Empty
146
    input wire   data_tx_sop_0,            //  Start of Packet
147
    input wire   data_tx_eop_0,            //  END of Packet
148
    output wire  data_tx_ready_0,          //  Data FIFO transmit Read Enable   
149
 
150
    // STAND_ALONE CONDUITS 
151
    output wire  tx_ff_uflow_0,            //  TX FIFO underflow occured (Synchronous with tx_clk)
152
    input wire   tx_crc_fwd_0,             //  Forward Current Frame with CRC from Application
153
    input wire   xoff_gen_0,               //  Xoff Pause frame generate 
154
    input wire   xon_gen_0,                //  Xon Pause frame generate 
155
    input wire   magic_sleep_n_0,          //  Enable Sleep Mode
156
    output wire  magic_wakeup_0,           //  Wake Up Request
157
 
158
    // RECONFIG BLOCK SIGNALS
159
    input wire   reconfig_clk_0,             //  Clock for reconfiguration block
160
    input wire   reconfig_busy_0,            //  Busy from reconfiguration block
161
    input wire   [3:0] reconfig_togxb_0,     //  Signals from the reconfig block to the GXB block
162
    output wire  [16:0] reconfig_fromgxb_0,  //  Signals from the gxb block to the reconfig block
163
 
164
 
165
    // CHANNEL 1
166
 
167
    // PCS SIGNALS TO PHY
168
    input wire   rxp_1,                    //  Differential Receive Data 
169
    output wire  txp_1,                    //  Differential Transmit Data 
170
    input wire   gxb_pwrdn_in_1,           //  Powerdown signal to GXB
171
    output wire  pcs_pwrdn_out_1,          //  Powerdown Enable from PCS
172
    output wire  rx_recovclkout_1,         //  Receiver Recovered Clock 
173
    output wire  led_crs_1,                //  Carrier Sense
174
    output wire  led_link_1,               //  Valid Link 
175
    output wire  led_col_1,                //  Collision Indication
176
    output wire  led_an_1,                 //  Auto-Negotiation Status
177
    output wire  led_char_err_1,           //  Character Error
178
    output wire  led_disp_err_1,           //  Disparity Error
179
 
180
    // AV-ST TX & RX
181
    output wire  mac_rx_clk_1,             //  Av-ST Receive Clock
182
    output wire  mac_tx_clk_1,             //  Av-ST Transmit Clock   
183
    output wire  data_rx_sop_1,            //  Start of Packet
184
    output wire  data_rx_eop_1,            //  End of Packet
185
    output wire  [7:0] data_rx_data_1,     //  Data from FIFO
186
    output wire  [4:0] data_rx_error_1,    //  Receive packet error
187
    output wire  data_rx_valid_1,          //  Data Receive FIFO Valid
188
    input wire   data_rx_ready_1,          //  Data Receive Ready
189
    output wire  [4:0] pkt_class_data_1,   //  Frame Type Indication
190
    output wire  pkt_class_valid_1,        //  Frame Type Indication Valid 
191
    input wire   data_tx_error_1,          //  STATUS FIFO (Tx frame Error from Apps)
192
    input wire   [7:0] data_tx_data_1,     //  Data from FIFO transmit
193
    input wire   data_tx_valid_1,          //  Data FIFO transmit Empty
194
    input wire   data_tx_sop_1,            //  Start of Packet
195
    input wire   data_tx_eop_1,            //  END of Packet
196
    output wire  data_tx_ready_1,          //  Data FIFO transmit Read Enable   
197
 
198
    // STAND_ALONE CONDUITS 
199
    output wire  tx_ff_uflow_1,            //  TX FIFO underflow occured (Synchronous with tx_clk)
200
    input wire   tx_crc_fwd_1,             //  Forward Current Frame with CRC from Application
201
    input wire   xoff_gen_1,               //  Xoff Pause frame generate 
202
    input wire   xon_gen_1,                //  Xon Pause frame generate 
203
    input wire   magic_sleep_n_1,          //  Enable Sleep Mode
204
    output wire  magic_wakeup_1,           //  Wake Up Request
205
 
206
    // RECONFIG BLOCK SIGNALS
207
    input wire   reconfig_clk_1,             //  Clock for reconfiguration block
208
    input wire   reconfig_busy_1,                     //  Busy from reconfiguration block
209
    input wire   [3:0] reconfig_togxb_1,     //  Signals from the reconfig block to the GXB block
210
    output wire  [16:0] reconfig_fromgxb_1,  //  Signals from the gxb block to the reconfig block
211
 
212
 
213
    // CHANNEL 2
214
 
215
    // PCS SIGNALS TO PHY
216
    input wire   rxp_2,                    //  Differential Receive Data 
217
    output wire  txp_2,                    //  Differential Transmit Data 
218
    input wire   gxb_pwrdn_in_2,           //  Powerdown signal to GXB
219
    output wire  pcs_pwrdn_out_2,          //  Powerdown Enable from PCS
220
    output wire  rx_recovclkout_2,         //  Receiver Recovered Clock 
221
    output wire  led_crs_2,                //  Carrier Sense
222
    output wire  led_link_2,               //  Valid Link 
223
    output wire  led_col_2,                //  Collision Indication
224
    output wire  led_an_2,                 //  Auto-Negotiation Status
225
    output wire  led_char_err_2,           //  Character Error
226
    output wire  led_disp_err_2,           //  Disparity Error
227
 
228
    // AV-ST TX & RX
229
    output wire  mac_rx_clk_2,             //  Av-ST Receive Clock
230
    output wire  mac_tx_clk_2,             //  Av-ST Transmit Clock   
231
    output wire  data_rx_sop_2,            //  Start of Packet
232
    output wire  data_rx_eop_2,            //  End of Packet
233
    output wire  [7:0] data_rx_data_2,     //  Data from FIFO
234
    output wire  [4:0] data_rx_error_2,    //  Receive packet error
235
    output wire  data_rx_valid_2,          //  Data Receive FIFO Valid
236
    input wire   data_rx_ready_2,          //  Data Receive Ready
237
    output wire  [4:0] pkt_class_data_2,   //  Frame Type Indication
238
    output wire  pkt_class_valid_2,        //  Frame Type Indication Valid 
239
    input wire   data_tx_error_2,          //  STATUS FIFO (Tx frame Error from Apps)
240
    input wire   [7:0] data_tx_data_2,     //  Data from FIFO transmit
241
    input wire   data_tx_valid_2,          //  Data FIFO transmit Empty
242
    input wire   data_tx_sop_2,            //  Start of Packet
243
    input wire   data_tx_eop_2,            //  END of Packet
244
    output wire  data_tx_ready_2,          //  Data FIFO transmit Read Enable   
245
 
246
    // STAND_ALONE CONDUITS 
247
    output wire  tx_ff_uflow_2,            //  TX FIFO underflow occured (Synchronous with tx_clk)
248
    input wire   tx_crc_fwd_2,             //  Forward Current Frame with CRC from Application
249
    input wire   xoff_gen_2,               //  Xoff Pause frame generate 
250
    input wire   xon_gen_2,                //  Xon Pause frame generate 
251
    input wire   magic_sleep_n_2,          //  Enable Sleep Mode
252
    output wire  magic_wakeup_2,           //  Wake Up Request
253
 
254
    // RECONFIG BLOCK SIGNALS
255
    input wire   reconfig_clk_2,             //  Clock for reconfiguration block
256
    input wire   reconfig_busy_2,                     //  Busy from reconfiguration block
257
    input wire   [3:0] reconfig_togxb_2,     //  Signals from the reconfig block to the GXB block
258
    output wire  [16:0] reconfig_fromgxb_2,  //  Signals from the gxb block to the reconfig block
259
 
260
 
261
    // CHANNEL 3
262
 
263
    // PCS SIGNALS TO PHY
264
    input wire   rxp_3,                    //  Differential Receive Data 
265
    output wire  txp_3,                    //  Differential Transmit Data 
266
    input wire   gxb_pwrdn_in_3,           //  Powerdown signal to GXB
267
    output wire  pcs_pwrdn_out_3,          //  Powerdown Enable from PCS
268
    output wire  rx_recovclkout_3,         //  Receiver Recovered Clock 
269
    output wire  led_crs_3,                //  Carrier Sense
270
    output wire  led_link_3,               //  Valid Link 
271
    output wire  led_col_3,                //  Collision Indication
272
    output wire  led_an_3,                 //  Auto-Negotiation Status
273
    output wire  led_char_err_3,           //  Character Error
274
    output wire  led_disp_err_3,           //  Disparity Error
275
 
276
    // AV-ST TX & RX
277
    output wire  mac_rx_clk_3,             //  Av-ST Receive Clock
278
    output wire  mac_tx_clk_3,             //  Av-ST Transmit Clock   
279
    output wire  data_rx_sop_3,            //  Start of Packet
280
    output wire  data_rx_eop_3,            //  End of Packet
281
    output wire  [7:0] data_rx_data_3,     //  Data from FIFO
282
    output wire  [4:0] data_rx_error_3,    //  Receive packet error
283
    output wire  data_rx_valid_3,          //  Data Receive FIFO Valid
284
    input wire   data_rx_ready_3,          //  Data Receive Ready
285
    output wire  [4:0] pkt_class_data_3,   //  Frame Type Indication
286
    output wire  pkt_class_valid_3,        //  Frame Type Indication Valid 
287
    input wire   data_tx_error_3,          //  STATUS FIFO (Tx frame Error from Apps)
288
    input wire   [7:0] data_tx_data_3,     //  Data from FIFO transmit
289
    input wire   data_tx_valid_3,          //  Data FIFO transmit Empty
290
    input wire   data_tx_sop_3,            //  Start of Packet
291
    input wire   data_tx_eop_3,            //  END of Packet
292
    output wire  data_tx_ready_3,          //  Data FIFO transmit Read Enable   
293
 
294
    // STAND_ALONE CONDUITS 
295
    output wire  tx_ff_uflow_3,            //  TX FIFO underflow occured (Synchronous with tx_clk)
296
    input wire   tx_crc_fwd_3,             //  Forward Current Frame with CRC from Application
297
    input wire   xoff_gen_3,               //  Xoff Pause frame generate 
298
    input wire   xon_gen_3,                //  Xon Pause frame generate 
299
    input wire   magic_sleep_n_3,          //  Enable Sleep Mode
300
    output wire  magic_wakeup_3,           //  Wake Up Request
301
 
302
    // RECONFIG BLOCK SIGNALS
303
    input wire   reconfig_clk_3,             //  Clock for reconfiguration block
304
    input wire   reconfig_busy_3,                     //  Busy from reconfiguration block
305
    input wire   [3:0] reconfig_togxb_3,     //  Signals from the reconfig block to the GXB block
306
    output wire  [16:0] reconfig_fromgxb_3,  //  Signals from the gxb block to the reconfig block
307
 
308
 
309
    // CHANNEL 4
310
 
311
    // PCS SIGNALS TO PHY
312
    input wire   rxp_4,                    //  Differential Receive Data 
313
    output wire  txp_4,                    //  Differential Transmit Data 
314
    input wire   gxb_pwrdn_in_4,           //  Powerdown signal to GXB
315
    output wire  pcs_pwrdn_out_4,          //  Powerdown Enable from PCS
316
    output wire  rx_recovclkout_4,         //  Receiver Recovered Clock 
317
    output wire  led_crs_4,                //  Carrier Sense
318
    output wire  led_link_4,               //  Valid Link 
319
    output wire  led_col_4,                //  Collision Indication
320
    output wire  led_an_4,                 //  Auto-Negotiation Status
321
    output wire  led_char_err_4,           //  Character Error
322
    output wire  led_disp_err_4,           //  Disparity Error
323
 
324
    // AV-ST TX & RX
325
    output wire  mac_rx_clk_4,             //  Av-ST Receive Clock
326
    output wire  mac_tx_clk_4,             //  Av-ST Transmit Clock   
327
    output wire  data_rx_sop_4,            //  Start of Packet
328
    output wire  data_rx_eop_4,            //  End of Packet
329
    output wire  [7:0] data_rx_data_4,     //  Data from FIFO
330
    output wire  [4:0] data_rx_error_4,    //  Receive packet error
331
    output wire  data_rx_valid_4,          //  Data Receive FIFO Valid
332
    input wire   data_rx_ready_4,          //  Data Receive Ready
333
    output wire  [4:0] pkt_class_data_4,   //  Frame Type Indication
334
    output wire  pkt_class_valid_4,        //  Frame Type Indication Valid 
335
    input wire   data_tx_error_4,          //  STATUS FIFO (Tx frame Error from Apps)
336
    input wire   [7:0] data_tx_data_4,     //  Data from FIFO transmit
337
    input wire   data_tx_valid_4,          //  Data FIFO transmit Empty
338
    input wire   data_tx_sop_4,            //  Start of Packet
339
    input wire   data_tx_eop_4,            //  END of Packet
340
    output wire  data_tx_ready_4,          //  Data FIFO transmit Read Enable   
341
 
342
    // STAND_ALONE CONDUITS 
343
    output wire  tx_ff_uflow_4,            //  TX FIFO underflow occured (Synchronous with tx_clk)
344
    input wire   tx_crc_fwd_4,             //  Forward Current Frame with CRC from Application
345
    input wire   xoff_gen_4,               //  Xoff Pause frame generate 
346
    input wire   xon_gen_4,                //  Xon Pause frame generate 
347
    input wire   magic_sleep_n_4,          //  Enable Sleep Mode
348
    output wire  magic_wakeup_4,           //  Wake Up Request
349
 
350
    // RECONFIG BLOCK SIGNALS
351
    input wire   reconfig_clk_4,             //  Clock for reconfiguration block
352
    input wire   reconfig_busy_4,                     //  Busy from reconfiguration block
353
    input wire   [3:0] reconfig_togxb_4,     //  Signals from the reconfig block to the GXB block
354
    output wire  [16:0] reconfig_fromgxb_4,  //  Signals from the gxb block to the reconfig block
355
 
356
 
357
    // CHANNEL 5
358
 
359
    // PCS SIGNALS TO PHY
360
    input wire   rxp_5,                    //  Differential Receive Data 
361
    output wire  txp_5,                    //  Differential Transmit Data 
362
    input wire   gxb_pwrdn_in_5,           //  Powerdown signal to GXB
363
    output wire  pcs_pwrdn_out_5,          //  Powerdown Enable from PCS
364
    output wire  rx_recovclkout_5,         //  Receiver Recovered Clock 
365
    output wire  led_crs_5,                //  Carrier Sense
366
    output wire  led_link_5,               //  Valid Link 
367
    output wire  led_col_5,                //  Collision Indication
368
    output wire  led_an_5,                 //  Auto-Negotiation Status
369
    output wire  led_char_err_5,           //  Character Error
370
    output wire  led_disp_err_5,           //  Disparity Error
371
 
372
    // AV-ST TX & RX
373
    output wire  mac_rx_clk_5,             //  Av-ST Receive Clock
374
    output wire  mac_tx_clk_5,             //  Av-ST Transmit Clock   
375
    output wire  data_rx_sop_5,            //  Start of Packet
376
    output wire  data_rx_eop_5,            //  End of Packet
377
    output wire  [7:0] data_rx_data_5,     //  Data from FIFO
378
    output wire  [4:0] data_rx_error_5,    //  Receive packet error
379
    output wire  data_rx_valid_5,          //  Data Receive FIFO Valid
380
    input wire   data_rx_ready_5,          //  Data Receive Ready
381
    output wire  [4:0] pkt_class_data_5,   //  Frame Type Indication
382
    output wire  pkt_class_valid_5,        //  Frame Type Indication Valid 
383
    input wire   data_tx_error_5,          //  STATUS FIFO (Tx frame Error from Apps)
384
    input wire   [7:0] data_tx_data_5,     //  Data from FIFO transmit
385
    input wire   data_tx_valid_5,          //  Data FIFO transmit Empty
386
    input wire   data_tx_sop_5,            //  Start of Packet
387
    input wire   data_tx_eop_5,            //  END of Packet
388
    output wire  data_tx_ready_5,          //  Data FIFO transmit Read Enable   
389
 
390
    // STAND_ALONE CONDUITS 
391
    output wire  tx_ff_uflow_5,            //  TX FIFO underflow occured (Synchronous with tx_clk)
392
    input wire   tx_crc_fwd_5,             //  Forward Current Frame with CRC from Application
393
    input wire   xoff_gen_5,               //  Xoff Pause frame generate 
394
    input wire   xon_gen_5,                //  Xon Pause frame generate 
395
    input wire   magic_sleep_n_5,          //  Enable Sleep Mode
396
    output wire  magic_wakeup_5,           //  Wake Up Request
397
 
398
    // RECONFIG BLOCK SIGNALS
399
    input wire   reconfig_clk_5,             //  Clock for reconfiguration block
400
    input wire   reconfig_busy_5,                     //  Busy from reconfiguration block
401
    input wire   [3:0] reconfig_togxb_5,     //  Signals from the reconfig block to the GXB block
402
    output wire  [16:0] reconfig_fromgxb_5,  //  Signals from the gxb block to the reconfig block
403
 
404
 
405
    // CHANNEL 6
406
 
407
    // PCS SIGNALS TO PHY
408
    input wire   rxp_6,                    //  Differential Receive Data 
409
    output wire  txp_6,                    //  Differential Transmit Data 
410
    input wire   gxb_pwrdn_in_6,           //  Powerdown signal to GXB
411
    output wire  pcs_pwrdn_out_6,          //  Powerdown Enable from PCS
412
    output wire  rx_recovclkout_6,         //  Receiver Recovered Clock 
413
    output wire  led_crs_6,                //  Carrier Sense
414
    output wire  led_link_6,               //  Valid Link 
415
    output wire  led_col_6,                //  Collision Indication
416
    output wire  led_an_6,                 //  Auto-Negotiation Status
417
    output wire  led_char_err_6,           //  Character Error
418
    output wire  led_disp_err_6,           //  Disparity Error
419
 
420
    // AV-ST TX & RX
421
    output wire  mac_rx_clk_6,             //  Av-ST Receive Clock
422
    output wire  mac_tx_clk_6,             //  Av-ST Transmit Clock   
423
    output wire  data_rx_sop_6,            //  Start of Packet
424
    output wire  data_rx_eop_6,            //  End of Packet
425
    output wire  [7:0] data_rx_data_6,     //  Data from FIFO
426
    output wire  [4:0] data_rx_error_6,    //  Receive packet error
427
    output wire  data_rx_valid_6,          //  Data Receive FIFO Valid
428
    input wire   data_rx_ready_6,          //  Data Receive Ready
429
    output wire  [4:0] pkt_class_data_6,   //  Frame Type Indication
430
    output wire  pkt_class_valid_6,        //  Frame Type Indication Valid 
431
    input wire   data_tx_error_6,          //  STATUS FIFO (Tx frame Error from Apps)
432
    input wire   [7:0] data_tx_data_6,     //  Data from FIFO transmit
433
    input wire   data_tx_valid_6,          //  Data FIFO transmit Empty
434
    input wire   data_tx_sop_6,            //  Start of Packet
435
    input wire   data_tx_eop_6,            //  END of Packet
436
    output wire  data_tx_ready_6,          //  Data FIFO transmit Read Enable   
437
 
438
    // STAND_ALONE CONDUITS 
439
    output wire  tx_ff_uflow_6,            //  TX FIFO underflow occured (Synchronous with tx_clk)
440
    input wire   tx_crc_fwd_6,             //  Forward Current Frame with CRC from Application
441
    input wire   xoff_gen_6,               //  Xoff Pause frame generate 
442
    input wire   xon_gen_6,                //  Xon Pause frame generate 
443
    input wire   magic_sleep_n_6,          //  Enable Sleep Mode
444
    output wire  magic_wakeup_6,           //  Wake Up Request
445
 
446
    // RECONFIG BLOCK SIGNALS
447
    input wire   reconfig_clk_6,             //  Clock for reconfiguration block
448
    input wire   reconfig_busy_6,                     //  Busy from reconfiguration block
449
    input wire   [3:0] reconfig_togxb_6,     //  Signals from the reconfig block to the GXB block
450
    output wire  [16:0] reconfig_fromgxb_6,  //  Signals from the gxb block to the reconfig block
451
 
452
 
453
    // CHANNEL 7
454
 
455
    // PCS SIGNALS TO PHY
456
    input wire   rxp_7,                    //  Differential Receive Data 
457
    output wire  txp_7,                    //  Differential Transmit Data 
458
    input wire   gxb_pwrdn_in_7,           //  Powerdown signal to GXB
459
    output wire  pcs_pwrdn_out_7,          //  Powerdown Enable from PCS
460
    output wire  rx_recovclkout_7,         //  Receiver Recovered Clock 
461
    output wire  led_crs_7,                //  Carrier Sense
462
    output wire  led_link_7,               //  Valid Link 
463
    output wire  led_col_7,                //  Collision Indication
464
    output wire  led_an_7,                 //  Auto-Negotiation Status
465
    output wire  led_char_err_7,           //  Character Error
466
    output wire  led_disp_err_7,           //  Disparity Error
467
 
468
    // AV-ST TX & RX
469
    output wire  mac_rx_clk_7,             //  Av-ST Receive Clock
470
    output wire  mac_tx_clk_7,             //  Av-ST Transmit Clock   
471
    output wire  data_rx_sop_7,            //  Start of Packet
472
    output wire  data_rx_eop_7,            //  End of Packet
473
    output wire  [7:0] data_rx_data_7,     //  Data from FIFO
474
    output wire  [4:0] data_rx_error_7,    //  Receive packet error
475
    output wire  data_rx_valid_7,          //  Data Receive FIFO Valid
476
    input wire   data_rx_ready_7,          //  Data Receive Ready
477
    output wire  [4:0] pkt_class_data_7,   //  Frame Type Indication
478
    output wire  pkt_class_valid_7,        //  Frame Type Indication Valid 
479
    input wire   data_tx_error_7,          //  STATUS FIFO (Tx frame Error from Apps)
480
    input wire   [7:0] data_tx_data_7,     //  Data from FIFO transmit
481
    input wire   data_tx_valid_7,          //  Data FIFO transmit Empty
482
    input wire   data_tx_sop_7,            //  Start of Packet
483
    input wire   data_tx_eop_7,            //  END of Packet
484
    output wire  data_tx_ready_7,          //  Data FIFO transmit Read Enable   
485
 
486
    // STAND_ALONE CONDUITS 
487
    output wire  tx_ff_uflow_7,            //  TX FIFO underflow occured (Synchronous with tx_clk)
488
    input wire   tx_crc_fwd_7,             //  Forward Current Frame with CRC from Application
489
    input wire   xoff_gen_7,               //  Xoff Pause frame generate 
490
    input wire   xon_gen_7,                //  Xon Pause frame generate 
491
    input wire   magic_sleep_n_7,          //  Enable Sleep Mode
492
    output wire  magic_wakeup_7,           //  Wake Up Request
493
 
494
    // RECONFIG BLOCK SIGNALS
495
    input wire   reconfig_clk_7,             //  Clock for reconfiguration block
496
    input wire   reconfig_busy_7,                     //  Busy from reconfiguration block
497
    input wire   [3:0] reconfig_togxb_7,     //  Signals from the reconfig block to the GXB block
498
    output wire  [16:0] reconfig_fromgxb_7,  //  Signals from the gxb block to the reconfig block
499
 
500
 
501
    // CHANNEL 8
502
 
503
    // PCS SIGNALS TO PHY
504
    input wire   rxp_8,                    //  Differential Receive Data 
505
    output wire  txp_8,                    //  Differential Transmit Data 
506
    input wire   gxb_pwrdn_in_8,           //  Powerdown signal to GXB
507
    output wire  pcs_pwrdn_out_8,          //  Powerdown Enable from PCS
508
    output wire  rx_recovclkout_8,         //  Receiver Recovered Clock 
509
    output wire  led_crs_8,                //  Carrier Sense
510
    output wire  led_link_8,               //  Valid Link 
511
    output wire  led_col_8,                //  Collision Indication
512
    output wire  led_an_8,                 //  Auto-Negotiation Status
513
    output wire  led_char_err_8,           //  Character Error
514
    output wire  led_disp_err_8,           //  Disparity Error
515
 
516
    // AV-ST TX & RX
517
    output wire  mac_rx_clk_8,             //  Av-ST Receive Clock
518
    output wire  mac_tx_clk_8,             //  Av-ST Transmit Clock   
519
    output wire  data_rx_sop_8,            //  Start of Packet
520
    output wire  data_rx_eop_8,            //  End of Packet
521
    output wire  [7:0] data_rx_data_8,     //  Data from FIFO
522
    output wire  [4:0] data_rx_error_8,    //  Receive packet error
523
    output wire  data_rx_valid_8,          //  Data Receive FIFO Valid
524
    input wire   data_rx_ready_8,          //  Data Receive Ready
525
    output wire  [4:0] pkt_class_data_8,   //  Frame Type Indication
526
    output wire  pkt_class_valid_8,        //  Frame Type Indication Valid 
527
    input wire   data_tx_error_8,          //  STATUS FIFO (Tx frame Error from Apps)
528
    input wire   [7:0] data_tx_data_8,     //  Data from FIFO transmit
529
    input wire   data_tx_valid_8,          //  Data FIFO transmit Empty
530
    input wire   data_tx_sop_8,            //  Start of Packet
531
    input wire   data_tx_eop_8,            //  END of Packet
532
    output wire  data_tx_ready_8,          //  Data FIFO transmit Read Enable   
533
 
534
    // STAND_ALONE CONDUITS 
535
    output wire  tx_ff_uflow_8,            //  TX FIFO underflow occured (Synchronous with tx_clk)
536
    input wire   tx_crc_fwd_8,             //  Forward Current Frame with CRC from Application
537
    input wire   xoff_gen_8,               //  Xoff Pause frame generate 
538
    input wire   xon_gen_8,                //  Xon Pause frame generate 
539
    input wire   magic_sleep_n_8,          //  Enable Sleep Mode
540
    output wire  magic_wakeup_8,           //  Wake Up Request
541
 
542
    // RECONFIG BLOCK SIGNALS
543
    input wire   reconfig_clk_8,             //  Clock for reconfiguration block
544
    input wire   reconfig_busy_8,                     //  Busy from reconfiguration block
545
    input wire   [3:0] reconfig_togxb_8,     //  Signals from the reconfig block to the GXB block
546
    output wire  [16:0] reconfig_fromgxb_8,  //  Signals from the gxb block to the reconfig block
547
 
548
 
549
    // CHANNEL 9
550
 
551
    // PCS SIGNALS TO PHY
552
    input wire   rxp_9,                    //  Differential Receive Data 
553
    output wire  txp_9,                    //  Differential Transmit Data 
554
    input wire   gxb_pwrdn_in_9,           //  Powerdown signal to GXB
555
    output wire  pcs_pwrdn_out_9,          //  Powerdown Enable from PCS
556
    output wire  rx_recovclkout_9,         //  Receiver Recovered Clock 
557
    output wire  led_crs_9,                //  Carrier Sense
558
    output wire  led_link_9,               //  Valid Link 
559
    output wire  led_col_9,                //  Collision Indication
560
    output wire  led_an_9,                 //  Auto-Negotiation Status
561
    output wire  led_char_err_9,           //  Character Error
562
    output wire  led_disp_err_9,           //  Disparity Error
563
 
564
    // AV-ST TX & RX
565
    output wire  mac_rx_clk_9,             //  Av-ST Receive Clock
566
    output wire  mac_tx_clk_9,             //  Av-ST Transmit Clock   
567
    output wire  data_rx_sop_9,            //  Start of Packet
568
    output wire  data_rx_eop_9,            //  End of Packet
569
    output wire  [7:0] data_rx_data_9,     //  Data from FIFO
570
    output wire  [4:0] data_rx_error_9,    //  Receive packet error
571
    output wire  data_rx_valid_9,          //  Data Receive FIFO Valid
572
    input wire   data_rx_ready_9,          //  Data Receive Ready
573
    output wire  [4:0] pkt_class_data_9,   //  Frame Type Indication
574
    output wire  pkt_class_valid_9,        //  Frame Type Indication Valid 
575
    input wire   data_tx_error_9,          //  STATUS FIFO (Tx frame Error from Apps)
576
    input wire   [7:0] data_tx_data_9,     //  Data from FIFO transmit
577
    input wire   data_tx_valid_9,          //  Data FIFO transmit Empty
578
    input wire   data_tx_sop_9,            //  Start of Packet
579
    input wire   data_tx_eop_9,            //  END of Packet
580
    output wire  data_tx_ready_9,          //  Data FIFO transmit Read Enable   
581
 
582
    // STAND_ALONE CONDUITS 
583
    output wire  tx_ff_uflow_9,            //  TX FIFO underflow occured (Synchronous with tx_clk)
584
    input wire   tx_crc_fwd_9,             //  Forward Current Frame with CRC from Application
585
    input wire   xoff_gen_9,               //  Xoff Pause frame generate 
586
    input wire   xon_gen_9,                //  Xon Pause frame generate 
587
    input wire   magic_sleep_n_9,          //  Enable Sleep Mode
588
    output wire  magic_wakeup_9,           //  Wake Up Request
589
 
590
    // RECONFIG BLOCK SIGNALS
591
    input wire   reconfig_clk_9,             //  Clock for reconfiguration block
592
    input wire   reconfig_busy_9,                     //  Busy from reconfiguration block
593
    input wire   [3:0] reconfig_togxb_9,     //  Signals from the reconfig block to the GXB block
594
    output wire  [16:0] reconfig_fromgxb_9,  //  Signals from the gxb block to the reconfig block
595
 
596
 
597
    // CHANNEL 10
598
 
599
    // PCS SIGNALS TO PHY
600
    input wire   rxp_10,                    //  Differential Receive Data 
601
    output wire  txp_10,                    //  Differential Transmit Data 
602
    input wire   gxb_pwrdn_in_10,           //  Powerdown signal to GXB
603
    output wire  pcs_pwrdn_out_10,          //  Powerdown Enable from PCS
604
    output wire  rx_recovclkout_10,         //  Receiver Recovered Clock 
605
    output wire  led_crs_10,                //  Carrier Sense
606
    output wire  led_link_10,               //  Valid Link 
607
    output wire  led_col_10,                //  Collision Indication
608
    output wire  led_an_10,                 //  Auto-Negotiation Status
609
    output wire  led_char_err_10,           //  Character Error
610
    output wire  led_disp_err_10,           //  Disparity Error
611
 
612
    // AV-ST TX & RX
613
    output wire  mac_rx_clk_10,             //  Av-ST Receive Clock
614
    output wire  mac_tx_clk_10,             //  Av-ST Transmit Clock   
615
    output wire  data_rx_sop_10,            //  Start of Packet
616
    output wire  data_rx_eop_10,            //  End of Packet
617
    output wire  [7:0] data_rx_data_10,     //  Data from FIFO
618
    output wire  [4:0] data_rx_error_10,    //  Receive packet error
619
    output wire  data_rx_valid_10,          //  Data Receive FIFO Valid
620
    input wire   data_rx_ready_10,          //  Data Receive Ready
621
    output wire  [4:0] pkt_class_data_10,   //  Frame Type Indication
622
    output wire  pkt_class_valid_10,        //  Frame Type Indication Valid 
623
    input wire   data_tx_error_10,          //  STATUS FIFO (Tx frame Error from Apps)
624
    input wire   [7:0] data_tx_data_10,     //  Data from FIFO transmit
625
    input wire   data_tx_valid_10,          //  Data FIFO transmit Empty
626
    input wire   data_tx_sop_10,            //  Start of Packet
627
    input wire   data_tx_eop_10,            //  END of Packet
628
    output wire  data_tx_ready_10,          //  Data FIFO transmit Read Enable  
629
 
630
    // STAND_ALONE CONDUITS 
631
    output wire  tx_ff_uflow_10,            //  TX FIFO underflow occured (Synchronous with tx_clk)
632
    input wire   tx_crc_fwd_10,             //  Forward Current Frame with CRC from Application
633
    input wire   xoff_gen_10,               //  Xoff Pause frame generate 
634
    input wire   xon_gen_10,                //  Xon Pause frame generate 
635
    input wire   magic_sleep_n_10,          //  Enable Sleep Mode
636
    output wire  magic_wakeup_10,           //  Wake Up Request
637
 
638
    // RECONFIG BLOCK SIGNALS
639
    input wire   reconfig_clk_10,             //  Clock for reconfiguration block
640
    input wire   reconfig_busy_10,                     //  Busy from reconfiguration block
641
    input wire   [3:0] reconfig_togxb_10,     //  Signals from the reconfig block to the GXB block
642
    output wire  [16:0] reconfig_fromgxb_10,  //  Signals from the gxb block to the reconfig block
643
 
644
 
645
    // CHANNEL 11
646
 
647
    // PCS SIGNALS TO PHY
648
    input wire   rxp_11,                    //  Differential Receive Data 
649
    output wire  txp_11,                    //  Differential Transmit Data 
650
    input wire   gxb_pwrdn_in_11,           //  Powerdown signal to GXB
651
    output wire  pcs_pwrdn_out_11,          //  Powerdown Enable from PCS
652
    output wire  rx_recovclkout_11,         //  Receiver Recovered Clock 
653
    output wire  led_crs_11,                //  Carrier Sense
654
    output wire  led_link_11,               //  Valid Link 
655
    output wire  led_col_11,                //  Collision Indication
656
    output wire  led_an_11,                 //  Auto-Negotiation Status
657
    output wire  led_char_err_11,           //  Character Error
658
    output wire  led_disp_err_11,           //  Disparity Error
659
 
660
    // AV-ST TX & RX
661
    output wire  mac_rx_clk_11,             //  Av-ST Receive Clock
662
    output wire  mac_tx_clk_11,             //  Av-ST Transmit Clock   
663
    output wire  data_rx_sop_11,            //  Start of Packet
664
    output wire  data_rx_eop_11,            //  End of Packet
665
    output wire  [7:0] data_rx_data_11,     //  Data from FIFO
666
    output wire  [4:0] data_rx_error_11,    //  Receive packet error
667
    output wire  data_rx_valid_11,          //  Data Receive FIFO Valid
668
    input wire   data_rx_ready_11,          //  Data Receive Ready
669
    output wire  [4:0] pkt_class_data_11,   //  Frame Type Indication
670
    output wire  pkt_class_valid_11,        //  Frame Type Indication Valid 
671
    input wire   data_tx_error_11,          //  STATUS FIFO (Tx frame Error from Apps)
672
    input wire   [7:0] data_tx_data_11,     //  Data from FIFO transmit
673
    input wire   data_tx_valid_11,          //  Data FIFO transmit Empty
674
    input wire   data_tx_sop_11,            //  Start of Packet
675
    input wire   data_tx_eop_11,            //  END of Packet
676
    output wire  data_tx_ready_11,          //  Data FIFO transmit Read Enable  
677
 
678
    // STAND_ALONE CONDUITS 
679
    output wire  tx_ff_uflow_11,            //  TX FIFO underflow occured (Synchronous with tx_clk)
680
    input wire   tx_crc_fwd_11,             //  Forward Current Frame with CRC from Application
681
    input wire   xoff_gen_11,               //  Xoff Pause frame generate 
682
    input wire   xon_gen_11,                //  Xon Pause frame generate 
683
    input wire   magic_sleep_n_11,          //  Enable Sleep Mode
684
    output wire  magic_wakeup_11,           //  Wake Up Request
685
 
686
    // RECONFIG BLOCK SIGNALS
687
    input wire   reconfig_clk_11,             //  Clock for reconfiguration block
688
    input wire   reconfig_busy_11,                     //  Busy from reconfiguration block
689
    input wire   [3:0] reconfig_togxb_11,     //  Signals from the reconfig block to the GXB block
690
    output wire  [16:0] reconfig_fromgxb_11,  //  Signals from the gxb block to the reconfig block
691
 
692
 
693
    // CHANNEL 12
694
 
695
    // PCS SIGNALS TO PHY
696
    input wire   rxp_12,                    //  Differential Receive Data 
697
    output wire  txp_12,                    //  Differential Transmit Data 
698
    input wire   gxb_pwrdn_in_12,           //  Powerdown signal to GXB
699
    output wire  pcs_pwrdn_out_12,          //  Powerdown Enable from PCS
700
    output wire  rx_recovclkout_12,         //  Receiver Recovered Clock 
701
    output wire  led_crs_12,                //  Carrier Sense
702
    output wire  led_link_12,               //  Valid Link 
703
    output wire  led_col_12,                //  Collision Indication
704
    output wire  led_an_12,                 //  Auto-Negotiation Status
705
    output wire  led_char_err_12,           //  Character Error
706
    output wire  led_disp_err_12,           //  Disparity Error
707
 
708
    // AV-ST TX & RX
709
    output wire  mac_rx_clk_12,             //  Av-ST Receive Clock
710
    output wire  mac_tx_clk_12,             //  Av-ST Transmit Clock   
711
    output wire  data_rx_sop_12,            //  Start of Packet
712
    output wire  data_rx_eop_12,            //  End of Packet
713
    output wire  [7:0] data_rx_data_12,     //  Data from FIFO
714
    output wire  [4:0] data_rx_error_12,    //  Receive packet error
715
    output wire  data_rx_valid_12,          //  Data Receive FIFO Valid
716
    input wire   data_rx_ready_12,          //  Data Receive Ready
717
    output wire  [4:0] pkt_class_data_12,   //  Frame Type Indication
718
    output wire  pkt_class_valid_12,        //  Frame Type Indication Valid 
719
    input wire   data_tx_error_12,          //  STATUS FIFO (Tx frame Error from Apps)
720
    input wire   [7:0] data_tx_data_12,     //  Data from FIFO transmit
721
    input wire   data_tx_valid_12,          //  Data FIFO transmit Empty
722
    input wire   data_tx_sop_12,            //  Start of Packet
723
    input wire   data_tx_eop_12,            //  END of Packet
724
    output wire  data_tx_ready_12,          //  Data FIFO transmit Read Enable  
725
 
726
    // STAND_ALONE CONDUITS 
727
    output wire  tx_ff_uflow_12,            //  TX FIFO underflow occured (Synchronous with tx_clk)
728
    input wire   tx_crc_fwd_12,             //  Forward Current Frame with CRC from Application
729
    input wire   xoff_gen_12,               //  Xoff Pause frame generate 
730
    input wire   xon_gen_12,                //  Xon Pause frame generate 
731
    input wire   magic_sleep_n_12,          //  Enable Sleep Mode
732
    output wire  magic_wakeup_12,           //  Wake Up Request
733
 
734
    // RECONFIG BLOCK SIGNALS
735
    input wire   reconfig_clk_12,             //  Clock for reconfiguration block
736
    input wire   reconfig_busy_12,                     //  Busy from reconfiguration block
737
    input wire   [3:0] reconfig_togxb_12,     //  Signals from the reconfig block to the GXB block
738
    output wire  [16:0] reconfig_fromgxb_12,  //  Signals from the gxb block to the reconfig block
739
 
740
 
741
    // CHANNEL 13
742
 
743
    // PCS SIGNALS TO PHY
744
    input wire   rxp_13,                    //  Differential Receive Data 
745
    output wire  txp_13,                    //  Differential Transmit Data 
746
    input wire   gxb_pwrdn_in_13,           //  Powerdown signal to GXB
747
    output wire  pcs_pwrdn_out_13,          //  Powerdown Enable from PCS
748
    output wire  rx_recovclkout_13,         //  Receiver Recovered Clock 
749
    output wire  led_crs_13,                //  Carrier Sense
750
    output wire  led_link_13,               //  Valid Link 
751
    output wire  led_col_13,                //  Collision Indication
752
    output wire  led_an_13,                 //  Auto-Negotiation Status
753
    output wire  led_char_err_13,           //  Character Error
754
    output wire  led_disp_err_13,           //  Disparity Error
755
 
756
    // AV-ST TX & RX
757
    output wire  mac_rx_clk_13,             //  Av-ST Receive Clock
758
    output wire  mac_tx_clk_13,             //  Av-ST Transmit Clock   
759
    output wire  data_rx_sop_13,            //  Start of Packet
760
    output wire  data_rx_eop_13,            //  End of Packet
761
    output wire  [7:0] data_rx_data_13,     //  Data from FIFO
762
    output wire  [4:0] data_rx_error_13,    //  Receive packet error
763
    output wire  data_rx_valid_13,          //  Data Receive FIFO Valid
764
    input wire   data_rx_ready_13,          //  Data Receive Ready
765
    output wire  [4:0] pkt_class_data_13,   //  Frame Type Indication
766
    output wire  pkt_class_valid_13,        //  Frame Type Indication Valid 
767
    input wire   data_tx_error_13,          //  STATUS FIFO (Tx frame Error from Apps)
768
    input wire   [7:0] data_tx_data_13,     //  Data from FIFO transmit
769
    input wire   data_tx_valid_13,          //  Data FIFO transmit Empty
770
    input wire   data_tx_sop_13,            //  Start of Packet
771
    input wire   data_tx_eop_13,            //  END of Packet
772
    output wire  data_tx_ready_13,          //  Data FIFO transmit Read Enable  
773
 
774
    // STAND_ALONE CONDUITS 
775
    output wire  tx_ff_uflow_13,            //  TX FIFO underflow occured (Synchronous with tx_clk)
776
    input wire   tx_crc_fwd_13,             //  Forward Current Frame with CRC from Application
777
    input wire   xoff_gen_13,               //  Xoff Pause frame generate 
778
    input wire   xon_gen_13,                //  Xon Pause frame generate 
779
    input wire   magic_sleep_n_13,          //  Enable Sleep Mode
780
    output wire  magic_wakeup_13,           //  Wake Up Request
781
 
782
    // RECONFIG BLOCK SIGNALS
783
    input wire   reconfig_clk_13,             //  Clock for reconfiguration block
784
    input wire   reconfig_busy_13,                     //  Busy from reconfiguration block
785
    input wire   [3:0] reconfig_togxb_13,     //  Signals from the reconfig block to the GXB block
786
    output wire  [16:0] reconfig_fromgxb_13,  //  Signals from the gxb block to the reconfig block
787
 
788
 
789
    // CHANNEL 14
790
 
791
    // PCS SIGNALS TO PHY
792
    input wire   rxp_14,                    //  Differential Receive Data 
793
    output wire  txp_14,                    //  Differential Transmit Data 
794
    input wire   gxb_pwrdn_in_14,           //  Powerdown signal to GXB
795
    output wire  pcs_pwrdn_out_14,          //  Powerdown Enable from PCS
796
    output wire  rx_recovclkout_14,         //  Receiver Recovered Clock 
797
    output wire  led_crs_14,                //  Carrier Sense
798
    output wire  led_link_14,               //  Valid Link 
799
    output wire  led_col_14,                //  Collision Indication
800
    output wire  led_an_14,                 //  Auto-Negotiation Status
801
    output wire  led_char_err_14,           //  Character Error
802
    output wire  led_disp_err_14,           //  Disparity Error
803
 
804
    // AV-ST TX & RX
805
    output wire  mac_rx_clk_14,             //  Av-ST Receive Clock
806
    output wire  mac_tx_clk_14,             //  Av-ST Transmit Clock   
807
    output wire  data_rx_sop_14,            //  Start of Packet
808
    output wire  data_rx_eop_14,            //  End of Packet
809
    output wire  [7:0] data_rx_data_14,     //  Data from FIFO
810
    output wire  [4:0] data_rx_error_14,    //  Receive packet error
811
    output wire  data_rx_valid_14,          //  Data Receive FIFO Valid
812
    input wire   data_rx_ready_14,          //  Data Receive Ready
813
    output wire  [4:0] pkt_class_data_14,   //  Frame Type Indication
814
    output wire  pkt_class_valid_14,        //  Frame Type Indication Valid 
815
    input wire   data_tx_error_14,          //  STATUS FIFO (Tx frame Error from Apps)
816
    input wire   [7:0] data_tx_data_14,     //  Data from FIFO transmit
817
    input wire   data_tx_valid_14,          //  Data FIFO transmit Empty
818
    input wire   data_tx_sop_14,            //  Start of Packet
819
    input wire   data_tx_eop_14,            //  END of Packet
820
    output wire  data_tx_ready_14,          //  Data FIFO transmit Read Enable  
821
 
822
    // STAND_ALONE CONDUITS 
823
    output wire  tx_ff_uflow_14,            //  TX FIFO underflow occured (Synchronous with tx_clk)
824
    input wire   tx_crc_fwd_14,             //  Forward Current Frame with CRC from Application
825
    input wire   xoff_gen_14,               //  Xoff Pause frame generate 
826
    input wire   xon_gen_14,                //  Xon Pause frame generate 
827
    input wire   magic_sleep_n_14,          //  Enable Sleep Mode
828
    output wire  magic_wakeup_14,           //  Wake Up Request
829
 
830
    // RECONFIG BLOCK SIGNALS
831
    input wire   reconfig_clk_14,             //  Clock for reconfiguration block
832
    input wire   reconfig_busy_14,                     //  Busy from reconfiguration block
833
    input wire   [3:0] reconfig_togxb_14,     //  Signals from the reconfig block to the GXB block
834
    output wire  [16:0] reconfig_fromgxb_14,  //  Signals from the gxb block to the reconfig block
835
 
836
 
837
    // CHANNEL 15
838
 
839
    // PCS SIGNALS TO PHY
840
    input wire   rxp_15,                    //  Differential Receive Data 
841
    output wire  txp_15,                    //  Differential Transmit Data 
842
    input wire   gxb_pwrdn_in_15,           //  Powerdown signal to GXB
843
    output wire  pcs_pwrdn_out_15,          //  Powerdown Enable from PCS
844
    output wire  rx_recovclkout_15,         //  Receiver Recovered Clock 
845
    output wire  led_crs_15,                //  Carrier Sense
846
    output wire  led_link_15,               //  Valid Link 
847
    output wire  led_col_15,                //  Collision Indication
848
    output wire  led_an_15,                 //  Auto-Negotiation Status
849
    output wire  led_char_err_15,           //  Character Error
850
    output wire  led_disp_err_15,           //  Disparity Error
851
 
852
    // AV-ST TX & RX
853
    output wire  mac_rx_clk_15,             //  Av-ST Receive Clock
854
    output wire  mac_tx_clk_15,             //  Av-ST Transmit Clock   
855
    output wire  data_rx_sop_15,            //  Start of Packet
856
    output wire  data_rx_eop_15,            //  End of Packet
857
    output wire  [7:0] data_rx_data_15,     //  Data from FIFO
858
    output wire  [4:0] data_rx_error_15,    //  Receive packet error
859
    output wire  data_rx_valid_15,          //  Data Receive FIFO Valid
860
    input wire   data_rx_ready_15,          //  Data Receive Ready
861
    output wire  [4:0] pkt_class_data_15,   //  Frame Type Indication
862
    output wire  pkt_class_valid_15,        //  Frame Type Indication Valid 
863
    input wire   data_tx_error_15,          //  STATUS FIFO (Tx frame Error from Apps)
864
    input wire   [7:0] data_tx_data_15,     //  Data from FIFO transmit
865
    input wire   data_tx_valid_15,          //  Data FIFO transmit Empty
866
    input wire   data_tx_sop_15,            //  Start of Packet
867
    input wire   data_tx_eop_15,            //  END of Packet
868
    output wire  data_tx_ready_15,          //  Data FIFO transmit Read Enable  
869
 
870
    // STAND_ALONE CONDUITS 
871
    output wire  tx_ff_uflow_15,            //  TX FIFO underflow occured (Synchronous with tx_clk)
872
    input wire   tx_crc_fwd_15,             //  Forward Current Frame with CRC from Application
873
    input wire   xoff_gen_15,               //  Xoff Pause frame generate 
874
    input wire   xon_gen_15,                //  Xon Pause frame generate 
875
    input wire   magic_sleep_n_15,          //  Enable Sleep Mode
876
    output wire  magic_wakeup_15,           //  Wake Up Request
877
 
878
    // RECONFIG BLOCK SIGNALS
879
    input wire   reconfig_clk_15,             //  Clock for reconfiguration block
880
    input wire   reconfig_busy_15,                     //  Busy from reconfiguration block
881
    input wire   [3:0] reconfig_togxb_15,     //  Signals from the reconfig block to the GXB block
882
    output wire  [16:0] reconfig_fromgxb_15,  //  Signals from the gxb block to the reconfig block
883
 
884
 
885
    // CHANNEL 16
886
 
887
    // PCS SIGNALS TO PHY
888
    input wire   rxp_16,                    //  Differential Receive Data 
889
    output wire  txp_16,                    //  Differential Transmit Data 
890
    input wire   gxb_pwrdn_in_16,           //  Powerdown signal to GXB
891
    output wire  pcs_pwrdn_out_16,          //  Powerdown Enable from PCS
892
    output wire  rx_recovclkout_16,         //  Receiver Recovered Clock 
893
    output wire  led_crs_16,                //  Carrier Sense
894
    output wire  led_link_16,               //  Valid Link 
895
    output wire  led_col_16,                //  Collision Indication
896
    output wire  led_an_16,                 //  Auto-Negotiation Status
897
    output wire  led_char_err_16,           //  Character Error
898
    output wire  led_disp_err_16,           //  Disparity Error
899
 
900
    // AV-ST TX & RX
901
    output wire  mac_rx_clk_16,             //  Av-ST Receive Clock
902
    output wire  mac_tx_clk_16,             //  Av-ST Transmit Clock   
903
    output wire  data_rx_sop_16,            //  Start of Packet
904
    output wire  data_rx_eop_16,            //  End of Packet
905
    output wire  [7:0] data_rx_data_16,     //  Data from FIFO
906
    output wire  [4:0] data_rx_error_16,    //  Receive packet error
907
    output wire  data_rx_valid_16,          //  Data Receive FIFO Valid
908
    input wire   data_rx_ready_16,          //  Data Receive Ready
909
    output wire  [4:0] pkt_class_data_16,   //  Frame Type Indication
910
    output wire  pkt_class_valid_16,        //  Frame Type Indication Valid 
911
    input wire   data_tx_error_16,          //  STATUS FIFO (Tx frame Error from Apps)
912
    input wire   [7:0] data_tx_data_16,     //  Data from FIFO transmit
913
    input wire   data_tx_valid_16,          //  Data FIFO transmit Empty
914
    input wire   data_tx_sop_16,            //  Start of Packet
915
    input wire   data_tx_eop_16,            //  END of Packet
916
    output wire  data_tx_ready_16,          //  Data FIFO transmit Read Enable  
917
 
918
    // STAND_ALONE CONDUITS 
919
    output wire  tx_ff_uflow_16,            //  TX FIFO underflow occured (Synchronous with tx_clk)
920
    input wire   tx_crc_fwd_16,             //  Forward Current Frame with CRC from Application
921
    input wire   xoff_gen_16,               //  Xoff Pause frame generate 
922
    input wire   xon_gen_16,                //  Xon Pause frame generate 
923
    input wire   magic_sleep_n_16,          //  Enable Sleep Mode
924
    output wire  magic_wakeup_16,           //  Wake Up Request
925
 
926
    // RECONFIG BLOCK SIGNALS
927
    input wire   reconfig_clk_16,             //  Clock for reconfiguration block
928
    input wire   reconfig_busy_16,                     //  Busy from reconfiguration block
929
    input wire   [3:0] reconfig_togxb_16,     //  Signals from the reconfig block to the GXB block
930
    output wire  [16:0] reconfig_fromgxb_16,  //  Signals from the gxb block to the reconfig block
931
 
932
 
933
    // CHANNEL 17
934
 
935
    // PCS SIGNALS TO PHY
936
    input wire   rxp_17,                    //  Differential Receive Data 
937
    output wire  txp_17,                    //  Differential Transmit Data 
938
    input wire   gxb_pwrdn_in_17,           //  Powerdown signal to GXB
939
    output wire  pcs_pwrdn_out_17,          //  Powerdown Enable from PCS
940
    output wire  rx_recovclkout_17,         //  Receiver Recovered Clock 
941
    output wire  led_crs_17,                //  Carrier Sense
942
    output wire  led_link_17,               //  Valid Link 
943
    output wire  led_col_17,                //  Collision Indication
944
    output wire  led_an_17,                 //  Auto-Negotiation Status
945
    output wire  led_char_err_17,           //  Character Error
946
    output wire  led_disp_err_17,           //  Disparity Error
947
 
948
    // AV-ST TX & RX
949
    output wire  mac_rx_clk_17,             //  Av-ST Receive Clock
950
    output wire  mac_tx_clk_17,             //  Av-ST Transmit Clock   
951
    output wire  data_rx_sop_17,            //  Start of Packet
952
    output wire  data_rx_eop_17,            //  End of Packet
953
    output wire  [7:0] data_rx_data_17,     //  Data from FIFO
954
    output wire  [4:0] data_rx_error_17,    //  Receive packet error
955
    output wire  data_rx_valid_17,          //  Data Receive FIFO Valid
956
    input wire   data_rx_ready_17,          //  Data Receive Ready
957
    output wire  [4:0] pkt_class_data_17,   //  Frame Type Indication
958
    output wire  pkt_class_valid_17,        //  Frame Type Indication Valid 
959
    input wire   data_tx_error_17,          //  STATUS FIFO (Tx frame Error from Apps)
960
    input wire   [7:0] data_tx_data_17,     //  Data from FIFO transmit
961
    input wire   data_tx_valid_17,          //  Data FIFO transmit Empty
962
    input wire   data_tx_sop_17,            //  Start of Packet
963
    input wire   data_tx_eop_17,            //  END of Packet
964
    output wire  data_tx_ready_17,          //  Data FIFO transmit Read Enable  
965
 
966
    // STAND_ALONE CONDUITS 
967
    output wire  tx_ff_uflow_17,            //  TX FIFO underflow occured (Synchronous with tx_clk)
968
    input wire   tx_crc_fwd_17,             //  Forward Current Frame with CRC from Application
969
    input wire   xoff_gen_17,               //  Xoff Pause frame generate 
970
    input wire   xon_gen_17,                //  Xon Pause frame generate 
971
    input wire   magic_sleep_n_17,          //  Enable Sleep Mode
972
    output wire  magic_wakeup_17,           //  Wake Up Request
973
 
974
    // RECONFIG BLOCK SIGNALS
975
    input wire   reconfig_clk_17,             //  Clock for reconfiguration block
976
    input wire   reconfig_busy_17,                     //  Busy from reconfiguration block
977
    input wire   [3:0] reconfig_togxb_17,     //  Signals from the reconfig block to the GXB block
978
    output wire  [16:0] reconfig_fromgxb_17,  //  Signals from the gxb block to the reconfig block
979
 
980
 
981
    // CHANNEL 18
982
 
983
    // PCS SIGNALS TO PHY
984
    input wire   rxp_18,                    //  Differential Receive Data 
985
    output wire  txp_18,                    //  Differential Transmit Data 
986
    input wire   gxb_pwrdn_in_18,           //  Powerdown signal to GXB
987
    output wire  pcs_pwrdn_out_18,          //  Powerdown Enable from PCS
988
    output wire  rx_recovclkout_18,         //  Receiver Recovered Clock 
989
    output wire  led_crs_18,                //  Carrier Sense
990
    output wire  led_link_18,               //  Valid Link 
991
    output wire  led_col_18,                //  Collision Indication
992
    output wire  led_an_18,                 //  Auto-Negotiation Status
993
    output wire  led_char_err_18,           //  Character Error
994
    output wire  led_disp_err_18,           //  Disparity Error
995
 
996
    // AV-ST TX & RX
997
    output wire  mac_rx_clk_18,             //  Av-ST Receive Clock
998
    output wire  mac_tx_clk_18,             //  Av-ST Transmit Clock   
999
    output wire  data_rx_sop_18,            //  Start of Packet
1000
    output wire  data_rx_eop_18,            //  End of Packet
1001
    output wire  [7:0] data_rx_data_18,     //  Data from FIFO
1002
    output wire  [4:0] data_rx_error_18,    //  Receive packet error
1003
    output wire  data_rx_valid_18,          //  Data Receive FIFO Valid
1004
    input wire   data_rx_ready_18,          //  Data Receive Ready
1005
    output wire  [4:0] pkt_class_data_18,   //  Frame Type Indication
1006
    output wire  pkt_class_valid_18,        //  Frame Type Indication Valid 
1007
    input wire   data_tx_error_18,          //  STATUS FIFO (Tx frame Error from Apps)
1008
    input wire   [7:0] data_tx_data_18,     //  Data from FIFO transmit
1009
    input wire   data_tx_valid_18,          //  Data FIFO transmit Empty
1010
    input wire   data_tx_sop_18,            //  Start of Packet
1011
    input wire   data_tx_eop_18,            //  END of Packet
1012
    output wire  data_tx_ready_18,          //  Data FIFO transmit Read Enable  
1013
 
1014
    // STAND_ALONE CONDUITS 
1015
    output wire  tx_ff_uflow_18,            //  TX FIFO underflow occured (Synchronous with tx_clk)
1016
    input wire   tx_crc_fwd_18,             //  Forward Current Frame with CRC from Application
1017
    input wire   xoff_gen_18,               //  Xoff Pause frame generate 
1018
    input wire   xon_gen_18,                //  Xon Pause frame generate 
1019
    input wire   magic_sleep_n_18,          //  Enable Sleep Mode
1020
    output wire  magic_wakeup_18,           //  Wake Up Request
1021
 
1022
    // RECONFIG BLOCK SIGNALS
1023
    input wire   reconfig_clk_18,             //  Clock for reconfiguration block
1024
    input wire   reconfig_busy_18,                     //  Busy from reconfiguration block
1025
    input wire   [3:0] reconfig_togxb_18,     //  Signals from the reconfig block to the GXB block
1026
    output wire  [16:0] reconfig_fromgxb_18,  //  Signals from the gxb block to the reconfig block
1027
 
1028
 
1029
    // CHANNEL 19
1030
 
1031
    // PCS SIGNALS TO PHY
1032
    input wire   rxp_19,                    //  Differential Receive Data 
1033
    output wire  txp_19,                    //  Differential Transmit Data 
1034
    input wire   gxb_pwrdn_in_19,           //  Powerdown signal to GXB
1035
    output wire  pcs_pwrdn_out_19,          //  Powerdown Enable from PCS
1036
    output wire  rx_recovclkout_19,         //  Receiver Recovered Clock 
1037
    output wire  led_crs_19,                //  Carrier Sense
1038
    output wire  led_link_19,               //  Valid Link 
1039
    output wire  led_col_19,                //  Collision Indication
1040
    output wire  led_an_19,                 //  Auto-Negotiation Status
1041
    output wire  led_char_err_19,           //  Character Error
1042
    output wire  led_disp_err_19,           //  Disparity Error
1043
 
1044
    // AV-ST TX & RX
1045
    output wire  mac_rx_clk_19,             //  Av-ST Receive Clock
1046
    output wire  mac_tx_clk_19,             //  Av-ST Transmit Clock   
1047
    output wire  data_rx_sop_19,            //  Start of Packet
1048
    output wire  data_rx_eop_19,            //  End of Packet
1049
    output wire  [7:0] data_rx_data_19,     //  Data from FIFO
1050
    output wire  [4:0] data_rx_error_19,    //  Receive packet error
1051
    output wire  data_rx_valid_19,          //  Data Receive FIFO Valid
1052
    input wire   data_rx_ready_19,          //  Data Receive Ready
1053
    output wire  [4:0] pkt_class_data_19,   //  Frame Type Indication
1054
    output wire  pkt_class_valid_19,        //  Frame Type Indication Valid 
1055
    input wire   data_tx_error_19,          //  STATUS FIFO (Tx frame Error from Apps)
1056
    input wire   [7:0] data_tx_data_19,     //  Data from FIFO transmit
1057
    input wire   data_tx_valid_19,          //  Data FIFO transmit Empty
1058
    input wire   data_tx_sop_19,            //  Start of Packet
1059
    input wire   data_tx_eop_19,            //  END of Packet
1060
    output wire  data_tx_ready_19,          //  Data FIFO transmit Read Enable  
1061
 
1062
    // STAND_ALONE CONDUITS 
1063
    output wire  tx_ff_uflow_19,            //  TX FIFO underflow occured (Synchronous with tx_clk)
1064
    input wire   tx_crc_fwd_19,             //  Forward Current Frame with CRC from Application
1065
    input wire   xoff_gen_19,               //  Xoff Pause frame generate 
1066
    input wire   xon_gen_19,                //  Xon Pause frame generate 
1067
    input wire   magic_sleep_n_19,          //  Enable Sleep Mode
1068
    output wire  magic_wakeup_19,           //  Wake Up Request
1069
 
1070
    // RECONFIG BLOCK SIGNALS
1071
    input wire   reconfig_clk_19,             //  Clock for reconfiguration block
1072
    input wire   reconfig_busy_19,                     //  Busy from reconfiguration block
1073
    input wire   [3:0] reconfig_togxb_19,     //  Signals from the reconfig block to the GXB block
1074
    output wire  [16:0] reconfig_fromgxb_19,  //  Signals from the gxb block to the reconfig block
1075
 
1076
 
1077
    // CHANNEL 20
1078
 
1079
    // PCS SIGNALS TO PHY
1080
    input wire   rxp_20,                    //  Differential Receive Data 
1081
    output wire  txp_20,                    //  Differential Transmit Data 
1082
    input wire   gxb_pwrdn_in_20,           //  Powerdown signal to GXB
1083
    output wire  pcs_pwrdn_out_20,          //  Powerdown Enable from PCS
1084
    output wire  rx_recovclkout_20,         //  Receiver Recovered Clock 
1085
    output wire  led_crs_20,                //  Carrier Sense
1086
    output wire  led_link_20,               //  Valid Link 
1087
    output wire  led_col_20,                //  Collision Indication
1088
    output wire  led_an_20,                 //  Auto-Negotiation Status
1089
    output wire  led_char_err_20,           //  Character Error
1090
    output wire  led_disp_err_20,           //  Disparity Error
1091
 
1092
    // AV-ST TX & RX
1093
    output wire  mac_rx_clk_20,             //  Av-ST Receive Clock
1094
    output wire  mac_tx_clk_20,             //  Av-ST Transmit Clock   
1095
    output wire  data_rx_sop_20,            //  Start of Packet
1096
    output wire  data_rx_eop_20,            //  End of Packet
1097
    output wire  [7:0] data_rx_data_20,     //  Data from FIFO
1098
    output wire  [4:0] data_rx_error_20,    //  Receive packet error
1099
    output wire  data_rx_valid_20,          //  Data Receive FIFO Valid
1100
    input wire   data_rx_ready_20,          //  Data Receive Ready
1101
    output wire  [4:0] pkt_class_data_20,   //  Frame Type Indication
1102
    output wire  pkt_class_valid_20,        //  Frame Type Indication Valid 
1103
    input wire   data_tx_error_20,          //  STATUS FIFO (Tx frame Error from Apps)
1104
    input wire   [7:0] data_tx_data_20,     //  Data from FIFO transmit
1105
    input wire   data_tx_valid_20,          //  Data FIFO transmit Empty
1106
    input wire   data_tx_sop_20,            //  Start of Packet
1107
    input wire   data_tx_eop_20,            //  END of Packet
1108
    output wire  data_tx_ready_20,          //  Data FIFO transmit Read Enable  
1109
 
1110
    // STAND_ALONE CONDUITS 
1111
    output wire  tx_ff_uflow_20,            //  TX FIFO underflow occured (Synchronous with tx_clk)
1112
    input wire   tx_crc_fwd_20,             //  Forward Current Frame with CRC from Application
1113
    input wire   xoff_gen_20,               //  Xoff Pause frame generate 
1114
    input wire   xon_gen_20,                //  Xon Pause frame generate 
1115
    input wire   magic_sleep_n_20,          //  Enable Sleep Mode
1116
    output wire  magic_wakeup_20,           //  Wake Up Request
1117
 
1118
    // RECONFIG BLOCK SIGNALS
1119
    input wire   reconfig_clk_20,             //  Clock for reconfiguration block
1120
    input wire   reconfig_busy_20,                     //  Busy from reconfiguration block
1121
    input wire   [3:0] reconfig_togxb_20,     //  Signals from the reconfig block to the GXB block
1122
    output wire  [16:0] reconfig_fromgxb_20,  //  Signals from the gxb block to the reconfig block
1123
 
1124
 
1125
    // CHANNEL 21
1126
 
1127
    // PCS SIGNALS TO PHY
1128
    input wire   rxp_21,                    //  Differential Receive Data 
1129
    output wire  txp_21,                    //  Differential Transmit Data 
1130
    input wire   gxb_pwrdn_in_21,           //  Powerdown signal to GXB
1131
    output wire  pcs_pwrdn_out_21,          //  Powerdown Enable from PCS
1132
    output wire  rx_recovclkout_21,         //  Receiver Recovered Clock 
1133
    output wire  led_crs_21,                //  Carrier Sense
1134
    output wire  led_link_21,               //  Valid Link 
1135
    output wire  led_col_21,                //  Collision Indication
1136
    output wire  led_an_21,                 //  Auto-Negotiation Status
1137
    output wire  led_char_err_21,           //  Character Error
1138
    output wire  led_disp_err_21,           //  Disparity Error
1139
 
1140
    // AV-ST TX & RX
1141
    output wire  mac_rx_clk_21,             //  Av-ST Receive Clock
1142
    output wire  mac_tx_clk_21,             //  Av-ST Transmit Clock   
1143
    output wire  data_rx_sop_21,            //  Start of Packet
1144
    output wire  data_rx_eop_21,            //  End of Packet
1145
    output wire  [7:0] data_rx_data_21,     //  Data from FIFO
1146
    output wire  [4:0] data_rx_error_21,    //  Receive packet error
1147
    output wire  data_rx_valid_21,          //  Data Receive FIFO Valid
1148
    input wire   data_rx_ready_21,          //  Data Receive Ready
1149
    output wire  [4:0] pkt_class_data_21,   //  Frame Type Indication
1150
    output wire  pkt_class_valid_21,        //  Frame Type Indication Valid 
1151
    input wire   data_tx_error_21,          //  STATUS FIFO (Tx frame Error from Apps)
1152
    input wire   [7:0] data_tx_data_21,     //  Data from FIFO transmit
1153
    input wire   data_tx_valid_21,          //  Data FIFO transmit Empty
1154
    input wire   data_tx_sop_21,            //  Start of Packet
1155
    input wire   data_tx_eop_21,            //  END of Packet
1156
    output wire  data_tx_ready_21,          //  Data FIFO transmit Read Enable  
1157
 
1158
    // STAND_ALONE CONDUITS 
1159
    output wire  tx_ff_uflow_21,            //  TX FIFO underflow occured (Synchronous with tx_clk)
1160
    input wire   tx_crc_fwd_21,             //  Forward Current Frame with CRC from Application
1161
    input wire   xoff_gen_21,               //  Xoff Pause frame generate 
1162
    input wire   xon_gen_21,                //  Xon Pause frame generate 
1163
    input wire   magic_sleep_n_21,          //  Enable Sleep Mode
1164
    output wire  magic_wakeup_21,           //  Wake Up Request
1165
 
1166
    // RECONFIG BLOCK SIGNALS
1167
    input wire   reconfig_clk_21,             //  Clock for reconfiguration block
1168
    input wire   reconfig_busy_21,                     //  Busy from reconfiguration block
1169
    input wire   [3:0] reconfig_togxb_21,     //  Signals from the reconfig block to the GXB block
1170
    output wire  [16:0] reconfig_fromgxb_21,  //  Signals from the gxb block to the reconfig block
1171
 
1172
 
1173
    // CHANNEL 22
1174
 
1175
    // PCS SIGNALS TO PHY
1176
    input wire   rxp_22,                    //  Differential Receive Data 
1177
    output wire  txp_22,                    //  Differential Transmit Data 
1178
    input wire   gxb_pwrdn_in_22,           //  Powerdown signal to GXB
1179
    output wire  pcs_pwrdn_out_22,          //  Powerdown Enable from PCS
1180
    output wire  rx_recovclkout_22,         //  Receiver Recovered Clock 
1181
    output wire  led_crs_22,                //  Carrier Sense
1182
    output wire  led_link_22,               //  Valid Link 
1183
    output wire  led_col_22,                //  Collision Indication
1184
    output wire  led_an_22,                 //  Auto-Negotiation Status
1185
    output wire  led_char_err_22,           //  Character Error
1186
    output wire  led_disp_err_22,           //  Disparity Error
1187
 
1188
    // AV-ST TX & RX
1189
    output wire  mac_rx_clk_22,             //  Av-ST Receive Clock
1190
    output wire  mac_tx_clk_22,             //  Av-ST Transmit Clock   
1191
    output wire  data_rx_sop_22,            //  Start of Packet
1192
    output wire  data_rx_eop_22,            //  End of Packet
1193
    output wire  [7:0] data_rx_data_22,     //  Data from FIFO
1194
    output wire  [4:0] data_rx_error_22,    //  Receive packet error
1195
    output wire  data_rx_valid_22,          //  Data Receive FIFO Valid
1196
    input wire   data_rx_ready_22,          //  Data Receive Ready
1197
    output wire  [4:0] pkt_class_data_22,   //  Frame Type Indication
1198
    output wire  pkt_class_valid_22,        //  Frame Type Indication Valid 
1199
    input wire   data_tx_error_22,          //  STATUS FIFO (Tx frame Error from Apps)
1200
    input wire   [7:0] data_tx_data_22,     //  Data from FIFO transmit
1201
    input wire   data_tx_valid_22,          //  Data FIFO transmit Empty
1202
    input wire   data_tx_sop_22,            //  Start of Packet
1203
    input wire   data_tx_eop_22,            //  END of Packet
1204
    output wire  data_tx_ready_22,          //  Data FIFO transmit Read Enable  
1205
 
1206
    // STAND_ALONE CONDUITS 
1207
    output wire  tx_ff_uflow_22,            //  TX FIFO underflow occured (Synchronous with tx_clk)
1208
    input wire   tx_crc_fwd_22,             //  Forward Current Frame with CRC from Application
1209
    input wire   xoff_gen_22,               //  Xoff Pause frame generate 
1210
    input wire   xon_gen_22,                //  Xon Pause frame generate 
1211
    input wire   magic_sleep_n_22,          //  Enable Sleep Mode
1212
    output wire  magic_wakeup_22,           //  Wake Up Request
1213
 
1214
    // RECONFIG BLOCK SIGNALS
1215
    input wire   reconfig_clk_22,             //  Clock for reconfiguration block
1216
    input wire   reconfig_busy_22,                     //  Busy from reconfiguration block
1217
    input wire   [3:0] reconfig_togxb_22,     //  Signals from the reconfig block to the GXB block
1218
    output wire  [16:0] reconfig_fromgxb_22,  //  Signals from the gxb block to the reconfig block
1219
 
1220
 
1221
    // CHANNEL 23
1222
 
1223
    // PCS SIGNALS TO PHY
1224
    input wire   rxp_23,                    //  Differential Receive Data 
1225
    output wire  txp_23,                    //  Differential Transmit Data 
1226
    input wire   gxb_pwrdn_in_23,           //  Powerdown signal to GXB
1227
    output wire  pcs_pwrdn_out_23,          //  Powerdown Enable from PCS
1228
    output wire  rx_recovclkout_23,         //  Receiver Recovered Clock 
1229
    output wire  led_crs_23,                //  Carrier Sense
1230
    output wire  led_link_23,               //  Valid Link 
1231
    output wire  led_col_23,                //  Collision Indication
1232
    output wire  led_an_23,                 //  Auto-Negotiation Status
1233
    output wire  led_char_err_23,           //  Character Error
1234
    output wire  led_disp_err_23,           //  Disparity Error
1235
 
1236
    // AV-ST TX & RX
1237
    output wire  mac_rx_clk_23,             //  Av-ST Receive Clock
1238
    output wire  mac_tx_clk_23,             //  Av-ST Transmit Clock   
1239
    output wire  data_rx_sop_23,            //  Start of Packet
1240
    output wire  data_rx_eop_23,            //  End of Packet
1241
    output wire  [7:0] data_rx_data_23,     //  Data from FIFO
1242
    output wire  [4:0] data_rx_error_23,    //  Receive packet error
1243
    output wire  data_rx_valid_23,          //  Data Receive FIFO Valid
1244
    input wire   data_rx_ready_23,          //  Data Receive Ready
1245
    output wire  [4:0] pkt_class_data_23,   //  Frame Type Indication
1246
    output wire  pkt_class_valid_23,        //  Frame Type Indication Valid 
1247
    input wire   data_tx_error_23,          //  STATUS FIFO (Tx frame Error from Apps)
1248
    input wire   [7:0] data_tx_data_23,     //  Data from FIFO transmit
1249
    input wire   data_tx_valid_23,          //  Data FIFO transmit Empty
1250
    input wire   data_tx_sop_23,            //  Start of Packet
1251
    input wire   data_tx_eop_23,            //  END of Packet
1252
    output wire  data_tx_ready_23,          //  Data FIFO transmit Read Enable  
1253
 
1254
    // STAND_ALONE CONDUITS 
1255
    output wire  tx_ff_uflow_23,            //  TX FIFO underflow occured (Synchronous with tx_clk)
1256
    input wire   tx_crc_fwd_23,             //  Forward Current Frame with CRC from Application
1257
    input wire   xoff_gen_23,               //  Xoff Pause frame generate 
1258
    input wire   xon_gen_23,                //  Xon Pause frame generate 
1259
    input wire   magic_sleep_n_23,          //  Enable Sleep Mode
1260
    output wire  magic_wakeup_23,           //  Wake Up Request
1261
 
1262
    // RECONFIG BLOCK SIGNALS
1263
    input wire   reconfig_clk_23,             //  Clock for reconfiguration block
1264
    input wire   reconfig_busy_23,                     //  Busy from reconfiguration block
1265
    input wire   [3:0] reconfig_togxb_23,     //  Signals from the reconfig block to the GXB block
1266
    output wire  [16:0] reconfig_fromgxb_23); //  Signals from the gxb block to the reconfig block
1267
 
1268
 
1269
 
1270
wire    [23:0] pcs_pwrdn_out_sig;
1271
wire    [23:0] gxb_pwrdn_in_sig;
1272
wire    gige_pma_reset;
1273
wire    [23:0] led_char_err_gx;
1274
wire    [23:0] link_status;
1275
//wire    [23:0] pcs_clk;
1276
wire    tx_pcs_clk_c0;
1277
wire    tx_pcs_clk_c1;
1278
wire    tx_pcs_clk_c2;
1279
wire    tx_pcs_clk_c3;
1280
wire    tx_pcs_clk_c4;
1281
wire    tx_pcs_clk_c5;
1282
wire    tx_pcs_clk_c6;
1283
wire    tx_pcs_clk_c7;
1284
wire    tx_pcs_clk_c8;
1285
wire    tx_pcs_clk_c9;
1286
wire    tx_pcs_clk_c10;
1287
wire    tx_pcs_clk_c11;
1288
wire    tx_pcs_clk_c12;
1289
wire    tx_pcs_clk_c13;
1290
wire    tx_pcs_clk_c14;
1291
wire    tx_pcs_clk_c15;
1292
wire    tx_pcs_clk_c16;
1293
wire    tx_pcs_clk_c17;
1294
wire    tx_pcs_clk_c18;
1295
wire    tx_pcs_clk_c19;
1296
wire    tx_pcs_clk_c20;
1297
wire    tx_pcs_clk_c21;
1298
wire    tx_pcs_clk_c22;
1299
wire    tx_pcs_clk_c23;
1300
wire    rx_pcs_clk_c0;
1301
wire    rx_pcs_clk_c1;
1302
wire    rx_pcs_clk_c2;
1303
wire    rx_pcs_clk_c3;
1304
wire    rx_pcs_clk_c4;
1305
wire    rx_pcs_clk_c5;
1306
wire    rx_pcs_clk_c6;
1307
wire    rx_pcs_clk_c7;
1308
wire    rx_pcs_clk_c8;
1309
wire    rx_pcs_clk_c9;
1310
wire    rx_pcs_clk_c10;
1311
wire    rx_pcs_clk_c11;
1312
wire    rx_pcs_clk_c12;
1313
wire    rx_pcs_clk_c13;
1314
wire    rx_pcs_clk_c14;
1315
wire    rx_pcs_clk_c15;
1316
wire    rx_pcs_clk_c16;
1317
wire    rx_pcs_clk_c17;
1318
wire    rx_pcs_clk_c18;
1319
wire    rx_pcs_clk_c19;
1320
wire    rx_pcs_clk_c20;
1321
wire    rx_pcs_clk_c21;
1322
wire    rx_pcs_clk_c22;
1323
wire    rx_pcs_clk_c23;
1324
wire    [23:0] rx_char_err_gx;
1325
wire    [23:0] rx_disp_err;
1326
wire    [23:0] rx_syncstatus;
1327
wire    [23:0] rx_runlengthviolation;
1328
wire    [23:0] rx_patterndetect;
1329
wire    [23:0] rx_runningdisp;
1330
wire    [23:0] rx_rmfifodatadeleted;
1331
wire    [23:0] rx_rmfifodatainserted;
1332
wire    [23:0] pcs_rx_rmfifodatadeleted;
1333
wire    [23:0] pcs_rx_rmfifodatainserted;
1334
wire    [23:0] pcs_rx_carrierdetected;
1335
 
1336
wire    rx_kchar_0;
1337
wire    [7:0] rx_frame_0;
1338
wire    pcs_rx_kchar_0;
1339
wire    [7:0] pcs_rx_frame_0;
1340
wire    tx_kchar_0;
1341
wire    [7:0] tx_frame_0;
1342
wire    rx_kchar_1;
1343
wire    [7:0] rx_frame_1;
1344
wire    pcs_rx_kchar_1;
1345
wire    [7:0] pcs_rx_frame_1;
1346
wire    tx_kchar_1;
1347
wire    [7:0] tx_frame_1;
1348
wire    rx_kchar_2;
1349
wire    [7:0] rx_frame_2;
1350
wire    pcs_rx_kchar_2;
1351
wire    [7:0] pcs_rx_frame_2;
1352
wire    tx_kchar_2;
1353
wire    [7:0] tx_frame_2;
1354
wire    rx_kchar_3;
1355
wire    [7:0] rx_frame_3;
1356
wire    pcs_rx_kchar_3;
1357
wire    [7:0] pcs_rx_frame_3;
1358
wire    tx_kchar_3;
1359
wire    [7:0] tx_frame_3;
1360
wire    rx_kchar_4;
1361
wire    [7:0] rx_frame_4;
1362
wire    pcs_rx_kchar_4;
1363
wire    [7:0] pcs_rx_frame_4;
1364
wire    tx_kchar_4;
1365
wire    [7:0] tx_frame_4;
1366
wire    rx_kchar_5;
1367
wire    [7:0] rx_frame_5;
1368
wire    pcs_rx_kchar_5;
1369
wire    [7:0] pcs_rx_frame_5;
1370
wire    tx_kchar_5;
1371
wire    [7:0] tx_frame_5;
1372
wire    rx_kchar_6;
1373
wire    [7:0] rx_frame_6;
1374
wire    pcs_rx_kchar_6;
1375
wire    [7:0] pcs_rx_frame_6;
1376
wire    tx_kchar_6;
1377
wire    [7:0] tx_frame_6;
1378
wire    rx_kchar_7;
1379
wire    [7:0] rx_frame_7;
1380
wire    pcs_rx_kchar_7;
1381
wire    [7:0] pcs_rx_frame_7;
1382
wire    tx_kchar_7;
1383
wire    [7:0] tx_frame_7;
1384
wire    rx_kchar_8;
1385
wire    [7:0] rx_frame_8;
1386
wire    pcs_rx_kchar_8;
1387
wire    [7:0] pcs_rx_frame_8;
1388
wire    tx_kchar_8;
1389
wire    [7:0] tx_frame_8;
1390
wire    rx_kchar_9;
1391
wire    [7:0] rx_frame_9;
1392
wire    pcs_rx_kchar_9;
1393
wire    [7:0] pcs_rx_frame_9;
1394
wire    tx_kchar_9;
1395
wire    [7:0] tx_frame_9;
1396
wire    rx_kchar_10;
1397
wire    [7:0] rx_frame_10;
1398
wire    pcs_rx_kchar_10;
1399
wire    [7:0] pcs_rx_frame_10;
1400
wire    tx_kchar_10;
1401
wire    [7:0] tx_frame_10;
1402
wire    rx_kchar_11;
1403
wire    [7:0] rx_frame_11;
1404
wire    pcs_rx_kchar_11;
1405
wire    [7:0] pcs_rx_frame_11;
1406
wire    tx_kchar_11;
1407
wire    [7:0] tx_frame_11;
1408
wire    rx_kchar_12;
1409
wire    [7:0] rx_frame_12;
1410
wire    pcs_rx_kchar_12;
1411
wire    [7:0] pcs_rx_frame_12;
1412
wire    tx_kchar_12;
1413
wire    [7:0] tx_frame_12;
1414
wire    rx_kchar_13;
1415
wire    [7:0] rx_frame_13;
1416
wire    pcs_rx_kchar_13;
1417
wire    [7:0] pcs_rx_frame_13;
1418
wire    tx_kchar_13;
1419
wire    [7:0] tx_frame_13;
1420
wire    rx_kchar_14;
1421
wire    [7:0] rx_frame_14;
1422
wire    pcs_rx_kchar_14;
1423
wire    [7:0] pcs_rx_frame_14;
1424
wire    tx_kchar_14;
1425
wire    [7:0] tx_frame_14;
1426
wire    rx_kchar_15;
1427
wire    [7:0] rx_frame_15;
1428
wire    pcs_rx_kchar_15;
1429
wire    [7:0] pcs_rx_frame_15;
1430
wire    tx_kchar_15;
1431
wire    [7:0] tx_frame_15;
1432
wire    rx_kchar_16;
1433
wire    [7:0] rx_frame_16;
1434
wire    pcs_rx_kchar_16;
1435
wire    [7:0] pcs_rx_frame_16;
1436
wire    tx_kchar_16;
1437
wire    [7:0] tx_frame_16;
1438
wire    rx_kchar_17;
1439
wire    [7:0] rx_frame_17;
1440
wire    pcs_rx_kchar_17;
1441
wire    [7:0] pcs_rx_frame_17;
1442
wire    tx_kchar_17;
1443
wire    [7:0] tx_frame_17;
1444
wire    rx_kchar_18;
1445
wire    [7:0] rx_frame_18;
1446
wire    pcs_rx_kchar_18;
1447
wire    [7:0] pcs_rx_frame_18;
1448
wire    tx_kchar_18;
1449
wire    [7:0] tx_frame_18;
1450
wire    rx_kchar_19;
1451
wire    [7:0] rx_frame_19;
1452
wire    pcs_rx_kchar_19;
1453
wire    [7:0] pcs_rx_frame_19;
1454
wire    tx_kchar_19;
1455
wire    [7:0] tx_frame_19;
1456
wire    rx_kchar_20;
1457
wire    [7:0] rx_frame_20;
1458
wire    pcs_rx_kchar_20;
1459
wire    [7:0] pcs_rx_frame_20;
1460
wire    tx_kchar_20;
1461
wire    [7:0] tx_frame_20;
1462
wire    rx_kchar_21;
1463
wire    [7:0] rx_frame_21;
1464
wire    pcs_rx_kchar_21;
1465
wire    [7:0] pcs_rx_frame_21;
1466
wire    tx_kchar_21;
1467
wire    [7:0] tx_frame_21;
1468
wire    rx_kchar_22;
1469
wire    [7:0] rx_frame_22;
1470
wire    pcs_rx_kchar_22;
1471
wire    [7:0] pcs_rx_frame_22;
1472
wire    tx_kchar_22;
1473
wire    [7:0] tx_frame_22;
1474
wire    rx_kchar_23;
1475
wire    [7:0] rx_frame_23;
1476
wire    pcs_rx_kchar_23;
1477
wire    [7:0] pcs_rx_frame_23;
1478
wire    tx_kchar_23;
1479
wire    [7:0] tx_frame_23;
1480
 
1481
wire    sd_loopback_0;
1482
wire    sd_loopback_1;
1483
wire    sd_loopback_2;
1484
wire    sd_loopback_3;
1485
wire    sd_loopback_4;
1486
wire    sd_loopback_5;
1487
wire    sd_loopback_6;
1488
wire    sd_loopback_7;
1489
wire    sd_loopback_8;
1490
wire    sd_loopback_9;
1491
wire    sd_loopback_10;
1492
wire    sd_loopback_11;
1493
wire    sd_loopback_12;
1494
wire    sd_loopback_13;
1495
wire    sd_loopback_14;
1496
wire    sd_loopback_15;
1497
wire    sd_loopback_16;
1498
wire    sd_loopback_17;
1499
wire    sd_loopback_18;
1500
wire    sd_loopback_19;
1501
wire    sd_loopback_20;
1502
wire    sd_loopback_21;
1503
wire    sd_loopback_22;
1504
wire    sd_loopback_23;
1505
 
1506
 
1507
wire reset_rx_pcs_clk_c0_int;
1508
wire reset_rx_pcs_clk_c1_int;
1509
wire reset_rx_pcs_clk_c2_int;
1510
wire reset_rx_pcs_clk_c3_int;
1511
wire reset_rx_pcs_clk_c4_int;
1512
wire reset_rx_pcs_clk_c5_int;
1513
wire reset_rx_pcs_clk_c6_int;
1514
wire reset_rx_pcs_clk_c7_int;
1515
wire reset_rx_pcs_clk_c8_int;
1516
wire reset_rx_pcs_clk_c9_int;
1517
wire reset_rx_pcs_clk_c10_int;
1518
wire reset_rx_pcs_clk_c11_int;
1519
wire reset_rx_pcs_clk_c12_int;
1520
wire reset_rx_pcs_clk_c13_int;
1521
wire reset_rx_pcs_clk_c14_int;
1522
wire reset_rx_pcs_clk_c15_int;
1523
wire reset_rx_pcs_clk_c16_int;
1524
wire reset_rx_pcs_clk_c17_int;
1525
wire reset_rx_pcs_clk_c18_int;
1526
wire reset_rx_pcs_clk_c19_int;
1527
wire reset_rx_pcs_clk_c20_int;
1528
wire reset_rx_pcs_clk_c21_int;
1529
wire reset_rx_pcs_clk_c22_int;
1530
wire reset_rx_pcs_clk_c23_int;
1531
 
1532
wire pll_powerdown_sqcnr_0,tx_digitalreset_sqcnr_0,rx_analogreset_sqcnr_0,rx_digitalreset_sqcnr_0,gxb_powerdown_sqcnr_0,pll_locked_0,rx_freqlocked_0;
1533
wire pll_powerdown_sqcnr_1,tx_digitalreset_sqcnr_1,rx_analogreset_sqcnr_1,rx_digitalreset_sqcnr_1,gxb_powerdown_sqcnr_1,pll_locked_1,rx_freqlocked_1;
1534
wire pll_powerdown_sqcnr_2,tx_digitalreset_sqcnr_2,rx_analogreset_sqcnr_2,rx_digitalreset_sqcnr_2,gxb_powerdown_sqcnr_2,pll_locked_2,rx_freqlocked_2;
1535
wire pll_powerdown_sqcnr_3,tx_digitalreset_sqcnr_3,rx_analogreset_sqcnr_3,rx_digitalreset_sqcnr_3,gxb_powerdown_sqcnr_3,pll_locked_3,rx_freqlocked_3;
1536
wire pll_powerdown_sqcnr_4,tx_digitalreset_sqcnr_4,rx_analogreset_sqcnr_4,rx_digitalreset_sqcnr_4,gxb_powerdown_sqcnr_4,pll_locked_4,rx_freqlocked_4;
1537
wire pll_powerdown_sqcnr_5,tx_digitalreset_sqcnr_5,rx_analogreset_sqcnr_5,rx_digitalreset_sqcnr_5,gxb_powerdown_sqcnr_5,pll_locked_5,rx_freqlocked_5;
1538
wire pll_powerdown_sqcnr_6,tx_digitalreset_sqcnr_6,rx_analogreset_sqcnr_6,rx_digitalreset_sqcnr_6,gxb_powerdown_sqcnr_6,pll_locked_6,rx_freqlocked_6;
1539
wire pll_powerdown_sqcnr_7,tx_digitalreset_sqcnr_7,rx_analogreset_sqcnr_7,rx_digitalreset_sqcnr_7,gxb_powerdown_sqcnr_7,pll_locked_7,rx_freqlocked_7;
1540
wire pll_powerdown_sqcnr_8,tx_digitalreset_sqcnr_8,rx_analogreset_sqcnr_8,rx_digitalreset_sqcnr_8,gxb_powerdown_sqcnr_8,pll_locked_8,rx_freqlocked_8;
1541
wire pll_powerdown_sqcnr_9,tx_digitalreset_sqcnr_9,rx_analogreset_sqcnr_9,rx_digitalreset_sqcnr_9,gxb_powerdown_sqcnr_9,pll_locked_9,rx_freqlocked_9;
1542
wire pll_powerdown_sqcnr_10,tx_digitalreset_sqcnr_10,rx_analogreset_sqcnr_10,rx_digitalreset_sqcnr_10,gxb_powerdown_sqcnr_10,pll_locked_10,rx_freqlocked_10;
1543
wire pll_powerdown_sqcnr_11,tx_digitalreset_sqcnr_11,rx_analogreset_sqcnr_11,rx_digitalreset_sqcnr_11,gxb_powerdown_sqcnr_11,pll_locked_11,rx_freqlocked_11;
1544
wire pll_powerdown_sqcnr_12,tx_digitalreset_sqcnr_12,rx_analogreset_sqcnr_12,rx_digitalreset_sqcnr_12,gxb_powerdown_sqcnr_12,pll_locked_12,rx_freqlocked_12;
1545
wire pll_powerdown_sqcnr_13,tx_digitalreset_sqcnr_13,rx_analogreset_sqcnr_13,rx_digitalreset_sqcnr_13,gxb_powerdown_sqcnr_13,pll_locked_13,rx_freqlocked_13;
1546
wire pll_powerdown_sqcnr_14,tx_digitalreset_sqcnr_14,rx_analogreset_sqcnr_14,rx_digitalreset_sqcnr_14,gxb_powerdown_sqcnr_14,pll_locked_14,rx_freqlocked_14;
1547
wire pll_powerdown_sqcnr_15,tx_digitalreset_sqcnr_15,rx_analogreset_sqcnr_15,rx_digitalreset_sqcnr_15,gxb_powerdown_sqcnr_15,pll_locked_15,rx_freqlocked_15;
1548
wire pll_powerdown_sqcnr_16,tx_digitalreset_sqcnr_16,rx_analogreset_sqcnr_16,rx_digitalreset_sqcnr_16,gxb_powerdown_sqcnr_16,pll_locked_16,rx_freqlocked_16;
1549
wire pll_powerdown_sqcnr_17,tx_digitalreset_sqcnr_17,rx_analogreset_sqcnr_17,rx_digitalreset_sqcnr_17,gxb_powerdown_sqcnr_17,pll_locked_17,rx_freqlocked_17;
1550
wire pll_powerdown_sqcnr_18,tx_digitalreset_sqcnr_18,rx_analogreset_sqcnr_18,rx_digitalreset_sqcnr_18,gxb_powerdown_sqcnr_18,pll_locked_18,rx_freqlocked_18;
1551
wire pll_powerdown_sqcnr_19,tx_digitalreset_sqcnr_19,rx_analogreset_sqcnr_19,rx_digitalreset_sqcnr_19,gxb_powerdown_sqcnr_19,pll_locked_19,rx_freqlocked_19;
1552
wire pll_powerdown_sqcnr_20,tx_digitalreset_sqcnr_20,rx_analogreset_sqcnr_20,rx_digitalreset_sqcnr_20,gxb_powerdown_sqcnr_20,pll_locked_20,rx_freqlocked_20;
1553
wire pll_powerdown_sqcnr_21,tx_digitalreset_sqcnr_21,rx_analogreset_sqcnr_21,rx_digitalreset_sqcnr_21,gxb_powerdown_sqcnr_21,pll_locked_21,rx_freqlocked_21;
1554
wire pll_powerdown_sqcnr_22,tx_digitalreset_sqcnr_22,rx_analogreset_sqcnr_22,rx_digitalreset_sqcnr_22,gxb_powerdown_sqcnr_22,pll_locked_22,rx_freqlocked_22;
1555
wire pll_powerdown_sqcnr_23,tx_digitalreset_sqcnr_23,rx_analogreset_sqcnr_23,rx_digitalreset_sqcnr_23,gxb_powerdown_sqcnr_23,pll_locked_23,rx_freqlocked_23;
1556
 
1557
      // Assign pcs clock for all channels
1558
        //assign pcs_clk = {pcs_clk_c23,pcs_clk_c22,pcs_clk_c21,pcs_clk_c20,pcs_clk_c19,pcs_clk_c18,pcs_clk_c17,pcs_clk_c16,pcs_clk_c15,pcs_clk_c14,pcs_clk_c13,pcs_clk_c12,pcs_clk_c11,pcs_clk_c10,pcs_clk_c9,pcs_clk_c8,pcs_clk_c7,pcs_clk_c6,pcs_clk_c5,pcs_clk_c4,pcs_clk_c3,pcs_clk_c2,pcs_clk_c1,pcs_clk_c0};
1559
 
1560
    //  Assign the character error and link status to top level leds
1561
    //  ------------------------------------------------------------
1562
    assign led_char_err_0 = led_char_err_gx[0];
1563
    assign led_link_0 = link_status[0];
1564
    assign led_char_err_1 = led_char_err_gx[1];
1565
    assign led_link_1 = link_status[1];
1566
    assign led_char_err_2 = led_char_err_gx[2];
1567
    assign led_link_2 = link_status[2];
1568
    assign led_char_err_3 = led_char_err_gx[3];
1569
    assign led_link_3 = link_status[3];
1570
    assign led_char_err_4 = led_char_err_gx[4];
1571
    assign led_link_4 = link_status[4];
1572
    assign led_char_err_5 = led_char_err_gx[5];
1573
    assign led_link_5 = link_status[5];
1574
    assign led_char_err_6 = led_char_err_gx[6];
1575
    assign led_link_6 = link_status[6];
1576
    assign led_char_err_7 = led_char_err_gx[7];
1577
    assign led_link_7 = link_status[7];
1578
    assign led_char_err_8 = led_char_err_gx[8];
1579
    assign led_link_8 = link_status[8];
1580
    assign led_char_err_9 = led_char_err_gx[9];
1581
    assign led_link_9 = link_status[9];
1582
    assign led_char_err_10 = led_char_err_gx[10];
1583
    assign led_link_10 = link_status[10];
1584
    assign led_char_err_11 = led_char_err_gx[11];
1585
    assign led_link_11 = link_status[11];
1586
    assign led_char_err_12 = led_char_err_gx[12];
1587
    assign led_link_12 = link_status[12];
1588
    assign led_char_err_13 = led_char_err_gx[13];
1589
    assign led_link_13 = link_status[13];
1590
    assign led_char_err_14 = led_char_err_gx[14];
1591
    assign led_link_14 = link_status[14];
1592
    assign led_char_err_15 = led_char_err_gx[15];
1593
    assign led_link_15 = link_status[15];
1594
    assign led_char_err_16 = led_char_err_gx[16];
1595
    assign led_link_16 = link_status[16];
1596
    assign led_char_err_17 = led_char_err_gx[17];
1597
    assign led_link_17 = link_status[17];
1598
    assign led_char_err_18 = led_char_err_gx[18];
1599
    assign led_link_18 = link_status[18];
1600
    assign led_char_err_19 = led_char_err_gx[19];
1601
    assign led_link_19 = link_status[19];
1602
    assign led_char_err_20 = led_char_err_gx[20];
1603
    assign led_link_20 = link_status[20];
1604
    assign led_char_err_21 = led_char_err_gx[21];
1605
    assign led_link_21 = link_status[21];
1606
    assign led_char_err_22 = led_char_err_gx[22];
1607
    assign led_link_22 = link_status[22];
1608
    assign led_char_err_23 = led_char_err_gx[23];
1609
    assign led_link_23 = link_status[23];
1610
 
1611
    //Resets the Reset Sequencer for the rising edge of Reset signal
1612
    // ---------------------------------------------------------------
1613
    reg reset_p1, reset_p2;
1614
    reg reset_posedge;
1615
    always@(posedge clk)
1616
    begin
1617
        reset_p1 <= reset;
1618
        reset_p2 <= reset_p1;
1619
        reset_posedge <= reset_p1 & ~reset_p2;
1620
    end
1621
 
1622
    // Instantiation of the MAC_PCS core that connects to a PMA
1623
    // --------------------------------------------------------
1624
 
1625
    altera_tse_top_multi_mac_pcs_gige U_MULTI_MAC_PCS(
1626
 
1627
        .reset(reset),                    //INPUT  : ASYNCHRONOUS RESET - clk DOMAIN
1628
        .clk(clk),                                //INPUT  : CLOCK
1629
        .read(read),                              //INPUT  : REGISTER READ TRANSACTION
1630
        .ref_clk(ref_clk),                        //INPUT  : REFERENCE CLOCK 
1631
        .write(write),                            //INPUT  : REGISTER WRITE TRANSACTION
1632
        .address(address),                        //INPUT  : REGISTER ADDRESS
1633
        .writedata(writedata),                    //INPUT  : REGISTER WRITE DATA
1634
        .readdata(readdata),                      //OUTPUT : REGISTER READ DATA
1635
        .waitrequest(waitrequest),                //OUTPUT : TRANSACTION BUSY, ACTIVE LOW
1636
        .mdc(mdc),                                //OUTPUT : MDIO Clock 
1637
        .mdio_out(mdio_out),                      //OUTPUT : Outgoing MDIO DATA
1638
        .mdio_in(mdio_in),                        //INPUT  : Incoming MDIO DATA       
1639
        .mdio_oen(mdio_oen),                      //OUTPUT : MDIO Output Enable
1640
        .mac_rx_clk(mac_rx_clk),                  //OUTPUT : Av-ST Rx Clock
1641
        .mac_tx_clk(mac_tx_clk),                  //OUTPUT : Av-ST Tx Clock
1642
            .rx_afull_clk(rx_afull_clk),              //INPUT  : AFull Status Clock
1643
            .rx_afull_data(rx_afull_data),            //INPUT  : AFull Status Data
1644
            .rx_afull_valid(rx_afull_valid),          //INPUT  : AFull Status Valid
1645
            .rx_afull_channel(rx_afull_channel),      //INPUT  : AFull Status Channel
1646
 
1647
         // Channel 0 
1648
 
1649
 
1650
        .rx_carrierdetected_0(pcs_rx_carrierdetected[0]),
1651
        .rx_rmfifodatadeleted_0(pcs_rx_rmfifodatadeleted[0]),
1652
        .rx_rmfifodatainserted_0(pcs_rx_rmfifodatainserted[0]),
1653
 
1654
        .rx_clkout_0(rx_pcs_clk_c0),                 //INPUT  : Receive Clock
1655
        .tx_clkout_0(tx_pcs_clk_c0),                 //INPUT  : Transmit Clock
1656
        .rx_kchar_0(pcs_rx_kchar_0),              //INPUT  : Special Character Indication
1657
        .tx_kchar_0(tx_kchar_0),                  //OUTPUT : Special Character Indication
1658
        .rx_frame_0(pcs_rx_frame_0),              //INPUT  : Frame
1659
        .tx_frame_0(tx_frame_0),                  //OUTPUT : Frame
1660
        .sd_loopback_0(sd_loopback_0),            //OUTPUT : SERDES Loopback Enable
1661
        .powerdown_0(pcs_pwrdn_out_sig[0]),       //OUTPUT : Powerdown Enable
1662
        .led_col_0(led_col_0),                    //OUTPUT : Collision Indication
1663
        .led_an_0(led_an_0),                      //OUTPUT : Auto Negotiation Status
1664
        .led_char_err_0(led_char_err_gx[0]),      //INPUT  : Character error
1665
        .led_crs_0(led_crs_0),                    //OUTPUT : Carrier sense
1666
        .led_link_0(link_status[0]),              //INPUT  : Valid link    
1667
        .mac_rx_clk_0(mac_rx_clk_0),              //OUTPUT : Av-ST Rx Clock
1668
        .mac_tx_clk_0(mac_tx_clk_0),              //OUTPUT : Av-ST Tx Clock
1669
        .data_rx_sop_0(data_rx_sop_0),            //OUTPUT : Start of Packet
1670
        .data_rx_eop_0(data_rx_eop_0),            //OUTPUT : End of Packet
1671
        .data_rx_data_0(data_rx_data_0),          //OUTPUT : Data from FIFO
1672
        .data_rx_error_0(data_rx_error_0),        //OUTPUT : Receive packet error
1673
        .data_rx_valid_0(data_rx_valid_0),        //OUTPUT : Data Receive FIFO Valid
1674
        .data_rx_ready_0(data_rx_ready_0),        //OUTPUT : Data Receive Ready
1675
        .pkt_class_data_0(pkt_class_data_0),      //OUTPUT : Frame Type Indication
1676
        .pkt_class_valid_0(pkt_class_valid_0),    //OUTPUT : Frame Type Indication Valid
1677
        .data_tx_error_0(data_tx_error_0),        //INPUT  : Status
1678
        .data_tx_data_0(data_tx_data_0),          //INPUT  : Data from FIFO transmit
1679
        .data_tx_valid_0(data_tx_valid_0),        //INPUT  : Data FIFO transmit Empty
1680
        .data_tx_sop_0(data_tx_sop_0),            //INPUT  : Start of Packet
1681
        .data_tx_eop_0(data_tx_eop_0),            //INPUT  : End of Packet
1682
        .data_tx_ready_0(data_tx_ready_0),        //OUTPUT : Data FIFO transmit Read Enable  
1683
        .tx_ff_uflow_0(tx_ff_uflow_0),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
1684
        .tx_crc_fwd_0(tx_crc_fwd_0),              //INPUT  : Forward Current Frame with CRC from Application
1685
        .xoff_gen_0(xoff_gen_0),                  //INPUT  : XOFF PAUSE FRAME GENERATE
1686
        .xon_gen_0(xon_gen_0),                    //INPUT  : XON PAUSE FRAME GENERATE
1687
        .magic_sleep_n_0(magic_sleep_n_0),        //INPUT  : MAC SLEEP MODE CONTROL
1688
        .magic_wakeup_0(magic_wakeup_0),          //OUTPUT : MAC WAKE-UP INDICATION
1689
 
1690
         // Channel 1 
1691
 
1692
 
1693
        .rx_carrierdetected_1(pcs_rx_carrierdetected[1]),
1694
        .rx_rmfifodatadeleted_1(pcs_rx_rmfifodatadeleted[1]),
1695
        .rx_rmfifodatainserted_1(pcs_rx_rmfifodatainserted[1]),
1696
 
1697
        .rx_clkout_1(rx_pcs_clk_c1),                 //INPUT  : Receive Clock
1698
        .tx_clkout_1(tx_pcs_clk_c1),                 //INPUT  : Transmit Clock
1699
        .rx_kchar_1(pcs_rx_kchar_1),              //INPUT  : Special Character Indication
1700
        .tx_kchar_1(tx_kchar_1),                  //OUTPUT : Special Character Indication
1701
        .rx_frame_1(pcs_rx_frame_1),              //INPUT  : Frame
1702
        .tx_frame_1(tx_frame_1),                  //OUTPUT : Frame
1703
        .sd_loopback_1(sd_loopback_1),            //OUTPUT : SERDES Loopback Enable
1704
        .powerdown_1(pcs_pwrdn_out_sig[1]),       //OUTPUT : Powerdown Enable
1705
        .led_col_1(led_col_1),                    //OUTPUT : Collision Indication
1706
        .led_an_1(led_an_1),                      //OUTPUT : Auto Negotiation Status
1707
        .led_char_err_1(led_char_err_gx[1]),      //INPUT  : Character error
1708
        .led_crs_1(led_crs_1),                    //OUTPUT : Carrier sense
1709
        .led_link_1(link_status[1]),              //INPUT  : Valid link    
1710
        .mac_rx_clk_1(mac_rx_clk_1),              //OUTPUT : Av-ST Rx Clock
1711
        .mac_tx_clk_1(mac_tx_clk_1),              //OUTPUT : Av-ST Tx Clock
1712
        .data_rx_sop_1(data_rx_sop_1),            //OUTPUT : Start of Packet
1713
        .data_rx_eop_1(data_rx_eop_1),            //OUTPUT : End of Packet
1714
        .data_rx_data_1(data_rx_data_1),          //OUTPUT : Data from FIFO
1715
        .data_rx_error_1(data_rx_error_1),        //OUTPUT : Receive packet error
1716
        .data_rx_valid_1(data_rx_valid_1),        //OUTPUT : Data Receive FIFO Valid
1717
        .data_rx_ready_1(data_rx_ready_1),        //OUTPUT : Data Receive Ready
1718
        .pkt_class_data_1(pkt_class_data_1),      //OUTPUT : Frame Type Indication
1719
        .pkt_class_valid_1(pkt_class_valid_1),    //OUTPUT : Frame Type Indication Valid
1720
        .data_tx_error_1(data_tx_error_1),        //INPUT  : Status
1721
        .data_tx_data_1(data_tx_data_1),          //INPUT  : Data from FIFO transmit
1722
        .data_tx_valid_1(data_tx_valid_1),        //INPUT  : Data FIFO transmit Empty
1723
        .data_tx_sop_1(data_tx_sop_1),            //INPUT  : Start of Packet
1724
        .data_tx_eop_1(data_tx_eop_1),            //INPUT  : End of Packet
1725
        .data_tx_ready_1(data_tx_ready_1),        //OUTPUT : Data FIFO transmit Read Enable  
1726
        .tx_ff_uflow_1(tx_ff_uflow_1),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
1727
        .tx_crc_fwd_1(tx_crc_fwd_1),              //INPUT  : Forward Current Frame with CRC from Application
1728
        .xoff_gen_1(xoff_gen_1),                  //INPUT  : XOFF PAUSE FRAME GENERATE
1729
        .xon_gen_1(xon_gen_1),                    //INPUT  : XON PAUSE FRAME GENERATE
1730
        .magic_sleep_n_1(magic_sleep_n_1),        //INPUT  : MAC SLEEP MODE CONTROL
1731
        .magic_wakeup_1(magic_wakeup_1),          //OUTPUT : MAC WAKE-UP INDICATION
1732
 
1733
         // Channel 2 
1734
 
1735
 
1736
        .rx_carrierdetected_2(pcs_rx_carrierdetected[2]),
1737
        .rx_rmfifodatadeleted_2(pcs_rx_rmfifodatadeleted[2]),
1738
        .rx_rmfifodatainserted_2(pcs_rx_rmfifodatainserted[2]),
1739
 
1740
        .rx_clkout_2(rx_pcs_clk_c2),                 //INPUT  : Receive Clock
1741
        .tx_clkout_2(tx_pcs_clk_c2),                 //INPUT  : Transmit Clock
1742
        .rx_kchar_2(pcs_rx_kchar_2),              //INPUT  : Special Character Indication
1743
        .tx_kchar_2(tx_kchar_2),                  //OUTPUT : Special Character Indication
1744
        .rx_frame_2(pcs_rx_frame_2),              //INPUT  : Frame
1745
        .tx_frame_2(tx_frame_2),                  //OUTPUT : Frame
1746
        .sd_loopback_2(sd_loopback_2),            //OUTPUT : SERDES Loopback Enable
1747
        .powerdown_2(pcs_pwrdn_out_sig[2]),       //OUTPUT : Powerdown Enable
1748
        .led_col_2(led_col_2),                    //OUTPUT : Collision Indication
1749
        .led_an_2(led_an_2),                      //OUTPUT : Auto Negotiation Status
1750
        .led_char_err_2(led_char_err_gx[2]),      //INPUT  : Character error
1751
        .led_crs_2(led_crs_2),                    //OUTPUT : Carrier sense
1752
        .led_link_2(link_status[2]),              //INPUT  : Valid link    
1753
        .mac_rx_clk_2(mac_rx_clk_2),              //OUTPUT : Av-ST Rx Clock
1754
        .mac_tx_clk_2(mac_tx_clk_2),              //OUTPUT : Av-ST Tx Clock
1755
        .data_rx_sop_2(data_rx_sop_2),            //OUTPUT : Start of Packet
1756
        .data_rx_eop_2(data_rx_eop_2),            //OUTPUT : End of Packet
1757
        .data_rx_data_2(data_rx_data_2),          //OUTPUT : Data from FIFO
1758
        .data_rx_error_2(data_rx_error_2),        //OUTPUT : Receive packet error
1759
        .data_rx_valid_2(data_rx_valid_2),        //OUTPUT : Data Receive FIFO Valid
1760
        .data_rx_ready_2(data_rx_ready_2),        //OUTPUT : Data Receive Ready
1761
        .pkt_class_data_2(pkt_class_data_2),      //OUTPUT : Frame Type Indication
1762
        .pkt_class_valid_2(pkt_class_valid_2),    //OUTPUT : Frame Type Indication Valid
1763
        .data_tx_error_2(data_tx_error_2),        //INPUT  : Status
1764
        .data_tx_data_2(data_tx_data_2),          //INPUT  : Data from FIFO transmit
1765
        .data_tx_valid_2(data_tx_valid_2),        //INPUT  : Data FIFO transmit Empty
1766
        .data_tx_sop_2(data_tx_sop_2),            //INPUT  : Start of Packet
1767
        .data_tx_eop_2(data_tx_eop_2),            //INPUT  : End of Packet
1768
        .data_tx_ready_2(data_tx_ready_2),        //OUTPUT : Data FIFO transmit Read Enable  
1769
        .tx_ff_uflow_2(tx_ff_uflow_2),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
1770
        .tx_crc_fwd_2(tx_crc_fwd_2),              //INPUT  : Forward Current Frame with CRC from Application
1771
        .xoff_gen_2(xoff_gen_2),                  //INPUT  : XOFF PAUSE FRAME GENERATE
1772
        .xon_gen_2(xon_gen_2),                    //INPUT  : XON PAUSE FRAME GENERATE
1773
        .magic_sleep_n_2(magic_sleep_n_2),        //INPUT  : MAC SLEEP MODE CONTROL
1774
        .magic_wakeup_2(magic_wakeup_2),          //OUTPUT : MAC WAKE-UP INDICATION
1775
 
1776
         // Channel 3 
1777
 
1778
 
1779
        .rx_carrierdetected_3(pcs_rx_carrierdetected[3]),
1780
        .rx_rmfifodatadeleted_3(pcs_rx_rmfifodatadeleted[3]),
1781
        .rx_rmfifodatainserted_3(pcs_rx_rmfifodatainserted[3]),
1782
 
1783
        .rx_clkout_3(rx_pcs_clk_c3),                 //INPUT  : Receive Clock
1784
        .tx_clkout_3(tx_pcs_clk_c3),                 //INPUT  : Transmit Clock
1785
        .rx_kchar_3(pcs_rx_kchar_3),              //INPUT  : Special Character Indication
1786
        .tx_kchar_3(tx_kchar_3),                  //OUTPUT : Special Character Indication
1787
        .rx_frame_3(pcs_rx_frame_3),              //INPUT  : Frame
1788
        .tx_frame_3(tx_frame_3),                  //OUTPUT : Frame
1789
        .sd_loopback_3(sd_loopback_3),            //OUTPUT : SERDES Loopback Enable
1790
        .powerdown_3(pcs_pwrdn_out_sig[3]),       //OUTPUT : Powerdown Enable
1791
        .led_col_3(led_col_3),                    //OUTPUT : Collision Indication
1792
        .led_an_3(led_an_3),                      //OUTPUT : Auto Negotiation Status
1793
        .led_char_err_3(led_char_err_gx[3]),      //INPUT  : Character error
1794
        .led_crs_3(led_crs_3),                    //OUTPUT : Carrier sense
1795
        .led_link_3(link_status[3]),              //INPUT  : Valid link    
1796
        .mac_rx_clk_3(mac_rx_clk_3),              //OUTPUT : Av-ST Rx Clock
1797
        .mac_tx_clk_3(mac_tx_clk_3),              //OUTPUT : Av-ST Tx Clock
1798
        .data_rx_sop_3(data_rx_sop_3),            //OUTPUT : Start of Packet
1799
        .data_rx_eop_3(data_rx_eop_3),            //OUTPUT : End of Packet
1800
        .data_rx_data_3(data_rx_data_3),          //OUTPUT : Data from FIFO
1801
        .data_rx_error_3(data_rx_error_3),        //OUTPUT : Receive packet error
1802
        .data_rx_valid_3(data_rx_valid_3),        //OUTPUT : Data Receive FIFO Valid
1803
        .data_rx_ready_3(data_rx_ready_3),        //OUTPUT : Data Receive Ready
1804
        .pkt_class_data_3(pkt_class_data_3),      //OUTPUT : Frame Type Indication
1805
        .pkt_class_valid_3(pkt_class_valid_3),    //OUTPUT : Frame Type Indication Valid
1806
        .data_tx_error_3(data_tx_error_3),        //INPUT  : Status
1807
        .data_tx_data_3(data_tx_data_3),          //INPUT  : Data from FIFO transmit
1808
        .data_tx_valid_3(data_tx_valid_3),        //INPUT  : Data FIFO transmit Empty
1809
        .data_tx_sop_3(data_tx_sop_3),            //INPUT  : Start of Packet
1810
        .data_tx_eop_3(data_tx_eop_3),            //INPUT  : End of Packet
1811
        .data_tx_ready_3(data_tx_ready_3),        //OUTPUT : Data FIFO transmit Read Enable  
1812
        .tx_ff_uflow_3(tx_ff_uflow_3),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
1813
        .tx_crc_fwd_3(tx_crc_fwd_3),              //INPUT  : Forward Current Frame with CRC from Application
1814
        .xoff_gen_3(xoff_gen_3),                  //INPUT  : XOFF PAUSE FRAME GENERATE
1815
        .xon_gen_3(xon_gen_3),                    //INPUT  : XON PAUSE FRAME GENERATE
1816
        .magic_sleep_n_3(magic_sleep_n_3),        //INPUT  : MAC SLEEP MODE CONTROL
1817
        .magic_wakeup_3(magic_wakeup_3),          //OUTPUT : MAC WAKE-UP INDICATION
1818
 
1819
         // Channel 4 
1820
 
1821
 
1822
        .rx_carrierdetected_4(pcs_rx_carrierdetected[4]),
1823
        .rx_rmfifodatadeleted_4(pcs_rx_rmfifodatadeleted[4]),
1824
        .rx_rmfifodatainserted_4(pcs_rx_rmfifodatainserted[4]),
1825
 
1826
        .rx_clkout_4(rx_pcs_clk_c4),                 //INPUT  : Receive Clock
1827
        .tx_clkout_4(tx_pcs_clk_c4),                 //INPUT  : Transmit Clock
1828
        .rx_kchar_4(pcs_rx_kchar_4),              //INPUT  : Special Character Indication
1829
        .tx_kchar_4(tx_kchar_4),                  //OUTPUT : Special Character Indication
1830
        .rx_frame_4(pcs_rx_frame_4),              //INPUT  : Frame
1831
        .tx_frame_4(tx_frame_4),                  //OUTPUT : Frame
1832
        .sd_loopback_4(sd_loopback_4),            //OUTPUT : SERDES Loopback Enable
1833
        .powerdown_4(pcs_pwrdn_out_sig[4]),       //OUTPUT : Powerdown Enable
1834
        .led_col_4(led_col_4),                    //OUTPUT : Collision Indication
1835
        .led_an_4(led_an_4),                      //OUTPUT : Auto Negotiation Status
1836
        .led_char_err_4(led_char_err_gx[4]),      //INPUT  : Character error
1837
        .led_crs_4(led_crs_4),                    //OUTPUT : Carrier sense
1838
        .led_link_4(link_status[4]),              //INPUT  : Valid link    
1839
        .mac_rx_clk_4(mac_rx_clk_4),              //OUTPUT : Av-ST Rx Clock
1840
        .mac_tx_clk_4(mac_tx_clk_4),              //OUTPUT : Av-ST Tx Clock
1841
        .data_rx_sop_4(data_rx_sop_4),            //OUTPUT : Start of Packet
1842
        .data_rx_eop_4(data_rx_eop_4),            //OUTPUT : End of Packet
1843
        .data_rx_data_4(data_rx_data_4),          //OUTPUT : Data from FIFO
1844
        .data_rx_error_4(data_rx_error_4),        //OUTPUT : Receive packet error
1845
        .data_rx_valid_4(data_rx_valid_4),        //OUTPUT : Data Receive FIFO Valid
1846
        .data_rx_ready_4(data_rx_ready_4),        //OUTPUT : Data Receive Ready
1847
        .pkt_class_data_4(pkt_class_data_4),      //OUTPUT : Frame Type Indication
1848
        .pkt_class_valid_4(pkt_class_valid_4),    //OUTPUT : Frame Type Indication Valid
1849
        .data_tx_error_4(data_tx_error_4),        //INPUT  : Status
1850
        .data_tx_data_4(data_tx_data_4),          //INPUT  : Data from FIFO transmit
1851
        .data_tx_valid_4(data_tx_valid_4),        //INPUT  : Data FIFO transmit Empty
1852
        .data_tx_sop_4(data_tx_sop_4),            //INPUT  : Start of Packet
1853
        .data_tx_eop_4(data_tx_eop_4),            //INPUT  : End of Packet
1854
        .data_tx_ready_4(data_tx_ready_4),        //OUTPUT : Data FIFO transmit Read Enable  
1855
        .tx_ff_uflow_4(tx_ff_uflow_4),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
1856
        .tx_crc_fwd_4(tx_crc_fwd_4),              //INPUT  : Forward Current Frame with CRC from Application
1857
        .xoff_gen_4(xoff_gen_4),                  //INPUT  : XOFF PAUSE FRAME GENERATE
1858
        .xon_gen_4(xon_gen_4),                    //INPUT  : XON PAUSE FRAME GENERATE
1859
        .magic_sleep_n_4(magic_sleep_n_4),        //INPUT  : MAC SLEEP MODE CONTROL
1860
        .magic_wakeup_4(magic_wakeup_4),          //OUTPUT : MAC WAKE-UP INDICATION
1861
 
1862
         // Channel 5 
1863
 
1864
 
1865
        .rx_carrierdetected_5(pcs_rx_carrierdetected[5]),
1866
        .rx_rmfifodatadeleted_5(pcs_rx_rmfifodatadeleted[5]),
1867
        .rx_rmfifodatainserted_5(pcs_rx_rmfifodatainserted[5]),
1868
 
1869
        .rx_clkout_5(rx_pcs_clk_c5),                 //INPUT  : Receive Clock
1870
        .tx_clkout_5(tx_pcs_clk_c5),                 //INPUT  : Transmit Clock
1871
        .rx_kchar_5(pcs_rx_kchar_5),              //INPUT  : Special Character Indication
1872
        .tx_kchar_5(tx_kchar_5),                  //OUTPUT : Special Character Indication
1873
        .rx_frame_5(pcs_rx_frame_5),              //INPUT  : Frame
1874
        .tx_frame_5(tx_frame_5),                  //OUTPUT : Frame
1875
        .sd_loopback_5(sd_loopback_5),            //OUTPUT : SERDES Loopback Enable
1876
        .powerdown_5(pcs_pwrdn_out_sig[5]),       //OUTPUT : Powerdown Enable
1877
        .led_col_5(led_col_5),                    //OUTPUT : Collision Indication
1878
        .led_an_5(led_an_5),                      //OUTPUT : Auto Negotiation Status
1879
        .led_char_err_5(led_char_err_gx[5]),      //INPUT  : Character error
1880
        .led_crs_5(led_crs_5),                    //OUTPUT : Carrier sense
1881
        .led_link_5(link_status[5]),              //INPUT  : Valid link    
1882
        .mac_rx_clk_5(mac_rx_clk_5),              //OUTPUT : Av-ST Rx Clock
1883
        .mac_tx_clk_5(mac_tx_clk_5),              //OUTPUT : Av-ST Tx Clock
1884
        .data_rx_sop_5(data_rx_sop_5),            //OUTPUT : Start of Packet
1885
        .data_rx_eop_5(data_rx_eop_5),            //OUTPUT : End of Packet
1886
        .data_rx_data_5(data_rx_data_5),          //OUTPUT : Data from FIFO
1887
        .data_rx_error_5(data_rx_error_5),        //OUTPUT : Receive packet error
1888
        .data_rx_valid_5(data_rx_valid_5),        //OUTPUT : Data Receive FIFO Valid
1889
        .data_rx_ready_5(data_rx_ready_5),        //OUTPUT : Data Receive Ready
1890
        .pkt_class_data_5(pkt_class_data_5),      //OUTPUT : Frame Type Indication
1891
        .pkt_class_valid_5(pkt_class_valid_5),    //OUTPUT : Frame Type Indication Valid
1892
        .data_tx_error_5(data_tx_error_5),        //INPUT  : Status
1893
        .data_tx_data_5(data_tx_data_5),          //INPUT  : Data from FIFO transmit
1894
        .data_tx_valid_5(data_tx_valid_5),        //INPUT  : Data FIFO transmit Empty
1895
        .data_tx_sop_5(data_tx_sop_5),            //INPUT  : Start of Packet
1896
        .data_tx_eop_5(data_tx_eop_5),            //INPUT  : End of Packet
1897
        .data_tx_ready_5(data_tx_ready_5),        //OUTPUT : Data FIFO transmit Read Enable  
1898
        .tx_ff_uflow_5(tx_ff_uflow_5),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
1899
        .tx_crc_fwd_5(tx_crc_fwd_5),              //INPUT  : Forward Current Frame with CRC from Application
1900
        .xoff_gen_5(xoff_gen_5),                  //INPUT  : XOFF PAUSE FRAME GENERATE
1901
        .xon_gen_5(xon_gen_5),                    //INPUT  : XON PAUSE FRAME GENERATE
1902
        .magic_sleep_n_5(magic_sleep_n_5),        //INPUT  : MAC SLEEP MODE CONTROL
1903
        .magic_wakeup_5(magic_wakeup_5),          //OUTPUT : MAC WAKE-UP INDICATION
1904
 
1905
         // Channel 6 
1906
 
1907
 
1908
        .rx_carrierdetected_6(pcs_rx_carrierdetected[6]),
1909
        .rx_rmfifodatadeleted_6(pcs_rx_rmfifodatadeleted[6]),
1910
        .rx_rmfifodatainserted_6(pcs_rx_rmfifodatainserted[6]),
1911
 
1912
        .rx_clkout_6(rx_pcs_clk_c6),                 //INPUT  : Receive Clock
1913
        .tx_clkout_6(tx_pcs_clk_c6),                 //INPUT  : Transmit Clock
1914
        .rx_kchar_6(pcs_rx_kchar_6),              //INPUT  : Special Character Indication
1915
        .tx_kchar_6(tx_kchar_6),                  //OUTPUT : Special Character Indication
1916
        .rx_frame_6(pcs_rx_frame_6),              //INPUT  : Frame
1917
        .tx_frame_6(tx_frame_6),                  //OUTPUT : Frame
1918
        .sd_loopback_6(sd_loopback_6),            //OUTPUT : SERDES Loopback Enable
1919
        .powerdown_6(pcs_pwrdn_out_sig[6]),       //OUTPUT : Powerdown Enable
1920
        .led_col_6(led_col_6),                    //OUTPUT : Collision Indication
1921
        .led_an_6(led_an_6),                      //OUTPUT : Auto Negotiation Status
1922
        .led_char_err_6(led_char_err_gx[6]),      //INPUT  : Character error
1923
        .led_crs_6(led_crs_6),                    //OUTPUT : Carrier sense
1924
        .led_link_6(link_status[6]),              //INPUT  : Valid link    
1925
        .mac_rx_clk_6(mac_rx_clk_6),              //OUTPUT : Av-ST Rx Clock
1926
        .mac_tx_clk_6(mac_tx_clk_6),              //OUTPUT : Av-ST Tx Clock
1927
        .data_rx_sop_6(data_rx_sop_6),            //OUTPUT : Start of Packet
1928
        .data_rx_eop_6(data_rx_eop_6),            //OUTPUT : End of Packet
1929
        .data_rx_data_6(data_rx_data_6),          //OUTPUT : Data from FIFO
1930
        .data_rx_error_6(data_rx_error_6),        //OUTPUT : Receive packet error
1931
        .data_rx_valid_6(data_rx_valid_6),        //OUTPUT : Data Receive FIFO Valid
1932
        .data_rx_ready_6(data_rx_ready_6),        //OUTPUT : Data Receive Ready
1933
        .pkt_class_data_6(pkt_class_data_6),      //OUTPUT : Frame Type Indication
1934
        .pkt_class_valid_6(pkt_class_valid_6),    //OUTPUT : Frame Type Indication Valid
1935
        .data_tx_error_6(data_tx_error_6),        //INPUT  : Status
1936
        .data_tx_data_6(data_tx_data_6),          //INPUT  : Data from FIFO transmit
1937
        .data_tx_valid_6(data_tx_valid_6),        //INPUT  : Data FIFO transmit Empty
1938
        .data_tx_sop_6(data_tx_sop_6),            //INPUT  : Start of Packet
1939
        .data_tx_eop_6(data_tx_eop_6),            //INPUT  : End of Packet
1940
        .data_tx_ready_6(data_tx_ready_6),        //OUTPUT : Data FIFO transmit Read Enable  
1941
        .tx_ff_uflow_6(tx_ff_uflow_6),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
1942
        .tx_crc_fwd_6(tx_crc_fwd_6),              //INPUT  : Forward Current Frame with CRC from Application
1943
        .xoff_gen_6(xoff_gen_6),                  //INPUT  : XOFF PAUSE FRAME GENERATE
1944
        .xon_gen_6(xon_gen_6),                    //INPUT  : XON PAUSE FRAME GENERATE
1945
        .magic_sleep_n_6(magic_sleep_n_6),        //INPUT  : MAC SLEEP MODE CONTROL
1946
        .magic_wakeup_6(magic_wakeup_6),          //OUTPUT : MAC WAKE-UP INDICATION
1947
 
1948
         // Channel 7 
1949
 
1950
 
1951
        .rx_carrierdetected_7(pcs_rx_carrierdetected[7]),
1952
        .rx_rmfifodatadeleted_7(pcs_rx_rmfifodatadeleted[7]),
1953
        .rx_rmfifodatainserted_7(pcs_rx_rmfifodatainserted[7]),
1954
 
1955
        .rx_clkout_7(rx_pcs_clk_c7),                 //INPUT  : Receive Clock
1956
        .tx_clkout_7(tx_pcs_clk_c7),                 //INPUT  : Transmit Clock
1957
        .rx_kchar_7(pcs_rx_kchar_7),              //INPUT  : Special Character Indication
1958
        .tx_kchar_7(tx_kchar_7),                  //OUTPUT : Special Character Indication
1959
        .rx_frame_7(pcs_rx_frame_7),              //INPUT  : Frame
1960
        .tx_frame_7(tx_frame_7),                  //OUTPUT : Frame
1961
        .sd_loopback_7(sd_loopback_7),            //OUTPUT : SERDES Loopback Enable
1962
        .powerdown_7(pcs_pwrdn_out_sig[7]),       //OUTPUT : Powerdown Enable
1963
        .led_col_7(led_col_7),                    //OUTPUT : Collision Indication
1964
        .led_an_7(led_an_7),                      //OUTPUT : Auto Negotiation Status
1965
        .led_char_err_7(led_char_err_gx[7]),      //INPUT  : Character error
1966
        .led_crs_7(led_crs_7),                    //OUTPUT : Carrier sense
1967
        .led_link_7(link_status[7]),              //INPUT  : Valid link    
1968
        .mac_rx_clk_7(mac_rx_clk_7),              //OUTPUT : Av-ST Rx Clock
1969
        .mac_tx_clk_7(mac_tx_clk_7),              //OUTPUT : Av-ST Tx Clock
1970
        .data_rx_sop_7(data_rx_sop_7),            //OUTPUT : Start of Packet
1971
        .data_rx_eop_7(data_rx_eop_7),            //OUTPUT : End of Packet
1972
        .data_rx_data_7(data_rx_data_7),          //OUTPUT : Data from FIFO
1973
        .data_rx_error_7(data_rx_error_7),        //OUTPUT : Receive packet error
1974
        .data_rx_valid_7(data_rx_valid_7),        //OUTPUT : Data Receive FIFO Valid
1975
        .data_rx_ready_7(data_rx_ready_7),        //OUTPUT : Data Receive Ready
1976
        .pkt_class_data_7(pkt_class_data_7),      //OUTPUT : Frame Type Indication
1977
        .pkt_class_valid_7(pkt_class_valid_7),    //OUTPUT : Frame Type Indication Valid
1978
        .data_tx_error_7(data_tx_error_7),        //INPUT  : Status
1979
        .data_tx_data_7(data_tx_data_7),          //INPUT  : Data from FIFO transmit
1980
        .data_tx_valid_7(data_tx_valid_7),        //INPUT  : Data FIFO transmit Empty
1981
        .data_tx_sop_7(data_tx_sop_7),            //INPUT  : Start of Packet
1982
        .data_tx_eop_7(data_tx_eop_7),            //INPUT  : End of Packet
1983
        .data_tx_ready_7(data_tx_ready_7),        //OUTPUT : Data FIFO transmit Read Enable  
1984
        .tx_ff_uflow_7(tx_ff_uflow_7),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
1985
        .tx_crc_fwd_7(tx_crc_fwd_7),              //INPUT  : Forward Current Frame with CRC from Application
1986
        .xoff_gen_7(xoff_gen_7),                  //INPUT  : XOFF PAUSE FRAME GENERATE
1987
        .xon_gen_7(xon_gen_7),                    //INPUT  : XON PAUSE FRAME GENERATE
1988
        .magic_sleep_n_7(magic_sleep_n_7),        //INPUT  : MAC SLEEP MODE CONTROL
1989
        .magic_wakeup_7(magic_wakeup_7),          //OUTPUT : MAC WAKE-UP INDICATION
1990
 
1991
         // Channel 8 
1992
 
1993
 
1994
        .rx_carrierdetected_8(pcs_rx_carrierdetected[8]),
1995
        .rx_rmfifodatadeleted_8(pcs_rx_rmfifodatadeleted[8]),
1996
        .rx_rmfifodatainserted_8(pcs_rx_rmfifodatainserted[8]),
1997
 
1998
        .rx_clkout_8(rx_pcs_clk_c8),                 //INPUT  : Receive Clock
1999
        .tx_clkout_8(tx_pcs_clk_c8),                 //INPUT  : Transmit Clock
2000
        .rx_kchar_8(pcs_rx_kchar_8),              //INPUT  : Special Character Indication
2001
        .tx_kchar_8(tx_kchar_8),                  //OUTPUT : Special Character Indication
2002
        .rx_frame_8(pcs_rx_frame_8),              //INPUT  : Frame
2003
        .tx_frame_8(tx_frame_8),                  //OUTPUT : Frame
2004
        .sd_loopback_8(sd_loopback_8),            //OUTPUT : SERDES Loopback Enable
2005
        .powerdown_8(pcs_pwrdn_out_sig[8]),       //OUTPUT : Powerdown Enable
2006
        .led_col_8(led_col_8),                    //OUTPUT : Collision Indication
2007
        .led_an_8(led_an_8),                      //OUTPUT : Auto Negotiation Status
2008
        .led_char_err_8(led_char_err_gx[8]),      //INPUT  : Character error
2009
        .led_crs_8(led_crs_8),                    //OUTPUT : Carrier sense
2010
        .led_link_8(link_status[8]),              //INPUT  : Valid link    
2011
        .mac_rx_clk_8(mac_rx_clk_8),              //OUTPUT : Av-ST Rx Clock
2012
        .mac_tx_clk_8(mac_tx_clk_8),              //OUTPUT : Av-ST Tx Clock
2013
        .data_rx_sop_8(data_rx_sop_8),            //OUTPUT : Start of Packet
2014
        .data_rx_eop_8(data_rx_eop_8),            //OUTPUT : End of Packet
2015
        .data_rx_data_8(data_rx_data_8),          //OUTPUT : Data from FIFO
2016
        .data_rx_error_8(data_rx_error_8),        //OUTPUT : Receive packet error
2017
        .data_rx_valid_8(data_rx_valid_8),        //OUTPUT : Data Receive FIFO Valid
2018
        .data_rx_ready_8(data_rx_ready_8),        //OUTPUT : Data Receive Ready
2019
        .pkt_class_data_8(pkt_class_data_8),      //OUTPUT : Frame Type Indication
2020
        .pkt_class_valid_8(pkt_class_valid_8),    //OUTPUT : Frame Type Indication Valid
2021
        .data_tx_error_8(data_tx_error_8),        //INPUT  : Status
2022
        .data_tx_data_8(data_tx_data_8),          //INPUT  : Data from FIFO transmit
2023
        .data_tx_valid_8(data_tx_valid_8),        //INPUT  : Data FIFO transmit Empty
2024
        .data_tx_sop_8(data_tx_sop_8),            //INPUT  : Start of Packet
2025
        .data_tx_eop_8(data_tx_eop_8),            //INPUT  : End of Packet
2026
        .data_tx_ready_8(data_tx_ready_8),        //OUTPUT : Data FIFO transmit Read Enable  
2027
        .tx_ff_uflow_8(tx_ff_uflow_8),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2028
        .tx_crc_fwd_8(tx_crc_fwd_8),              //INPUT  : Forward Current Frame with CRC from Application
2029
        .xoff_gen_8(xoff_gen_8),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2030
        .xon_gen_8(xon_gen_8),                    //INPUT  : XON PAUSE FRAME GENERATE
2031
        .magic_sleep_n_8(magic_sleep_n_8),        //INPUT  : MAC SLEEP MODE CONTROL
2032
        .magic_wakeup_8(magic_wakeup_8),          //OUTPUT : MAC WAKE-UP INDICATION
2033
 
2034
         // Channel 9 
2035
 
2036
 
2037
        .rx_carrierdetected_9(pcs_rx_carrierdetected[9]),
2038
        .rx_rmfifodatadeleted_9(pcs_rx_rmfifodatadeleted[9]),
2039
        .rx_rmfifodatainserted_9(pcs_rx_rmfifodatainserted[9]),
2040
 
2041
        .rx_clkout_9(rx_pcs_clk_c9),                 //INPUT  : Receive Clock
2042
        .tx_clkout_9(tx_pcs_clk_c9),                 //INPUT  : Transmit Clock
2043
        .rx_kchar_9(pcs_rx_kchar_9),              //INPUT  : Special Character Indication
2044
        .tx_kchar_9(tx_kchar_9),                  //OUTPUT : Special Character Indication
2045
        .rx_frame_9(pcs_rx_frame_9),              //INPUT  : Frame
2046
        .tx_frame_9(tx_frame_9),                  //OUTPUT : Frame
2047
        .sd_loopback_9(sd_loopback_9),            //OUTPUT : SERDES Loopback Enable
2048
        .powerdown_9(pcs_pwrdn_out_sig[9]),       //OUTPUT : Powerdown Enable
2049
        .led_col_9(led_col_9),                    //OUTPUT : Collision Indication
2050
        .led_an_9(led_an_9),                      //OUTPUT : Auto Negotiation Status
2051
        .led_char_err_9(led_char_err_gx[9]),      //INPUT  : Character error
2052
        .led_crs_9(led_crs_9),                    //OUTPUT : Carrier sense
2053
        .led_link_9(link_status[9]),              //INPUT  : Valid link    
2054
        .mac_rx_clk_9(mac_rx_clk_9),              //OUTPUT : Av-ST Rx Clock
2055
        .mac_tx_clk_9(mac_tx_clk_9),              //OUTPUT : Av-ST Tx Clock
2056
        .data_rx_sop_9(data_rx_sop_9),            //OUTPUT : Start of Packet
2057
        .data_rx_eop_9(data_rx_eop_9),            //OUTPUT : End of Packet
2058
        .data_rx_data_9(data_rx_data_9),          //OUTPUT : Data from FIFO
2059
        .data_rx_error_9(data_rx_error_9),        //OUTPUT : Receive packet error
2060
        .data_rx_valid_9(data_rx_valid_9),        //OUTPUT : Data Receive FIFO Valid
2061
        .data_rx_ready_9(data_rx_ready_9),        //OUTPUT : Data Receive Ready
2062
        .pkt_class_data_9(pkt_class_data_9),      //OUTPUT : Frame Type Indication
2063
        .pkt_class_valid_9(pkt_class_valid_9),    //OUTPUT : Frame Type Indication Valid
2064
        .data_tx_error_9(data_tx_error_9),        //INPUT  : Status
2065
        .data_tx_data_9(data_tx_data_9),          //INPUT  : Data from FIFO transmit
2066
        .data_tx_valid_9(data_tx_valid_9),        //INPUT  : Data FIFO transmit Empty
2067
        .data_tx_sop_9(data_tx_sop_9),            //INPUT  : Start of Packet
2068
        .data_tx_eop_9(data_tx_eop_9),            //INPUT  : End of Packet
2069
        .data_tx_ready_9(data_tx_ready_9),        //OUTPUT : Data FIFO transmit Read Enable  
2070
        .tx_ff_uflow_9(tx_ff_uflow_9),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2071
        .tx_crc_fwd_9(tx_crc_fwd_9),              //INPUT  : Forward Current Frame with CRC from Application
2072
        .xoff_gen_9(xoff_gen_9),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2073
        .xon_gen_9(xon_gen_9),                    //INPUT  : XON PAUSE FRAME GENERATE
2074
        .magic_sleep_n_9(magic_sleep_n_9),        //INPUT  : MAC SLEEP MODE CONTROL
2075
        .magic_wakeup_9(magic_wakeup_9),          //OUTPUT : MAC WAKE-UP INDICATION
2076
 
2077
         // Channel 10 
2078
 
2079
 
2080
        .rx_carrierdetected_10(pcs_rx_carrierdetected[10]),
2081
        .rx_rmfifodatadeleted_10(pcs_rx_rmfifodatadeleted[10]),
2082
        .rx_rmfifodatainserted_10(pcs_rx_rmfifodatainserted[10]),
2083
 
2084
        .rx_clkout_10(rx_pcs_clk_c10),                 //INPUT  : Receive Clock
2085
        .tx_clkout_10(tx_pcs_clk_c10),                 //INPUT  : Transmit Clock
2086
        .rx_kchar_10(pcs_rx_kchar_10),              //INPUT  : Special Character Indication
2087
        .tx_kchar_10(tx_kchar_10),                  //OUTPUT : Special Character Indication
2088
        .rx_frame_10(pcs_rx_frame_10),              //INPUT  : Frame
2089
        .tx_frame_10(tx_frame_10),                  //OUTPUT : Frame
2090
        .sd_loopback_10(sd_loopback_10),            //OUTPUT : SERDES Loopback Enable
2091
        .powerdown_10(pcs_pwrdn_out_sig[10]),       //OUTPUT : Powerdown Enable
2092
        .led_col_10(led_col_10),                    //OUTPUT : Collision Indication
2093
        .led_an_10(led_an_10),                      //OUTPUT : Auto Negotiation Status
2094
        .led_char_err_10(led_char_err_gx[10]),      //INPUT  : Character error
2095
        .led_crs_10(led_crs_10),                    //OUTPUT : Carrier sense
2096
        .led_link_10(link_status[10]),              //INPUT  : Valid link    
2097
        .mac_rx_clk_10(mac_rx_clk_10),              //OUTPUT : Av-ST Rx Clock
2098
        .mac_tx_clk_10(mac_tx_clk_10),              //OUTPUT : Av-ST Tx Clock
2099
        .data_rx_sop_10(data_rx_sop_10),            //OUTPUT : Start of Packet
2100
        .data_rx_eop_10(data_rx_eop_10),            //OUTPUT : End of Packet
2101
        .data_rx_data_10(data_rx_data_10),          //OUTPUT : Data from FIFO
2102
        .data_rx_error_10(data_rx_error_10),        //OUTPUT : Receive packet error
2103
        .data_rx_valid_10(data_rx_valid_10),        //OUTPUT : Data Receive FIFO Valid
2104
        .data_rx_ready_10(data_rx_ready_10),        //OUTPUT : Data Receive Ready
2105
        .pkt_class_data_10(pkt_class_data_10),      //OUTPUT : Frame Type Indication
2106
        .pkt_class_valid_10(pkt_class_valid_10),    //OUTPUT : Frame Type Indication Valid
2107
        .data_tx_error_10(data_tx_error_10),        //INPUT  : Status
2108
        .data_tx_data_10(data_tx_data_10),          //INPUT  : Data from FIFO transmit
2109
        .data_tx_valid_10(data_tx_valid_10),        //INPUT  : Data FIFO transmit Empty
2110
        .data_tx_sop_10(data_tx_sop_10),            //INPUT  : Start of Packet
2111
        .data_tx_eop_10(data_tx_eop_10),            //INPUT  : End of Packet
2112
        .data_tx_ready_10(data_tx_ready_10),        //OUTPUT : Data FIFO transmit Read Enable  
2113
        .tx_ff_uflow_10(tx_ff_uflow_10),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2114
        .tx_crc_fwd_10(tx_crc_fwd_10),              //INPUT  : Forward Current Frame with CRC from Application
2115
        .xoff_gen_10(xoff_gen_10),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2116
        .xon_gen_10(xon_gen_10),                    //INPUT  : XON PAUSE FRAME GENERATE
2117
        .magic_sleep_n_10(magic_sleep_n_10),        //INPUT  : MAC SLEEP MODE CONTROL
2118
        .magic_wakeup_10(magic_wakeup_10),          //OUTPUT : MAC WAKE-UP INDICATION
2119
 
2120
         // Channel 11 
2121
 
2122
 
2123
        .rx_carrierdetected_11(pcs_rx_carrierdetected[11]),
2124
        .rx_rmfifodatadeleted_11(pcs_rx_rmfifodatadeleted[11]),
2125
        .rx_rmfifodatainserted_11(pcs_rx_rmfifodatainserted[11]),
2126
 
2127
        .rx_clkout_11(rx_pcs_clk_c11),                 //INPUT  : Receive Clock
2128
        .tx_clkout_11(tx_pcs_clk_c11),                 //INPUT  : Transmit Clock
2129
        .rx_kchar_11(pcs_rx_kchar_11),              //INPUT  : Special Character Indication
2130
        .tx_kchar_11(tx_kchar_11),                  //OUTPUT : Special Character Indication
2131
        .rx_frame_11(pcs_rx_frame_11),              //INPUT  : Frame
2132
        .tx_frame_11(tx_frame_11),                  //OUTPUT : Frame
2133
        .sd_loopback_11(sd_loopback_11),            //OUTPUT : SERDES Loopback Enable
2134
        .powerdown_11(pcs_pwrdn_out_sig[11]),       //OUTPUT : Powerdown Enable
2135
        .led_col_11(led_col_11),                    //OUTPUT : Collision Indication
2136
        .led_an_11(led_an_11),                      //OUTPUT : Auto Negotiation Status
2137
        .led_char_err_11(led_char_err_gx[11]),      //INPUT  : Character error
2138
        .led_crs_11(led_crs_11),                    //OUTPUT : Carrier sense
2139
        .led_link_11(link_status[11]),              //INPUT  : Valid link    
2140
        .mac_rx_clk_11(mac_rx_clk_11),              //OUTPUT : Av-ST Rx Clock
2141
        .mac_tx_clk_11(mac_tx_clk_11),              //OUTPUT : Av-ST Tx Clock
2142
        .data_rx_sop_11(data_rx_sop_11),            //OUTPUT : Start of Packet
2143
        .data_rx_eop_11(data_rx_eop_11),            //OUTPUT : End of Packet
2144
        .data_rx_data_11(data_rx_data_11),          //OUTPUT : Data from FIFO
2145
        .data_rx_error_11(data_rx_error_11),        //OUTPUT : Receive packet error
2146
        .data_rx_valid_11(data_rx_valid_11),        //OUTPUT : Data Receive FIFO Valid
2147
        .data_rx_ready_11(data_rx_ready_11),        //OUTPUT : Data Receive Ready
2148
        .pkt_class_data_11(pkt_class_data_11),      //OUTPUT : Frame Type Indication
2149
        .pkt_class_valid_11(pkt_class_valid_11),    //OUTPUT : Frame Type Indication Valid
2150
        .data_tx_error_11(data_tx_error_11),        //INPUT  : Status
2151
        .data_tx_data_11(data_tx_data_11),          //INPUT  : Data from FIFO transmit
2152
        .data_tx_valid_11(data_tx_valid_11),        //INPUT  : Data FIFO transmit Empty
2153
        .data_tx_sop_11(data_tx_sop_11),            //INPUT  : Start of Packet
2154
        .data_tx_eop_11(data_tx_eop_11),            //INPUT  : End of Packet
2155
        .data_tx_ready_11(data_tx_ready_11),        //OUTPUT : Data FIFO transmit Read Enable  
2156
        .tx_ff_uflow_11(tx_ff_uflow_11),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2157
        .tx_crc_fwd_11(tx_crc_fwd_11),              //INPUT  : Forward Current Frame with CRC from Application
2158
        .xoff_gen_11(xoff_gen_11),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2159
        .xon_gen_11(xon_gen_11),                    //INPUT  : XON PAUSE FRAME GENERATE
2160
        .magic_sleep_n_11(magic_sleep_n_11),        //INPUT  : MAC SLEEP MODE CONTROL
2161
        .magic_wakeup_11(magic_wakeup_11),          //OUTPUT : MAC WAKE-UP INDICATION
2162
 
2163
         // Channel 12 
2164
 
2165
 
2166
        .rx_carrierdetected_12(pcs_rx_carrierdetected[12]),
2167
        .rx_rmfifodatadeleted_12(pcs_rx_rmfifodatadeleted[12]),
2168
        .rx_rmfifodatainserted_12(pcs_rx_rmfifodatainserted[12]),
2169
 
2170
        .rx_clkout_12(rx_pcs_clk_c12),                 //INPUT  : Receive Clock
2171
        .tx_clkout_12(tx_pcs_clk_c12),                 //INPUT  : Transmit Clock
2172
        .rx_kchar_12(pcs_rx_kchar_12),              //INPUT  : Special Character Indication
2173
        .tx_kchar_12(tx_kchar_12),                  //OUTPUT : Special Character Indication
2174
        .rx_frame_12(pcs_rx_frame_12),              //INPUT  : Frame
2175
        .tx_frame_12(tx_frame_12),                  //OUTPUT : Frame
2176
        .sd_loopback_12(sd_loopback_12),            //OUTPUT : SERDES Loopback Enable
2177
        .powerdown_12(pcs_pwrdn_out_sig[12]),       //OUTPUT : Powerdown Enable
2178
        .led_col_12(led_col_12),                    //OUTPUT : Collision Indication
2179
        .led_an_12(led_an_12),                      //OUTPUT : Auto Negotiation Status
2180
        .led_char_err_12(led_char_err_gx[12]),      //INPUT  : Character error
2181
        .led_crs_12(led_crs_12),                    //OUTPUT : Carrier sense
2182
        .led_link_12(link_status[12]),              //INPUT  : Valid link    
2183
        .mac_rx_clk_12(mac_rx_clk_12),              //OUTPUT : Av-ST Rx Clock
2184
        .mac_tx_clk_12(mac_tx_clk_12),              //OUTPUT : Av-ST Tx Clock
2185
        .data_rx_sop_12(data_rx_sop_12),            //OUTPUT : Start of Packet
2186
        .data_rx_eop_12(data_rx_eop_12),            //OUTPUT : End of Packet
2187
        .data_rx_data_12(data_rx_data_12),          //OUTPUT : Data from FIFO
2188
        .data_rx_error_12(data_rx_error_12),        //OUTPUT : Receive packet error
2189
        .data_rx_valid_12(data_rx_valid_12),        //OUTPUT : Data Receive FIFO Valid
2190
        .data_rx_ready_12(data_rx_ready_12),        //OUTPUT : Data Receive Ready
2191
        .pkt_class_data_12(pkt_class_data_12),      //OUTPUT : Frame Type Indication
2192
        .pkt_class_valid_12(pkt_class_valid_12),    //OUTPUT : Frame Type Indication Valid
2193
        .data_tx_error_12(data_tx_error_12),        //INPUT  : Status
2194
        .data_tx_data_12(data_tx_data_12),          //INPUT  : Data from FIFO transmit
2195
        .data_tx_valid_12(data_tx_valid_12),        //INPUT  : Data FIFO transmit Empty
2196
        .data_tx_sop_12(data_tx_sop_12),            //INPUT  : Start of Packet
2197
        .data_tx_eop_12(data_tx_eop_12),            //INPUT  : End of Packet
2198
        .data_tx_ready_12(data_tx_ready_12),        //OUTPUT : Data FIFO transmit Read Enable  
2199
        .tx_ff_uflow_12(tx_ff_uflow_12),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2200
        .tx_crc_fwd_12(tx_crc_fwd_12),              //INPUT  : Forward Current Frame with CRC from Application
2201
        .xoff_gen_12(xoff_gen_12),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2202
        .xon_gen_12(xon_gen_12),                    //INPUT  : XON PAUSE FRAME GENERATE
2203
        .magic_sleep_n_12(magic_sleep_n_12),        //INPUT  : MAC SLEEP MODE CONTROL
2204
        .magic_wakeup_12(magic_wakeup_12),          //OUTPUT : MAC WAKE-UP INDICATION
2205
 
2206
         // Channel 13 
2207
 
2208
 
2209
        .rx_carrierdetected_13(pcs_rx_carrierdetected[13]),
2210
        .rx_rmfifodatadeleted_13(pcs_rx_rmfifodatadeleted[13]),
2211
        .rx_rmfifodatainserted_13(pcs_rx_rmfifodatainserted[13]),
2212
 
2213
        .rx_clkout_13(rx_pcs_clk_c13),                 //INPUT  : Receive Clock
2214
        .tx_clkout_13(tx_pcs_clk_c13),                 //INPUT  : Transmit Clock
2215
        .rx_kchar_13(pcs_rx_kchar_13),              //INPUT  : Special Character Indication
2216
        .tx_kchar_13(tx_kchar_13),                  //OUTPUT : Special Character Indication
2217
        .rx_frame_13(pcs_rx_frame_13),              //INPUT  : Frame
2218
        .tx_frame_13(tx_frame_13),                  //OUTPUT : Frame
2219
        .sd_loopback_13(sd_loopback_13),            //OUTPUT : SERDES Loopback Enable
2220
        .powerdown_13(pcs_pwrdn_out_sig[13]),       //OUTPUT : Powerdown Enable
2221
        .led_col_13(led_col_13),                    //OUTPUT : Collision Indication
2222
        .led_an_13(led_an_13),                      //OUTPUT : Auto Negotiation Status
2223
        .led_char_err_13(led_char_err_gx[13]),      //INPUT  : Character error
2224
        .led_crs_13(led_crs_13),                    //OUTPUT : Carrier sense
2225
        .led_link_13(link_status[13]),              //INPUT  : Valid link    
2226
        .mac_rx_clk_13(mac_rx_clk_13),              //OUTPUT : Av-ST Rx Clock
2227
        .mac_tx_clk_13(mac_tx_clk_13),              //OUTPUT : Av-ST Tx Clock
2228
        .data_rx_sop_13(data_rx_sop_13),            //OUTPUT : Start of Packet
2229
        .data_rx_eop_13(data_rx_eop_13),            //OUTPUT : End of Packet
2230
        .data_rx_data_13(data_rx_data_13),          //OUTPUT : Data from FIFO
2231
        .data_rx_error_13(data_rx_error_13),        //OUTPUT : Receive packet error
2232
        .data_rx_valid_13(data_rx_valid_13),        //OUTPUT : Data Receive FIFO Valid
2233
        .data_rx_ready_13(data_rx_ready_13),        //OUTPUT : Data Receive Ready
2234
        .pkt_class_data_13(pkt_class_data_13),      //OUTPUT : Frame Type Indication
2235
        .pkt_class_valid_13(pkt_class_valid_13),    //OUTPUT : Frame Type Indication Valid
2236
        .data_tx_error_13(data_tx_error_13),        //INPUT  : Status
2237
        .data_tx_data_13(data_tx_data_13),          //INPUT  : Data from FIFO transmit
2238
        .data_tx_valid_13(data_tx_valid_13),        //INPUT  : Data FIFO transmit Empty
2239
        .data_tx_sop_13(data_tx_sop_13),            //INPUT  : Start of Packet
2240
        .data_tx_eop_13(data_tx_eop_13),            //INPUT  : End of Packet
2241
        .data_tx_ready_13(data_tx_ready_13),        //OUTPUT : Data FIFO transmit Read Enable  
2242
        .tx_ff_uflow_13(tx_ff_uflow_13),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2243
        .tx_crc_fwd_13(tx_crc_fwd_13),              //INPUT  : Forward Current Frame with CRC from Application
2244
        .xoff_gen_13(xoff_gen_13),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2245
        .xon_gen_13(xon_gen_13),                    //INPUT  : XON PAUSE FRAME GENERATE
2246
        .magic_sleep_n_13(magic_sleep_n_13),        //INPUT  : MAC SLEEP MODE CONTROL
2247
        .magic_wakeup_13(magic_wakeup_13),          //OUTPUT : MAC WAKE-UP INDICATION
2248
 
2249
         // Channel 14 
2250
 
2251
 
2252
        .rx_carrierdetected_14(pcs_rx_carrierdetected[14]),
2253
        .rx_rmfifodatadeleted_14(pcs_rx_rmfifodatadeleted[14]),
2254
        .rx_rmfifodatainserted_14(pcs_rx_rmfifodatainserted[14]),
2255
 
2256
        .rx_clkout_14(rx_pcs_clk_c14),                 //INPUT  : Receive Clock
2257
        .tx_clkout_14(tx_pcs_clk_c14),                 //INPUT  : Transmit Clock
2258
        .rx_kchar_14(pcs_rx_kchar_14),              //INPUT  : Special Character Indication
2259
        .tx_kchar_14(tx_kchar_14),                  //OUTPUT : Special Character Indication
2260
        .rx_frame_14(pcs_rx_frame_14),              //INPUT  : Frame
2261
        .tx_frame_14(tx_frame_14),                  //OUTPUT : Frame
2262
        .sd_loopback_14(sd_loopback_14),            //OUTPUT : SERDES Loopback Enable
2263
        .powerdown_14(pcs_pwrdn_out_sig[14]),       //OUTPUT : Powerdown Enable
2264
        .led_col_14(led_col_14),                    //OUTPUT : Collision Indication
2265
        .led_an_14(led_an_14),                      //OUTPUT : Auto Negotiation Status
2266
        .led_char_err_14(led_char_err_gx[14]),      //INPUT  : Character error
2267
        .led_crs_14(led_crs_14),                    //OUTPUT : Carrier sense
2268
        .led_link_14(link_status[14]),              //INPUT  : Valid link    
2269
        .mac_rx_clk_14(mac_rx_clk_14),              //OUTPUT : Av-ST Rx Clock
2270
        .mac_tx_clk_14(mac_tx_clk_14),              //OUTPUT : Av-ST Tx Clock
2271
        .data_rx_sop_14(data_rx_sop_14),            //OUTPUT : Start of Packet
2272
        .data_rx_eop_14(data_rx_eop_14),            //OUTPUT : End of Packet
2273
        .data_rx_data_14(data_rx_data_14),          //OUTPUT : Data from FIFO
2274
        .data_rx_error_14(data_rx_error_14),        //OUTPUT : Receive packet error
2275
        .data_rx_valid_14(data_rx_valid_14),        //OUTPUT : Data Receive FIFO Valid
2276
        .data_rx_ready_14(data_rx_ready_14),        //OUTPUT : Data Receive Ready
2277
        .pkt_class_data_14(pkt_class_data_14),      //OUTPUT : Frame Type Indication
2278
        .pkt_class_valid_14(pkt_class_valid_14),    //OUTPUT : Frame Type Indication Valid
2279
        .data_tx_error_14(data_tx_error_14),        //INPUT  : Status
2280
        .data_tx_data_14(data_tx_data_14),          //INPUT  : Data from FIFO transmit
2281
        .data_tx_valid_14(data_tx_valid_14),        //INPUT  : Data FIFO transmit Empty
2282
        .data_tx_sop_14(data_tx_sop_14),            //INPUT  : Start of Packet
2283
        .data_tx_eop_14(data_tx_eop_14),            //INPUT  : End of Packet
2284
        .data_tx_ready_14(data_tx_ready_14),        //OUTPUT : Data FIFO transmit Read Enable  
2285
        .tx_ff_uflow_14(tx_ff_uflow_14),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2286
        .tx_crc_fwd_14(tx_crc_fwd_14),              //INPUT  : Forward Current Frame with CRC from Application
2287
        .xoff_gen_14(xoff_gen_14),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2288
        .xon_gen_14(xon_gen_14),                    //INPUT  : XON PAUSE FRAME GENERATE
2289
        .magic_sleep_n_14(magic_sleep_n_14),        //INPUT  : MAC SLEEP MODE CONTROL
2290
        .magic_wakeup_14(magic_wakeup_14),          //OUTPUT : MAC WAKE-UP INDICATION
2291
 
2292
         // Channel 15 
2293
 
2294
 
2295
        .rx_carrierdetected_15(pcs_rx_carrierdetected[15]),
2296
        .rx_rmfifodatadeleted_15(pcs_rx_rmfifodatadeleted[15]),
2297
        .rx_rmfifodatainserted_15(pcs_rx_rmfifodatainserted[15]),
2298
 
2299
        .rx_clkout_15(rx_pcs_clk_c15),                 //INPUT  : Receive Clock
2300
        .tx_clkout_15(tx_pcs_clk_c15),                 //INPUT  : Transmit Clock
2301
        .rx_kchar_15(pcs_rx_kchar_15),              //INPUT  : Special Character Indication
2302
        .tx_kchar_15(tx_kchar_15),                  //OUTPUT : Special Character Indication
2303
        .rx_frame_15(pcs_rx_frame_15),              //INPUT  : Frame
2304
        .tx_frame_15(tx_frame_15),                  //OUTPUT : Frame
2305
        .sd_loopback_15(sd_loopback_15),            //OUTPUT : SERDES Loopback Enable
2306
        .powerdown_15(pcs_pwrdn_out_sig[15]),       //OUTPUT : Powerdown Enable
2307
        .led_col_15(led_col_15),                    //OUTPUT : Collision Indication
2308
        .led_an_15(led_an_15),                      //OUTPUT : Auto Negotiation Status
2309
        .led_char_err_15(led_char_err_gx[15]),      //INPUT  : Character error
2310
        .led_crs_15(led_crs_15),                    //OUTPUT : Carrier sense
2311
        .led_link_15(link_status[15]),              //INPUT  : Valid link    
2312
        .mac_rx_clk_15(mac_rx_clk_15),              //OUTPUT : Av-ST Rx Clock
2313
        .mac_tx_clk_15(mac_tx_clk_15),              //OUTPUT : Av-ST Tx Clock
2314
        .data_rx_sop_15(data_rx_sop_15),            //OUTPUT : Start of Packet
2315
        .data_rx_eop_15(data_rx_eop_15),            //OUTPUT : End of Packet
2316
        .data_rx_data_15(data_rx_data_15),          //OUTPUT : Data from FIFO
2317
        .data_rx_error_15(data_rx_error_15),        //OUTPUT : Receive packet error
2318
        .data_rx_valid_15(data_rx_valid_15),        //OUTPUT : Data Receive FIFO Valid
2319
        .data_rx_ready_15(data_rx_ready_15),        //OUTPUT : Data Receive Ready
2320
        .pkt_class_data_15(pkt_class_data_15),      //OUTPUT : Frame Type Indication
2321
        .pkt_class_valid_15(pkt_class_valid_15),    //OUTPUT : Frame Type Indication Valid
2322
        .data_tx_error_15(data_tx_error_15),        //INPUT  : Status
2323
        .data_tx_data_15(data_tx_data_15),          //INPUT  : Data from FIFO transmit
2324
        .data_tx_valid_15(data_tx_valid_15),        //INPUT  : Data FIFO transmit Empty
2325
        .data_tx_sop_15(data_tx_sop_15),            //INPUT  : Start of Packet
2326
        .data_tx_eop_15(data_tx_eop_15),            //INPUT  : End of Packet
2327
        .data_tx_ready_15(data_tx_ready_15),        //OUTPUT : Data FIFO transmit Read Enable  
2328
        .tx_ff_uflow_15(tx_ff_uflow_15),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2329
        .tx_crc_fwd_15(tx_crc_fwd_15),              //INPUT  : Forward Current Frame with CRC from Application
2330
        .xoff_gen_15(xoff_gen_15),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2331
        .xon_gen_15(xon_gen_15),                    //INPUT  : XON PAUSE FRAME GENERATE
2332
        .magic_sleep_n_15(magic_sleep_n_15),        //INPUT  : MAC SLEEP MODE CONTROL
2333
        .magic_wakeup_15(magic_wakeup_15),          //OUTPUT : MAC WAKE-UP INDICATION
2334
 
2335
         // Channel 16 
2336
 
2337
 
2338
        .rx_carrierdetected_16(pcs_rx_carrierdetected[16]),
2339
        .rx_rmfifodatadeleted_16(pcs_rx_rmfifodatadeleted[16]),
2340
        .rx_rmfifodatainserted_16(pcs_rx_rmfifodatainserted[16]),
2341
 
2342
        .rx_clkout_16(rx_pcs_clk_c16),                 //INPUT  : Receive Clock
2343
        .tx_clkout_16(tx_pcs_clk_c16),                 //INPUT  : Transmit Clock
2344
        .rx_kchar_16(pcs_rx_kchar_16),              //INPUT  : Special Character Indication
2345
        .tx_kchar_16(tx_kchar_16),                  //OUTPUT : Special Character Indication
2346
        .rx_frame_16(pcs_rx_frame_16),              //INPUT  : Frame
2347
        .tx_frame_16(tx_frame_16),                  //OUTPUT : Frame
2348
        .sd_loopback_16(sd_loopback_16),            //OUTPUT : SERDES Loopback Enable
2349
        .powerdown_16(pcs_pwrdn_out_sig[16]),       //OUTPUT : Powerdown Enable
2350
        .led_col_16(led_col_16),                    //OUTPUT : Collision Indication
2351
        .led_an_16(led_an_16),                      //OUTPUT : Auto Negotiation Status
2352
        .led_char_err_16(led_char_err_gx[16]),      //INPUT  : Character error
2353
        .led_crs_16(led_crs_16),                    //OUTPUT : Carrier sense
2354
        .led_link_16(link_status[16]),              //INPUT  : Valid link    
2355
        .mac_rx_clk_16(mac_rx_clk_16),              //OUTPUT : Av-ST Rx Clock
2356
        .mac_tx_clk_16(mac_tx_clk_16),              //OUTPUT : Av-ST Tx Clock
2357
        .data_rx_sop_16(data_rx_sop_16),            //OUTPUT : Start of Packet
2358
        .data_rx_eop_16(data_rx_eop_16),            //OUTPUT : End of Packet
2359
        .data_rx_data_16(data_rx_data_16),          //OUTPUT : Data from FIFO
2360
        .data_rx_error_16(data_rx_error_16),        //OUTPUT : Receive packet error
2361
        .data_rx_valid_16(data_rx_valid_16),        //OUTPUT : Data Receive FIFO Valid
2362
        .data_rx_ready_16(data_rx_ready_16),        //OUTPUT : Data Receive Ready
2363
        .pkt_class_data_16(pkt_class_data_16),      //OUTPUT : Frame Type Indication
2364
        .pkt_class_valid_16(pkt_class_valid_16),    //OUTPUT : Frame Type Indication Valid
2365
        .data_tx_error_16(data_tx_error_16),        //INPUT  : Status
2366
        .data_tx_data_16(data_tx_data_16),          //INPUT  : Data from FIFO transmit
2367
        .data_tx_valid_16(data_tx_valid_16),        //INPUT  : Data FIFO transmit Empty
2368
        .data_tx_sop_16(data_tx_sop_16),            //INPUT  : Start of Packet
2369
        .data_tx_eop_16(data_tx_eop_16),            //INPUT  : End of Packet
2370
        .data_tx_ready_16(data_tx_ready_16),        //OUTPUT : Data FIFO transmit Read Enable  
2371
        .tx_ff_uflow_16(tx_ff_uflow_16),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2372
        .tx_crc_fwd_16(tx_crc_fwd_16),              //INPUT  : Forward Current Frame with CRC from Application
2373
        .xoff_gen_16(xoff_gen_16),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2374
        .xon_gen_16(xon_gen_16),                    //INPUT  : XON PAUSE FRAME GENERATE
2375
        .magic_sleep_n_16(magic_sleep_n_16),        //INPUT  : MAC SLEEP MODE CONTROL
2376
        .magic_wakeup_16(magic_wakeup_16),          //OUTPUT : MAC WAKE-UP INDICATION
2377
 
2378
         // Channel 17 
2379
 
2380
 
2381
        .rx_carrierdetected_17(pcs_rx_carrierdetected[17]),
2382
        .rx_rmfifodatadeleted_17(pcs_rx_rmfifodatadeleted[17]),
2383
        .rx_rmfifodatainserted_17(pcs_rx_rmfifodatainserted[17]),
2384
 
2385
        .rx_clkout_17(rx_pcs_clk_c17),                 //INPUT  : Receive Clock
2386
        .tx_clkout_17(tx_pcs_clk_c17),                 //INPUT  : Transmit Clock
2387
        .rx_kchar_17(pcs_rx_kchar_17),              //INPUT  : Special Character Indication
2388
        .tx_kchar_17(tx_kchar_17),                  //OUTPUT : Special Character Indication
2389
        .rx_frame_17(pcs_rx_frame_17),              //INPUT  : Frame
2390
        .tx_frame_17(tx_frame_17),                  //OUTPUT : Frame
2391
        .sd_loopback_17(sd_loopback_17),            //OUTPUT : SERDES Loopback Enable
2392
        .powerdown_17(pcs_pwrdn_out_sig[17]),       //OUTPUT : Powerdown Enable
2393
        .led_col_17(led_col_17),                    //OUTPUT : Collision Indication
2394
        .led_an_17(led_an_17),                      //OUTPUT : Auto Negotiation Status
2395
        .led_char_err_17(led_char_err_gx[17]),      //INPUT  : Character error
2396
        .led_crs_17(led_crs_17),                    //OUTPUT : Carrier sense
2397
        .led_link_17(link_status[17]),              //INPUT  : Valid link    
2398
        .mac_rx_clk_17(mac_rx_clk_17),              //OUTPUT : Av-ST Rx Clock
2399
        .mac_tx_clk_17(mac_tx_clk_17),              //OUTPUT : Av-ST Tx Clock
2400
        .data_rx_sop_17(data_rx_sop_17),            //OUTPUT : Start of Packet
2401
        .data_rx_eop_17(data_rx_eop_17),            //OUTPUT : End of Packet
2402
        .data_rx_data_17(data_rx_data_17),          //OUTPUT : Data from FIFO
2403
        .data_rx_error_17(data_rx_error_17),        //OUTPUT : Receive packet error
2404
        .data_rx_valid_17(data_rx_valid_17),        //OUTPUT : Data Receive FIFO Valid
2405
        .data_rx_ready_17(data_rx_ready_17),        //OUTPUT : Data Receive Ready
2406
        .pkt_class_data_17(pkt_class_data_17),      //OUTPUT : Frame Type Indication
2407
        .pkt_class_valid_17(pkt_class_valid_17),    //OUTPUT : Frame Type Indication Valid
2408
        .data_tx_error_17(data_tx_error_17),        //INPUT  : Status
2409
        .data_tx_data_17(data_tx_data_17),          //INPUT  : Data from FIFO transmit
2410
        .data_tx_valid_17(data_tx_valid_17),        //INPUT  : Data FIFO transmit Empty
2411
        .data_tx_sop_17(data_tx_sop_17),            //INPUT  : Start of Packet
2412
        .data_tx_eop_17(data_tx_eop_17),            //INPUT  : End of Packet
2413
        .data_tx_ready_17(data_tx_ready_17),        //OUTPUT : Data FIFO transmit Read Enable  
2414
        .tx_ff_uflow_17(tx_ff_uflow_17),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2415
        .tx_crc_fwd_17(tx_crc_fwd_17),              //INPUT  : Forward Current Frame with CRC from Application
2416
        .xoff_gen_17(xoff_gen_17),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2417
        .xon_gen_17(xon_gen_17),                    //INPUT  : XON PAUSE FRAME GENERATE
2418
        .magic_sleep_n_17(magic_sleep_n_17),        //INPUT  : MAC SLEEP MODE CONTROL
2419
        .magic_wakeup_17(magic_wakeup_17),          //OUTPUT : MAC WAKE-UP INDICATION
2420
 
2421
         // Channel 18 
2422
 
2423
 
2424
        .rx_carrierdetected_18(pcs_rx_carrierdetected[18]),
2425
        .rx_rmfifodatadeleted_18(pcs_rx_rmfifodatadeleted[18]),
2426
        .rx_rmfifodatainserted_18(pcs_rx_rmfifodatainserted[18]),
2427
 
2428
        .rx_clkout_18(rx_pcs_clk_c18),                 //INPUT  : Receive Clock
2429
        .tx_clkout_18(tx_pcs_clk_c18),                 //INPUT  : Transmit Clock
2430
        .rx_kchar_18(pcs_rx_kchar_18),              //INPUT  : Special Character Indication
2431
        .tx_kchar_18(tx_kchar_18),                  //OUTPUT : Special Character Indication
2432
        .rx_frame_18(pcs_rx_frame_18),              //INPUT  : Frame
2433
        .tx_frame_18(tx_frame_18),                  //OUTPUT : Frame
2434
        .sd_loopback_18(sd_loopback_18),            //OUTPUT : SERDES Loopback Enable
2435
        .powerdown_18(pcs_pwrdn_out_sig[18]),       //OUTPUT : Powerdown Enable
2436
        .led_col_18(led_col_18),                    //OUTPUT : Collision Indication
2437
        .led_an_18(led_an_18),                      //OUTPUT : Auto Negotiation Status
2438
        .led_char_err_18(led_char_err_gx[18]),      //INPUT  : Character error
2439
        .led_crs_18(led_crs_18),                    //OUTPUT : Carrier sense
2440
        .led_link_18(link_status[18]),              //INPUT  : Valid link    
2441
        .mac_rx_clk_18(mac_rx_clk_18),              //OUTPUT : Av-ST Rx Clock
2442
        .mac_tx_clk_18(mac_tx_clk_18),              //OUTPUT : Av-ST Tx Clock
2443
        .data_rx_sop_18(data_rx_sop_18),            //OUTPUT : Start of Packet
2444
        .data_rx_eop_18(data_rx_eop_18),            //OUTPUT : End of Packet
2445
        .data_rx_data_18(data_rx_data_18),          //OUTPUT : Data from FIFO
2446
        .data_rx_error_18(data_rx_error_18),        //OUTPUT : Receive packet error
2447
        .data_rx_valid_18(data_rx_valid_18),        //OUTPUT : Data Receive FIFO Valid
2448
        .data_rx_ready_18(data_rx_ready_18),        //OUTPUT : Data Receive Ready
2449
        .pkt_class_data_18(pkt_class_data_18),      //OUTPUT : Frame Type Indication
2450
        .pkt_class_valid_18(pkt_class_valid_18),    //OUTPUT : Frame Type Indication Valid
2451
        .data_tx_error_18(data_tx_error_18),        //INPUT  : Status
2452
        .data_tx_data_18(data_tx_data_18),          //INPUT  : Data from FIFO transmit
2453
        .data_tx_valid_18(data_tx_valid_18),        //INPUT  : Data FIFO transmit Empty
2454
        .data_tx_sop_18(data_tx_sop_18),            //INPUT  : Start of Packet
2455
        .data_tx_eop_18(data_tx_eop_18),            //INPUT  : End of Packet
2456
        .data_tx_ready_18(data_tx_ready_18),        //OUTPUT : Data FIFO transmit Read Enable  
2457
        .tx_ff_uflow_18(tx_ff_uflow_18),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2458
        .tx_crc_fwd_18(tx_crc_fwd_18),              //INPUT  : Forward Current Frame with CRC from Application
2459
        .xoff_gen_18(xoff_gen_18),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2460
        .xon_gen_18(xon_gen_18),                    //INPUT  : XON PAUSE FRAME GENERATE
2461
        .magic_sleep_n_18(magic_sleep_n_18),        //INPUT  : MAC SLEEP MODE CONTROL
2462
        .magic_wakeup_18(magic_wakeup_18),          //OUTPUT : MAC WAKE-UP INDICATION
2463
 
2464
         // Channel 19 
2465
 
2466
 
2467
        .rx_carrierdetected_19(pcs_rx_carrierdetected[19]),
2468
        .rx_rmfifodatadeleted_19(pcs_rx_rmfifodatadeleted[19]),
2469
        .rx_rmfifodatainserted_19(pcs_rx_rmfifodatainserted[19]),
2470
 
2471
        .rx_clkout_19(rx_pcs_clk_c19),                 //INPUT  : Receive Clock
2472
        .tx_clkout_19(tx_pcs_clk_c19),                 //INPUT  : Transmit Clock
2473
        .rx_kchar_19(pcs_rx_kchar_19),              //INPUT  : Special Character Indication
2474
        .tx_kchar_19(tx_kchar_19),                  //OUTPUT : Special Character Indication
2475
        .rx_frame_19(pcs_rx_frame_19),              //INPUT  : Frame
2476
        .tx_frame_19(tx_frame_19),                  //OUTPUT : Frame
2477
        .sd_loopback_19(sd_loopback_19),            //OUTPUT : SERDES Loopback Enable
2478
        .powerdown_19(pcs_pwrdn_out_sig[19]),       //OUTPUT : Powerdown Enable
2479
        .led_col_19(led_col_19),                    //OUTPUT : Collision Indication
2480
        .led_an_19(led_an_19),                      //OUTPUT : Auto Negotiation Status
2481
        .led_char_err_19(led_char_err_gx[19]),      //INPUT  : Character error
2482
        .led_crs_19(led_crs_19),                    //OUTPUT : Carrier sense
2483
        .led_link_19(link_status[19]),              //INPUT  : Valid link    
2484
        .mac_rx_clk_19(mac_rx_clk_19),              //OUTPUT : Av-ST Rx Clock
2485
        .mac_tx_clk_19(mac_tx_clk_19),              //OUTPUT : Av-ST Tx Clock
2486
        .data_rx_sop_19(data_rx_sop_19),            //OUTPUT : Start of Packet
2487
        .data_rx_eop_19(data_rx_eop_19),            //OUTPUT : End of Packet
2488
        .data_rx_data_19(data_rx_data_19),          //OUTPUT : Data from FIFO
2489
        .data_rx_error_19(data_rx_error_19),        //OUTPUT : Receive packet error
2490
        .data_rx_valid_19(data_rx_valid_19),        //OUTPUT : Data Receive FIFO Valid
2491
        .data_rx_ready_19(data_rx_ready_19),        //OUTPUT : Data Receive Ready
2492
        .pkt_class_data_19(pkt_class_data_19),      //OUTPUT : Frame Type Indication
2493
        .pkt_class_valid_19(pkt_class_valid_19),    //OUTPUT : Frame Type Indication Valid
2494
        .data_tx_error_19(data_tx_error_19),        //INPUT  : Status
2495
        .data_tx_data_19(data_tx_data_19),          //INPUT  : Data from FIFO transmit
2496
        .data_tx_valid_19(data_tx_valid_19),        //INPUT  : Data FIFO transmit Empty
2497
        .data_tx_sop_19(data_tx_sop_19),            //INPUT  : Start of Packet
2498
        .data_tx_eop_19(data_tx_eop_19),            //INPUT  : End of Packet
2499
        .data_tx_ready_19(data_tx_ready_19),        //OUTPUT : Data FIFO transmit Read Enable  
2500
        .tx_ff_uflow_19(tx_ff_uflow_19),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2501
        .tx_crc_fwd_19(tx_crc_fwd_19),              //INPUT  : Forward Current Frame with CRC from Application
2502
        .xoff_gen_19(xoff_gen_19),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2503
        .xon_gen_19(xon_gen_19),                    //INPUT  : XON PAUSE FRAME GENERATE
2504
        .magic_sleep_n_19(magic_sleep_n_19),        //INPUT  : MAC SLEEP MODE CONTROL
2505
        .magic_wakeup_19(magic_wakeup_19),          //OUTPUT : MAC WAKE-UP INDICATION
2506
 
2507
         // Channel 20 
2508
 
2509
 
2510
        .rx_carrierdetected_20(pcs_rx_carrierdetected[20]),
2511
        .rx_rmfifodatadeleted_20(pcs_rx_rmfifodatadeleted[20]),
2512
        .rx_rmfifodatainserted_20(pcs_rx_rmfifodatainserted[20]),
2513
 
2514
        .rx_clkout_20(rx_pcs_clk_c20),                 //INPUT  : Receive Clock
2515
        .tx_clkout_20(tx_pcs_clk_c20),                 //INPUT  : Transmit Clock
2516
        .rx_kchar_20(pcs_rx_kchar_20),              //INPUT  : Special Character Indication
2517
        .tx_kchar_20(tx_kchar_20),                  //OUTPUT : Special Character Indication
2518
        .rx_frame_20(pcs_rx_frame_20),              //INPUT  : Frame
2519
        .tx_frame_20(tx_frame_20),                  //OUTPUT : Frame
2520
        .sd_loopback_20(sd_loopback_20),            //OUTPUT : SERDES Loopback Enable
2521
        .powerdown_20(pcs_pwrdn_out_sig[20]),       //OUTPUT : Powerdown Enable
2522
        .led_col_20(led_col_20),                    //OUTPUT : Collision Indication
2523
        .led_an_20(led_an_20),                      //OUTPUT : Auto Negotiation Status
2524
        .led_char_err_20(led_char_err_gx[20]),      //INPUT  : Character error
2525
        .led_crs_20(led_crs_20),                    //OUTPUT : Carrier sense
2526
        .led_link_20(link_status[20]),              //INPUT  : Valid link    
2527
        .mac_rx_clk_20(mac_rx_clk_20),              //OUTPUT : Av-ST Rx Clock
2528
        .mac_tx_clk_20(mac_tx_clk_20),              //OUTPUT : Av-ST Tx Clock
2529
        .data_rx_sop_20(data_rx_sop_20),            //OUTPUT : Start of Packet
2530
        .data_rx_eop_20(data_rx_eop_20),            //OUTPUT : End of Packet
2531
        .data_rx_data_20(data_rx_data_20),          //OUTPUT : Data from FIFO
2532
        .data_rx_error_20(data_rx_error_20),        //OUTPUT : Receive packet error
2533
        .data_rx_valid_20(data_rx_valid_20),        //OUTPUT : Data Receive FIFO Valid
2534
        .data_rx_ready_20(data_rx_ready_20),        //OUTPUT : Data Receive Ready
2535
        .pkt_class_data_20(pkt_class_data_20),      //OUTPUT : Frame Type Indication
2536
        .pkt_class_valid_20(pkt_class_valid_20),    //OUTPUT : Frame Type Indication Valid
2537
        .data_tx_error_20(data_tx_error_20),        //INPUT  : Status
2538
        .data_tx_data_20(data_tx_data_20),          //INPUT  : Data from FIFO transmit
2539
        .data_tx_valid_20(data_tx_valid_20),        //INPUT  : Data FIFO transmit Empty
2540
        .data_tx_sop_20(data_tx_sop_20),            //INPUT  : Start of Packet
2541
        .data_tx_eop_20(data_tx_eop_20),            //INPUT  : End of Packet
2542
        .data_tx_ready_20(data_tx_ready_20),        //OUTPUT : Data FIFO transmit Read Enable  
2543
        .tx_ff_uflow_20(tx_ff_uflow_20),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2544
        .tx_crc_fwd_20(tx_crc_fwd_20),              //INPUT  : Forward Current Frame with CRC from Application
2545
        .xoff_gen_20(xoff_gen_20),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2546
        .xon_gen_20(xon_gen_20),                    //INPUT  : XON PAUSE FRAME GENERATE
2547
        .magic_sleep_n_20(magic_sleep_n_20),        //INPUT  : MAC SLEEP MODE CONTROL
2548
        .magic_wakeup_20(magic_wakeup_20),          //OUTPUT : MAC WAKE-UP INDICATION
2549
 
2550
         // Channel 21 
2551
 
2552
 
2553
        .rx_carrierdetected_21(pcs_rx_carrierdetected[21]),
2554
        .rx_rmfifodatadeleted_21(pcs_rx_rmfifodatadeleted[21]),
2555
        .rx_rmfifodatainserted_21(pcs_rx_rmfifodatainserted[21]),
2556
 
2557
        .rx_clkout_21(rx_pcs_clk_c21),                 //INPUT  : Receive Clock
2558
        .tx_clkout_21(tx_pcs_clk_c21),                 //INPUT  : Transmit Clock
2559
        .rx_kchar_21(pcs_rx_kchar_21),              //INPUT  : Special Character Indication
2560
        .tx_kchar_21(tx_kchar_21),                  //OUTPUT : Special Character Indication
2561
        .rx_frame_21(pcs_rx_frame_21),              //INPUT  : Frame
2562
        .tx_frame_21(tx_frame_21),                  //OUTPUT : Frame
2563
        .sd_loopback_21(sd_loopback_21),            //OUTPUT : SERDES Loopback Enable
2564
        .powerdown_21(pcs_pwrdn_out_sig[21]),       //OUTPUT : Powerdown Enable
2565
        .led_col_21(led_col_21),                    //OUTPUT : Collision Indication
2566
        .led_an_21(led_an_21),                      //OUTPUT : Auto Negotiation Status
2567
        .led_char_err_21(led_char_err_gx[21]),      //INPUT  : Character error
2568
        .led_crs_21(led_crs_21),                    //OUTPUT : Carrier sense
2569
        .led_link_21(link_status[21]),              //INPUT  : Valid link    
2570
        .mac_rx_clk_21(mac_rx_clk_21),              //OUTPUT : Av-ST Rx Clock
2571
        .mac_tx_clk_21(mac_tx_clk_21),              //OUTPUT : Av-ST Tx Clock
2572
        .data_rx_sop_21(data_rx_sop_21),            //OUTPUT : Start of Packet
2573
        .data_rx_eop_21(data_rx_eop_21),            //OUTPUT : End of Packet
2574
        .data_rx_data_21(data_rx_data_21),          //OUTPUT : Data from FIFO
2575
        .data_rx_error_21(data_rx_error_21),        //OUTPUT : Receive packet error
2576
        .data_rx_valid_21(data_rx_valid_21),        //OUTPUT : Data Receive FIFO Valid
2577
        .data_rx_ready_21(data_rx_ready_21),        //OUTPUT : Data Receive Ready
2578
        .pkt_class_data_21(pkt_class_data_21),      //OUTPUT : Frame Type Indication
2579
        .pkt_class_valid_21(pkt_class_valid_21),    //OUTPUT : Frame Type Indication Valid
2580
        .data_tx_error_21(data_tx_error_21),        //INPUT  : Status
2581
        .data_tx_data_21(data_tx_data_21),          //INPUT  : Data from FIFO transmit
2582
        .data_tx_valid_21(data_tx_valid_21),        //INPUT  : Data FIFO transmit Empty
2583
        .data_tx_sop_21(data_tx_sop_21),            //INPUT  : Start of Packet
2584
        .data_tx_eop_21(data_tx_eop_21),            //INPUT  : End of Packet
2585
        .data_tx_ready_21(data_tx_ready_21),        //OUTPUT : Data FIFO transmit Read Enable  
2586
        .tx_ff_uflow_21(tx_ff_uflow_21),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2587
        .tx_crc_fwd_21(tx_crc_fwd_21),              //INPUT  : Forward Current Frame with CRC from Application
2588
        .xoff_gen_21(xoff_gen_21),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2589
        .xon_gen_21(xon_gen_21),                    //INPUT  : XON PAUSE FRAME GENERATE
2590
        .magic_sleep_n_21(magic_sleep_n_21),        //INPUT  : MAC SLEEP MODE CONTROL
2591
        .magic_wakeup_21(magic_wakeup_21),          //OUTPUT : MAC WAKE-UP INDICATION
2592
 
2593
         // Channel 22 
2594
 
2595
 
2596
        .rx_carrierdetected_22(pcs_rx_carrierdetected[22]),
2597
        .rx_rmfifodatadeleted_22(pcs_rx_rmfifodatadeleted[22]),
2598
        .rx_rmfifodatainserted_22(pcs_rx_rmfifodatainserted[22]),
2599
 
2600
        .rx_clkout_22(rx_pcs_clk_c22),                 //INPUT  : Receive Clock
2601
        .tx_clkout_22(tx_pcs_clk_c22),                 //INPUT  : Transmit Clock
2602
        .rx_kchar_22(pcs_rx_kchar_22),              //INPUT  : Special Character Indication
2603
        .tx_kchar_22(tx_kchar_22),                  //OUTPUT : Special Character Indication
2604
        .rx_frame_22(pcs_rx_frame_22),              //INPUT  : Frame
2605
        .tx_frame_22(tx_frame_22),                  //OUTPUT : Frame
2606
        .sd_loopback_22(sd_loopback_22),            //OUTPUT : SERDES Loopback Enable
2607
        .powerdown_22(pcs_pwrdn_out_sig[22]),       //OUTPUT : Powerdown Enable
2608
        .led_col_22(led_col_22),                    //OUTPUT : Collision Indication
2609
        .led_an_22(led_an_22),                      //OUTPUT : Auto Negotiation Status
2610
        .led_char_err_22(led_char_err_gx[22]),      //INPUT  : Character error
2611
        .led_crs_22(led_crs_22),                    //OUTPUT : Carrier sense
2612
        .led_link_22(link_status[22]),              //INPUT  : Valid link    
2613
        .mac_rx_clk_22(mac_rx_clk_22),              //OUTPUT : Av-ST Rx Clock
2614
        .mac_tx_clk_22(mac_tx_clk_22),              //OUTPUT : Av-ST Tx Clock
2615
        .data_rx_sop_22(data_rx_sop_22),            //OUTPUT : Start of Packet
2616
        .data_rx_eop_22(data_rx_eop_22),            //OUTPUT : End of Packet
2617
        .data_rx_data_22(data_rx_data_22),          //OUTPUT : Data from FIFO
2618
        .data_rx_error_22(data_rx_error_22),        //OUTPUT : Receive packet error
2619
        .data_rx_valid_22(data_rx_valid_22),        //OUTPUT : Data Receive FIFO Valid
2620
        .data_rx_ready_22(data_rx_ready_22),        //OUTPUT : Data Receive Ready
2621
        .pkt_class_data_22(pkt_class_data_22),      //OUTPUT : Frame Type Indication
2622
        .pkt_class_valid_22(pkt_class_valid_22),    //OUTPUT : Frame Type Indication Valid
2623
        .data_tx_error_22(data_tx_error_22),        //INPUT  : Status
2624
        .data_tx_data_22(data_tx_data_22),          //INPUT  : Data from FIFO transmit
2625
        .data_tx_valid_22(data_tx_valid_22),        //INPUT  : Data FIFO transmit Empty
2626
        .data_tx_sop_22(data_tx_sop_22),            //INPUT  : Start of Packet
2627
        .data_tx_eop_22(data_tx_eop_22),            //INPUT  : End of Packet
2628
        .data_tx_ready_22(data_tx_ready_22),        //OUTPUT : Data FIFO transmit Read Enable  
2629
        .tx_ff_uflow_22(tx_ff_uflow_22),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2630
        .tx_crc_fwd_22(tx_crc_fwd_22),              //INPUT  : Forward Current Frame with CRC from Application
2631
        .xoff_gen_22(xoff_gen_22),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2632
        .xon_gen_22(xon_gen_22),                    //INPUT  : XON PAUSE FRAME GENERATE
2633
        .magic_sleep_n_22(magic_sleep_n_22),        //INPUT  : MAC SLEEP MODE CONTROL
2634
        .magic_wakeup_22(magic_wakeup_22),          //OUTPUT : MAC WAKE-UP INDICATION
2635
 
2636
         // Channel 23 
2637
 
2638
 
2639
        .rx_carrierdetected_23(pcs_rx_carrierdetected[23]),
2640
        .rx_rmfifodatadeleted_23(pcs_rx_rmfifodatadeleted[23]),
2641
        .rx_rmfifodatainserted_23(pcs_rx_rmfifodatainserted[23]),
2642
 
2643
        .rx_clkout_23(rx_pcs_clk_c23),                 //INPUT  : Receive Clock
2644
        .tx_clkout_23(tx_pcs_clk_c23),                 //INPUT  : Transmit Clock
2645
        .rx_kchar_23(pcs_rx_kchar_23),              //INPUT  : Special Character Indication
2646
        .tx_kchar_23(tx_kchar_23),                  //OUTPUT : Special Character Indication
2647
        .rx_frame_23(pcs_rx_frame_23),              //INPUT  : Frame
2648
        .tx_frame_23(tx_frame_23),                  //OUTPUT : Frame
2649
        .sd_loopback_23(sd_loopback_23),            //OUTPUT : SERDES Loopback Enable
2650
        .powerdown_23(pcs_pwrdn_out_sig[23]),       //OUTPUT : Powerdown Enable
2651
        .led_col_23(led_col_23),                    //OUTPUT : Collision Indication
2652
        .led_an_23(led_an_23),                      //OUTPUT : Auto Negotiation Status
2653
        .led_char_err_23(led_char_err_gx[23]),      //INPUT  : Character error
2654
        .led_crs_23(led_crs_23),                    //OUTPUT : Carrier sense
2655
        .led_link_23(link_status[23]),              //INPUT  : Valid link    
2656
        .mac_rx_clk_23(mac_rx_clk_23),              //OUTPUT : Av-ST Rx Clock
2657
        .mac_tx_clk_23(mac_tx_clk_23),              //OUTPUT : Av-ST Tx Clock
2658
        .data_rx_sop_23(data_rx_sop_23),            //OUTPUT : Start of Packet
2659
        .data_rx_eop_23(data_rx_eop_23),            //OUTPUT : End of Packet
2660
        .data_rx_data_23(data_rx_data_23),          //OUTPUT : Data from FIFO
2661
        .data_rx_error_23(data_rx_error_23),        //OUTPUT : Receive packet error
2662
        .data_rx_valid_23(data_rx_valid_23),        //OUTPUT : Data Receive FIFO Valid
2663
        .data_rx_ready_23(data_rx_ready_23),        //OUTPUT : Data Receive Ready
2664
        .pkt_class_data_23(pkt_class_data_23),      //OUTPUT : Frame Type Indication
2665
        .pkt_class_valid_23(pkt_class_valid_23),    //OUTPUT : Frame Type Indication Valid
2666
        .data_tx_error_23(data_tx_error_23),        //INPUT  : Status
2667
        .data_tx_data_23(data_tx_data_23),          //INPUT  : Data from FIFO transmit
2668
        .data_tx_valid_23(data_tx_valid_23),        //INPUT  : Data FIFO transmit Empty
2669
        .data_tx_sop_23(data_tx_sop_23),            //INPUT  : Start of Packet
2670
        .data_tx_eop_23(data_tx_eop_23),            //INPUT  : End of Packet
2671
        .data_tx_ready_23(data_tx_ready_23),        //OUTPUT : Data FIFO transmit Read Enable  
2672
        .tx_ff_uflow_23(tx_ff_uflow_23),            //OUTPUT : TX FIFO underflow occured (Synchronous with tx_clk)
2673
        .tx_crc_fwd_23(tx_crc_fwd_23),              //INPUT  : Forward Current Frame with CRC from Application
2674
        .xoff_gen_23(xoff_gen_23),                  //INPUT  : XOFF PAUSE FRAME GENERATE
2675
        .xon_gen_23(xon_gen_23),                    //INPUT  : XON PAUSE FRAME GENERATE
2676
        .magic_sleep_n_23(magic_sleep_n_23),        //INPUT  : MAC SLEEP MODE CONTROL
2677
        .magic_wakeup_23(magic_wakeup_23));         //OUTPUT : MAC WAKE-UP INDICATION
2678
 
2679
    defparam
2680
        U_MULTI_MAC_PCS.USE_SYNC_RESET = USE_SYNC_RESET,
2681
        U_MULTI_MAC_PCS.RESET_LEVEL = RESET_LEVEL,
2682
        U_MULTI_MAC_PCS.ENABLE_GMII_LOOPBACK = ENABLE_GMII_LOOPBACK,
2683
        U_MULTI_MAC_PCS.ENABLE_HD_LOGIC = ENABLE_HD_LOGIC,
2684
        U_MULTI_MAC_PCS.ENABLE_SUP_ADDR = ENABLE_SUP_ADDR,
2685
        U_MULTI_MAC_PCS.ENA_HASH = ENA_HASH,
2686
        U_MULTI_MAC_PCS.STAT_CNT_ENA = STAT_CNT_ENA,
2687
        U_MULTI_MAC_PCS.CORE_VERSION = CORE_VERSION,
2688
        U_MULTI_MAC_PCS.CUST_VERSION = CUST_VERSION,
2689
        U_MULTI_MAC_PCS.REDUCED_INTERFACE_ENA = REDUCED_INTERFACE_ENA,
2690
        U_MULTI_MAC_PCS.ENABLE_MDIO = ENABLE_MDIO,
2691
        U_MULTI_MAC_PCS.MDIO_CLK_DIV = MDIO_CLK_DIV,
2692
        U_MULTI_MAC_PCS.ENABLE_MAGIC_DETECT = ENABLE_MAGIC_DETECT,
2693
        U_MULTI_MAC_PCS.ENABLE_PADDING = ENABLE_PADDING,
2694
        U_MULTI_MAC_PCS.ENABLE_LGTH_CHECK = ENABLE_LGTH_CHECK,
2695
        U_MULTI_MAC_PCS.GBIT_ONLY = GBIT_ONLY,
2696
        U_MULTI_MAC_PCS.MBIT_ONLY = MBIT_ONLY,
2697
        U_MULTI_MAC_PCS.REDUCED_CONTROL = REDUCED_CONTROL,
2698
        U_MULTI_MAC_PCS.CRC32DWIDTH = CRC32DWIDTH,
2699
        U_MULTI_MAC_PCS.CRC32GENDELAY = CRC32GENDELAY,
2700
        U_MULTI_MAC_PCS.CRC32CHECK16BIT = CRC32CHECK16BIT,
2701
        U_MULTI_MAC_PCS.CRC32S1L2_EXTERN = CRC32S1L2_EXTERN,
2702
        U_MULTI_MAC_PCS.ENABLE_SHIFT16 = ENABLE_SHIFT16,
2703
        U_MULTI_MAC_PCS.ENABLE_MAC_FLOW_CTRL = ENABLE_MAC_FLOW_CTRL,
2704
        U_MULTI_MAC_PCS.ENABLE_MAC_TXADDR_SET = ENABLE_MAC_TXADDR_SET,
2705
        U_MULTI_MAC_PCS.ENABLE_MAC_RX_VLAN = ENABLE_MAC_RX_VLAN,
2706
        U_MULTI_MAC_PCS.ENABLE_MAC_TX_VLAN = ENABLE_MAC_TX_VLAN,
2707
        U_MULTI_MAC_PCS.PHY_IDENTIFIER = PHY_IDENTIFIER,
2708
        U_MULTI_MAC_PCS.DEV_VERSION = DEV_VERSION,
2709
        U_MULTI_MAC_PCS.ENABLE_SGMII = ENABLE_SGMII,
2710
        U_MULTI_MAC_PCS.MAX_CHANNELS = MAX_CHANNELS,
2711
        U_MULTI_MAC_PCS.CHANNEL_WIDTH = CHANNEL_WIDTH,
2712
        U_MULTI_MAC_PCS.ENABLE_RX_FIFO_STATUS = ENABLE_RX_FIFO_STATUS,
2713
        U_MULTI_MAC_PCS.ENABLE_EXTENDED_STAT_REG = ENABLE_EXTENDED_STAT_REG,
2714
        U_MULTI_MAC_PCS.ENABLE_CLK_SHARING = ENABLE_CLK_SHARING,
2715
        U_MULTI_MAC_PCS.ENABLE_REG_SHARING = ENABLE_REG_SHARING;
2716
 
2717
 
2718
 
2719
// #######################################################################
2720
// ###############       CHANNEL 0 LOGIC/COMPONENTS       ###############
2721
// #######################################################################
2722
 
2723
// Export powerdown signal or wire it internally
2724
// ---------------------------------------------
2725
reg data_in_0,gxb_pwrdn_in_sig_clk_0;
2726
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 0)
2727
    begin
2728
        always @(posedge clk or posedge gxb_pwrdn_in_0)
2729
        begin
2730
          if (gxb_pwrdn_in_0 == 1) begin
2731
              data_in_0 <= 1;
2732
              gxb_pwrdn_in_sig_clk_0 <= 1;
2733
          end else begin
2734
            data_in_0 <= 1'b0;
2735
            gxb_pwrdn_in_sig_clk_0 <= data_in_0;
2736
          end
2737
        end
2738
        assign gxb_pwrdn_in_sig[0] = gxb_pwrdn_in_0;
2739
        assign pcs_pwrdn_out_0 = pcs_pwrdn_out_sig[0];
2740
    end
2741
else
2742
    begin
2743
        assign gxb_pwrdn_in_sig[0] = pcs_pwrdn_out_sig[0];
2744
        assign pcs_pwrdn_out_0 = 1'b0;
2745
        always@(*) begin
2746
         gxb_pwrdn_in_sig_clk_0 = gxb_pwrdn_in_sig[0];
2747
        end
2748
    end
2749
endgenerate
2750
 
2751
 
2752
generate if (MAX_CHANNELS > 0)
2753
    begin
2754
        wire    locked_signal_0;
2755
    //  ALTGX Reset Sequencer
2756
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_0(
2757
            // User inputs and outputs
2758
            .clock(clk),
2759
            .reset_all(reset | gxb_pwrdn_in_sig_clk_0),
2760
            //.reset_tx_digital(reset_ref_clk),
2761
            //.reset_rx_digital(reset_ref_clk),
2762
            .powerdown_all(reset_posedge),
2763
            .tx_ready(), // output
2764
            .rx_ready(), // output
2765
            // I/O transceiver and status
2766
            .pll_powerdown(pll_powerdown_sqcnr_0),// output
2767
            .tx_digitalreset(tx_digitalreset_sqcnr_0),// output
2768
            .rx_analogreset(rx_analogreset_sqcnr_0),// output
2769
            .rx_digitalreset(rx_digitalreset_sqcnr_0),// output
2770
            .gxb_powerdown(gxb_powerdown_sqcnr_0),// output
2771
            .pll_is_locked(locked_signal_0),
2772
            .rx_is_lockedtodata(rx_freqlocked_0),
2773
            .manual_mode(1'b0),
2774
            .rx_oc_busy(reconfig_busy_0)
2775
        );
2776
 
2777
        assign locked_signal_0 = (reset? 1'b0: pll_locked_0);
2778
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
2779
    // ----------------------------------------------------------------------------------- 
2780
 
2781
 
2782
        // Aligned Rx_sync from gxb
2783
        // -------------------------------
2784
        altera_tse_reset_synchronizer ch_0_reset_sync_0 (
2785
        .clk(rx_pcs_clk_c0),
2786
        .reset_in(rx_digitalreset_sqcnr_0),
2787
        .reset_out(reset_rx_pcs_clk_c0_int)
2788
        );
2789
 
2790
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_0
2791
          (
2792
            .clk(rx_pcs_clk_c0),
2793
            .reset(reset_rx_pcs_clk_c0_int),
2794
            //input (from alt2gxb)
2795
            .alt_dataout(rx_frame_0),
2796
            .alt_sync(rx_syncstatus[0]),
2797
            .alt_disperr(rx_disp_err[0]),
2798
            .alt_ctrldetect(rx_kchar_0),
2799
            .alt_errdetect(rx_char_err_gx[0]),
2800
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[0]),
2801
            .alt_rmfifodatainserted(rx_rmfifodatainserted[0]),
2802
            .alt_runlengthviolation(rx_runlengthviolation[0]),
2803
            .alt_patterndetect(rx_patterndetect[0]),
2804
            .alt_runningdisp(rx_runningdisp[0]),
2805
 
2806
            //output (to PCS)
2807
            .altpcs_dataout(pcs_rx_frame_0),
2808
            .altpcs_sync(link_status[0]),
2809
            .altpcs_disperr(led_disp_err_0),
2810
            .altpcs_ctrldetect(pcs_rx_kchar_0),
2811
            .altpcs_errdetect(led_char_err_gx[0]),
2812
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[0]),
2813
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[0]),
2814
            .altpcs_carrierdetect(pcs_rx_carrierdetected[0])
2815
           ) ;
2816
                defparam
2817
                the_altera_tse_gxb_aligned_rxsync_0.DEVICE_FAMILY = DEVICE_FAMILY;
2818
 
2819
        // Altgxb in GIGE mode
2820
        // --------------------
2821
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_0
2822
          (
2823
            .cal_blk_clk (gxb_cal_blk_clk),
2824
            .gxb_powerdown (gxb_pwrdn_in_sig[0]),
2825
            .pll_inclk (ref_clk),
2826
            .rx_recovclkout(rx_recovclkout_0),
2827
            .reconfig_clk(reconfig_clk_0),
2828
            .reconfig_togxb(reconfig_togxb_0),
2829
            .reconfig_fromgxb(reconfig_fromgxb_0),
2830
            .rx_analogreset (rx_analogreset_sqcnr_0),
2831
            .rx_cruclk (ref_clk),
2832
            .rx_ctrldetect (rx_kchar_0),
2833
            .rx_clkout (rx_pcs_clk_c0),
2834
            .rx_datain (rxp_0),
2835
            .rx_dataout (rx_frame_0),
2836
            .rx_digitalreset (rx_digitalreset_sqcnr_0),
2837
            .rx_disperr (rx_disp_err[0]),
2838
            .rx_errdetect (rx_char_err_gx[0]),
2839
            .rx_patterndetect (rx_patterndetect[0]),
2840
            .rx_rlv (rx_runlengthviolation[0]),
2841
            .rx_seriallpbken (sd_loopback_0),
2842
            .rx_syncstatus (rx_syncstatus[0]),
2843
            .tx_clkout (tx_pcs_clk_c0),
2844
            .tx_ctrlenable (tx_kchar_0),
2845
            .tx_datain (tx_frame_0),
2846
            .rx_freqlocked (rx_freqlocked_0),
2847
            .tx_dataout (txp_0),
2848
            .tx_digitalreset (tx_digitalreset_sqcnr_0),
2849
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[0]),
2850
            .rx_rmfifodatainserted(rx_rmfifodatainserted[0]),
2851
            .rx_runningdisp(rx_runningdisp[0]),
2852
            .pll_powerdown(gxb_pwrdn_in_sig[0]),
2853
            .pll_locked(pll_locked_0)
2854
          );
2855
   defparam
2856
        the_altera_tse_gxb_gige_inst_0.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
2857
        the_altera_tse_gxb_gige_inst_0.ENABLE_SGMII = ENABLE_SGMII,
2858
        the_altera_tse_gxb_gige_inst_0.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER,
2859
        the_altera_tse_gxb_gige_inst_0.DEVICE_FAMILY = DEVICE_FAMILY;
2860
    end
2861
else
2862
    begin
2863
    assign reconfig_fromgxb_0 = {17{1'b0}};
2864
    assign led_char_err_gx[0] = 1'b0;
2865
    assign link_status[0] = 1'b0;
2866
    assign led_disp_err_0 = 1'b0;
2867
    assign txp_0 = 1'b0;
2868
        assign pcs_clk_c0 = 1'b0;
2869
    end
2870
endgenerate
2871
 
2872
 
2873
 
2874
// #######################################################################
2875
// ###############       CHANNEL 1 LOGIC/COMPONENTS       ###############
2876
// #######################################################################
2877
 
2878
// Export powerdown signal or wire it internally
2879
// ---------------------------------------------
2880
reg data_in_1,gxb_pwrdn_in_sig_clk_1;
2881
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 1)
2882
    begin
2883
        always @(posedge clk or posedge gxb_pwrdn_in_1)
2884
        begin
2885
          if (gxb_pwrdn_in_1 == 1) begin
2886
              data_in_1 <= 1;
2887
              gxb_pwrdn_in_sig_clk_1 <= 1;
2888
          end else begin
2889
            data_in_1 <= 1'b0;
2890
            gxb_pwrdn_in_sig_clk_1 <= data_in_1;
2891
          end
2892
        end
2893
        assign gxb_pwrdn_in_sig[1] = gxb_pwrdn_in_1;
2894
        assign pcs_pwrdn_out_1 = pcs_pwrdn_out_sig[1];
2895
    end
2896
else
2897
    begin
2898
        assign gxb_pwrdn_in_sig[1] = pcs_pwrdn_out_sig[1];
2899
        assign pcs_pwrdn_out_1 = 1'b0;
2900
        always@(*) begin
2901
            gxb_pwrdn_in_sig_clk_1 = gxb_pwrdn_in_sig[1];
2902
        end
2903
    end
2904
endgenerate
2905
 
2906
 
2907
generate if (MAX_CHANNELS > 1)
2908
    begin
2909
        wire    locked_signal_1;
2910
    // Reset logic used to reset the PMA blocks
2911
    // ----------------------------------------  
2912
    //  ALTGX Reset Sequencer
2913
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_1(
2914
            // User inputs and outputs
2915
            .clock(clk),
2916
            .reset_all(reset | gxb_pwrdn_in_sig_clk_1),
2917
            //.reset_tx_digital(reset_ref_clk),
2918
            //.reset_rx_digital(reset_ref_clk),
2919
            .powerdown_all(reset_posedge),
2920
            .tx_ready(), // output
2921
            .rx_ready(), // output
2922
            // I/O transceiver and status
2923
            .pll_powerdown(pll_powerdown_sqcnr_1),// output
2924
            .tx_digitalreset(tx_digitalreset_sqcnr_1),// output
2925
            .rx_analogreset(rx_analogreset_sqcnr_1),// output
2926
            .rx_digitalreset(rx_digitalreset_sqcnr_1),// output
2927
            .gxb_powerdown(gxb_powerdown_sqcnr_1),// output
2928
            .pll_is_locked(locked_signal_1),
2929
            .rx_is_lockedtodata(rx_freqlocked_1),
2930
            .manual_mode(1'b0),
2931
            .rx_oc_busy(reconfig_busy_1)
2932
        );
2933
        assign locked_signal_1 = (reset? 1'b0: pll_locked_1);
2934
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
2935
    // ----------------------------------------------------------------------------------- 
2936
 
2937
 
2938
        // Aligned Rx_sync from gxb
2939
        // -------------------------------
2940
        altera_tse_reset_synchronizer ch_1_reset_sync_0 (
2941
        .clk(rx_pcs_clk_c1),
2942
        .reset_in(rx_digitalreset_sqcnr_1),
2943
        .reset_out(reset_rx_pcs_clk_c1_int)
2944
        );
2945
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_1
2946
          (
2947
            .clk(rx_pcs_clk_c1),
2948
            .reset(reset_rx_pcs_clk_c1_int),
2949
            //input (from alt2gxb)
2950
            .alt_dataout(rx_frame_1),
2951
            .alt_sync(rx_syncstatus[1]),
2952
            .alt_disperr(rx_disp_err[1]),
2953
            .alt_ctrldetect(rx_kchar_1),
2954
            .alt_errdetect(rx_char_err_gx[1]),
2955
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[1]),
2956
            .alt_rmfifodatainserted(rx_rmfifodatainserted[1]),
2957
            .alt_runlengthviolation(rx_runlengthviolation[1]),
2958
            .alt_patterndetect(rx_patterndetect[1]),
2959
            .alt_runningdisp(rx_runningdisp[1]),
2960
 
2961
            //output (to PCS)
2962
            .altpcs_dataout(pcs_rx_frame_1),
2963
            .altpcs_sync(link_status[1]),
2964
            .altpcs_disperr(led_disp_err_1),
2965
            .altpcs_ctrldetect(pcs_rx_kchar_1),
2966
            .altpcs_errdetect(led_char_err_gx[1]),
2967
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[1]),
2968
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[1]),
2969
            .altpcs_carrierdetect(pcs_rx_carrierdetected[1])
2970
           ) ;
2971
                defparam
2972
                the_altera_tse_gxb_aligned_rxsync_1.DEVICE_FAMILY = DEVICE_FAMILY;
2973
 
2974
        // Altgxb in GIGE mode
2975
        // --------------------
2976
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_1
2977
          (
2978
            .cal_blk_clk (gxb_cal_blk_clk),
2979
            .gxb_powerdown (gxb_pwrdn_in_sig[1]),
2980
            .pll_inclk (ref_clk),
2981
            .rx_recovclkout(rx_recovclkout_1),
2982
            .reconfig_clk(reconfig_clk_1),
2983
            .reconfig_togxb(reconfig_togxb_1),
2984
            .reconfig_fromgxb(reconfig_fromgxb_1),
2985
            .rx_analogreset (rx_analogreset_sqcnr_1),
2986
            .rx_cruclk (ref_clk),
2987
            .rx_ctrldetect (rx_kchar_1),
2988
            .rx_clkout (rx_pcs_clk_c1),
2989
            .rx_datain (rxp_1),
2990
            .rx_dataout (rx_frame_1),
2991
            .rx_digitalreset (rx_digitalreset_sqcnr_1),
2992
            .rx_disperr (rx_disp_err[1]),
2993
            .rx_errdetect (rx_char_err_gx[1]),
2994
            .rx_patterndetect (rx_patterndetect[1]),
2995
            .rx_rlv (rx_runlengthviolation[1]),
2996
            .rx_seriallpbken (sd_loopback_1),
2997
            .rx_syncstatus (rx_syncstatus[1]),
2998
            .tx_clkout (tx_pcs_clk_c1),
2999
            .tx_ctrlenable (tx_kchar_1),
3000
            .tx_datain (tx_frame_1),
3001
            .rx_freqlocked (rx_freqlocked_1),
3002
            .tx_dataout (txp_1),
3003
            .tx_digitalreset (tx_digitalreset_sqcnr_1),
3004
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[1]),
3005
            .rx_rmfifodatainserted(rx_rmfifodatainserted[1]),
3006
            .rx_runningdisp(rx_runningdisp[1]),
3007
            .pll_powerdown(gxb_pwrdn_in_sig[1]),
3008
            .pll_locked(pll_locked_1)
3009
          );
3010
   defparam
3011
        the_altera_tse_gxb_gige_inst_1.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
3012
        the_altera_tse_gxb_gige_inst_1.ENABLE_SGMII = ENABLE_SGMII,
3013
        the_altera_tse_gxb_gige_inst_1.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 4,
3014
        the_altera_tse_gxb_gige_inst_1.DEVICE_FAMILY = DEVICE_FAMILY;
3015
    end
3016
else
3017
    begin
3018
    assign reconfig_fromgxb_1 = {17{1'b0}};
3019
    assign led_char_err_gx[1] = 1'b0;
3020
    assign link_status[1] = 1'b0;
3021
    assign led_disp_err_1 = 1'b0;
3022
    assign txp_1 = 1'b0;
3023
        assign pcs_clk_c1 = 1'b0;
3024
    end
3025
endgenerate
3026
 
3027
 
3028
 
3029
// #######################################################################
3030
// ###############       CHANNEL 2 LOGIC/COMPONENTS       ###############
3031
// #######################################################################
3032
 
3033
// Export powerdown signal or wire it internally
3034
// ---------------------------------------------
3035
reg data_in_2,gxb_pwrdn_in_sig_clk_2;
3036
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 2)
3037
    begin
3038
 
3039
        always @(posedge clk or posedge gxb_pwrdn_in_2)
3040
        begin
3041
          if (gxb_pwrdn_in_2 == 1) begin
3042
              data_in_2 <= 1;
3043
              gxb_pwrdn_in_sig_clk_2 <= 1;
3044
          end else begin
3045
            data_in_2 <= 1'b0;
3046
            gxb_pwrdn_in_sig_clk_2 <= data_in_2;
3047
          end
3048
        end
3049
        assign gxb_pwrdn_in_sig[2] = gxb_pwrdn_in_2;
3050
        assign pcs_pwrdn_out_2 = pcs_pwrdn_out_sig[2];
3051
    end
3052
else
3053
    begin
3054
        assign gxb_pwrdn_in_sig[2] = pcs_pwrdn_out_sig[2];
3055
        assign pcs_pwrdn_out_2 = 1'b0;
3056
        always@(*) begin
3057
            gxb_pwrdn_in_sig_clk_2 = gxb_pwrdn_in_sig[2];
3058
        end
3059
    end
3060
endgenerate
3061
 
3062
 
3063
generate if (MAX_CHANNELS > 2)
3064
    begin
3065
        wire    locked_signal_2;
3066
    // Reset logic used to reset the PMA blocks
3067
    // ----------------------------------------  
3068
    //  ALTGX Reset Sequencer
3069
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_2(
3070
            // User inputs and outputs
3071
            .clock(clk),
3072
            .reset_all(reset | gxb_pwrdn_in_sig_clk_2),
3073
            //.reset_tx_digital(reset_ref_clk),
3074
            //.reset_rx_digital(reset_ref_clk),
3075
            .powerdown_all(reset_posedge),
3076
            .tx_ready(), // output
3077
            .rx_ready(), // output
3078
            // I/O transceiver and status
3079
            .pll_powerdown(pll_powerdown_sqcnr_2),// output
3080
            .tx_digitalreset(tx_digitalreset_sqcnr_2),// output
3081
            .rx_analogreset(rx_analogreset_sqcnr_2),// output
3082
            .rx_digitalreset(rx_digitalreset_sqcnr_2),// output
3083
            .gxb_powerdown(gxb_powerdown_sqcnr_2),// output
3084
            .pll_is_locked(locked_signal_2),
3085
            .rx_is_lockedtodata(rx_freqlocked_2),
3086
            .manual_mode(1'b0),
3087
            .rx_oc_busy(reconfig_busy_2)
3088
        );
3089
        assign locked_signal_2 = (reset? 1'b0: pll_locked_2);
3090
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
3091
    // ----------------------------------------------------------------------------------- 
3092
 
3093
 
3094
        // Aligned Rx_sync from gxb
3095
        // -------------------------------
3096
        altera_tse_reset_synchronizer ch_2_reset_sync_0 (
3097
        .clk(rx_pcs_clk_c2),
3098
        .reset_in(rx_digitalreset_sqcnr_2),
3099
        .reset_out(reset_rx_pcs_clk_c2_int)
3100
        );
3101
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_2
3102
          (
3103
            .clk(rx_pcs_clk_c2),
3104
            .reset(reset_rx_pcs_clk_c2_int),
3105
            //input (from alt2gxb)
3106
            .alt_dataout(rx_frame_2),
3107
            .alt_sync(rx_syncstatus[2]),
3108
            .alt_disperr(rx_disp_err[2]),
3109
            .alt_ctrldetect(rx_kchar_2),
3110
            .alt_errdetect(rx_char_err_gx[2]),
3111
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[2]),
3112
            .alt_rmfifodatainserted(rx_rmfifodatainserted[2]),
3113
            .alt_runlengthviolation(rx_runlengthviolation[2]),
3114
            .alt_patterndetect(rx_patterndetect[2]),
3115
            .alt_runningdisp(rx_runningdisp[2]),
3116
 
3117
            //output (to PCS)
3118
            .altpcs_dataout(pcs_rx_frame_2),
3119
            .altpcs_sync(link_status[2]),
3120
            .altpcs_disperr(led_disp_err_2),
3121
            .altpcs_ctrldetect(pcs_rx_kchar_2),
3122
            .altpcs_errdetect(led_char_err_gx[2]),
3123
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[2]),
3124
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[2]),
3125
            .altpcs_carrierdetect(pcs_rx_carrierdetected[2])
3126
           ) ;
3127
                defparam
3128
                the_altera_tse_gxb_aligned_rxsync_2.DEVICE_FAMILY = DEVICE_FAMILY;
3129
 
3130
        // Altgxb in GIGE mode
3131
        // --------------------
3132
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_2
3133
          (
3134
            .cal_blk_clk (gxb_cal_blk_clk),
3135
            .gxb_powerdown (gxb_pwrdn_in_sig[2]),
3136
            .pll_inclk (ref_clk),
3137
            .rx_recovclkout(rx_recovclkout_2),
3138
            .reconfig_clk(reconfig_clk_2),
3139
            .reconfig_togxb(reconfig_togxb_2),
3140
            .reconfig_fromgxb(reconfig_fromgxb_2),
3141
            .rx_analogreset (rx_analogreset_sqcnr_2),
3142
            .rx_cruclk (ref_clk),
3143
            .rx_ctrldetect (rx_kchar_2),
3144
            .rx_clkout (rx_pcs_clk_c2),
3145
            .rx_datain (rxp_2),
3146
            .rx_dataout (rx_frame_2),
3147
            .rx_digitalreset (rx_digitalreset_sqcnr_2),
3148
            .rx_disperr (rx_disp_err[2]),
3149
            .rx_errdetect (rx_char_err_gx[2]),
3150
            .rx_patterndetect (rx_patterndetect[2]),
3151
            .rx_rlv (rx_runlengthviolation[2]),
3152
            .rx_seriallpbken (sd_loopback_2),
3153
            .rx_syncstatus (rx_syncstatus[2]),
3154
            .tx_clkout (tx_pcs_clk_c2),
3155
            .tx_ctrlenable (tx_kchar_2),
3156
            .tx_datain (tx_frame_2),
3157
            .rx_freqlocked (rx_freqlocked_2),
3158
            .tx_dataout (txp_2),
3159
            .tx_digitalreset (tx_digitalreset_sqcnr_2),
3160
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[2]),
3161
            .rx_rmfifodatainserted(rx_rmfifodatainserted[2]),
3162
            .rx_runningdisp(rx_runningdisp[2]),
3163
            .pll_powerdown(gxb_pwrdn_in_sig[2]),
3164
            .pll_locked(pll_locked_2)
3165
          );
3166
   defparam
3167
        the_altera_tse_gxb_gige_inst_2.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
3168
        the_altera_tse_gxb_gige_inst_2.ENABLE_SGMII = ENABLE_SGMII,
3169
        the_altera_tse_gxb_gige_inst_2.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 8,
3170
        the_altera_tse_gxb_gige_inst_2.DEVICE_FAMILY = DEVICE_FAMILY;
3171
    end
3172
else
3173
    begin
3174
    assign reconfig_fromgxb_2 = {17{1'b0}};
3175
    assign led_char_err_gx[2] = 1'b0;
3176
    assign link_status[2] = 1'b0;
3177
    assign led_disp_err_2 = 1'b0;
3178
    assign txp_2 = 1'b0;
3179
        assign pcs_clk_c2 = 1'b0;
3180
    end
3181
endgenerate
3182
 
3183
 
3184
 
3185
// #######################################################################
3186
// ###############       CHANNEL 3 LOGIC/COMPONENTS       ###############
3187
// #######################################################################
3188
 
3189
// Export powerdown signal or wire it internally
3190
// ---------------------------------------------
3191
reg data_in_3,gxb_pwrdn_in_sig_clk_3;
3192
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 3)
3193
    begin
3194
        always @(posedge clk or posedge gxb_pwrdn_in_3)
3195
        begin
3196
          if (gxb_pwrdn_in_3 == 1) begin
3197
              data_in_3 <= 1;
3198
              gxb_pwrdn_in_sig_clk_3 <= 1;
3199
          end else begin
3200
            data_in_3 <= 1'b0;
3201
            gxb_pwrdn_in_sig_clk_3 <= data_in_3;
3202
          end
3203
        end
3204
        assign gxb_pwrdn_in_sig[3] = gxb_pwrdn_in_3;
3205
        assign pcs_pwrdn_out_3 = pcs_pwrdn_out_sig[3];
3206
    end
3207
else
3208
    begin
3209
        assign gxb_pwrdn_in_sig[3] = pcs_pwrdn_out_sig[3];
3210
        assign pcs_pwrdn_out_3 = 1'b0;
3211
        always@(*) begin
3212
            gxb_pwrdn_in_sig_clk_3 = gxb_pwrdn_in_sig[3];
3213
        end
3214
    end
3215
endgenerate
3216
 
3217
generate if (MAX_CHANNELS > 3)
3218
    begin
3219
        wire    locked_signal_3;
3220
    // Reset logic used to reset the PMA blocks
3221
    // ----------------------------------------  
3222
    //  ALTGX Reset Sequencer
3223
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_3(
3224
            // User inputs and outputs
3225
            .clock(clk),
3226
            .reset_all(reset|gxb_pwrdn_in_sig_clk_3),
3227
            //.reset_tx_digital(reset_ref_clk),
3228
            //.reset_rx_digital(reset_ref_clk),
3229
            .powerdown_all(reset_posedge),
3230
            .tx_ready(), // output
3231
            .rx_ready(), // output
3232
            // I/O transceiver and status
3233
            .pll_powerdown(pll_powerdown_sqcnr_3),// output
3234
            .tx_digitalreset(tx_digitalreset_sqcnr_3),// output
3235
            .rx_analogreset(rx_analogreset_sqcnr_3),// output
3236
            .rx_digitalreset(rx_digitalreset_sqcnr_3),// output
3237
            .gxb_powerdown(gxb_powerdown_sqcnr_3),// output
3238
            .pll_is_locked(locked_signal_3),
3239
            .rx_is_lockedtodata(rx_freqlocked_3),
3240
            .manual_mode(1'b0),
3241
            .rx_oc_busy(reconfig_busy_3)
3242
        );
3243
        assign locked_signal_3 = (reset? 1'b0: pll_locked_3);
3244
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
3245
    // ----------------------------------------------------------------------------------- 
3246
 
3247
 
3248
        // Aligned Rx_sync from gxb
3249
        // -------------------------------
3250
        altera_tse_reset_synchronizer ch_3_reset_sync_0 (
3251
        .clk(rx_pcs_clk_c3),
3252
        .reset_in(rx_digitalreset_sqcnr_3),
3253
        .reset_out(reset_rx_pcs_clk_c3_int)
3254
        );
3255
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_3
3256
          (
3257
            .clk(rx_pcs_clk_c3),
3258
            .reset(reset_rx_pcs_clk_c3_int),
3259
            //input (from alt2gxb)
3260
            .alt_dataout(rx_frame_3),
3261
            .alt_sync(rx_syncstatus[3]),
3262
            .alt_disperr(rx_disp_err[3]),
3263
            .alt_ctrldetect(rx_kchar_3),
3264
            .alt_errdetect(rx_char_err_gx[3]),
3265
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[3]),
3266
            .alt_rmfifodatainserted(rx_rmfifodatainserted[3]),
3267
            .alt_runlengthviolation(rx_runlengthviolation[3]),
3268
            .alt_patterndetect(rx_patterndetect[3]),
3269
            .alt_runningdisp(rx_runningdisp[3]),
3270
 
3271
            //output (to PCS)
3272
            .altpcs_dataout(pcs_rx_frame_3),
3273
            .altpcs_sync(link_status[3]),
3274
            .altpcs_disperr(led_disp_err_3),
3275
            .altpcs_ctrldetect(pcs_rx_kchar_3),
3276
            .altpcs_errdetect(led_char_err_gx[3]),
3277
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[3]),
3278
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[3]),
3279
            .altpcs_carrierdetect(pcs_rx_carrierdetected[3])
3280
           ) ;
3281
                defparam
3282
                the_altera_tse_gxb_aligned_rxsync_3.DEVICE_FAMILY = DEVICE_FAMILY;
3283
 
3284
        // Altgxb in GIGE mode
3285
        // --------------------
3286
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_3
3287
          (
3288
            .cal_blk_clk (gxb_cal_blk_clk),
3289
            .gxb_powerdown (gxb_pwrdn_in_sig[3]),
3290
            .pll_inclk (ref_clk),
3291
            .rx_recovclkout(rx_recovclkout_3),
3292
            .reconfig_clk(reconfig_clk_3),
3293
            .reconfig_togxb(reconfig_togxb_3),
3294
            .reconfig_fromgxb(reconfig_fromgxb_3),
3295
            .rx_analogreset (rx_analogreset_sqcnr_3),
3296
            .rx_cruclk (ref_clk),
3297
            .rx_ctrldetect (rx_kchar_3),
3298
            .rx_clkout (rx_pcs_clk_c3),
3299
            .rx_datain (rxp_3),
3300
            .rx_dataout (rx_frame_3),
3301
            .rx_digitalreset (rx_digitalreset_sqcnr_3),
3302
            .rx_disperr (rx_disp_err[3]),
3303
            .rx_errdetect (rx_char_err_gx[3]),
3304
            .rx_patterndetect (rx_patterndetect[3]),
3305
            .rx_rlv (rx_runlengthviolation[3]),
3306
            .rx_seriallpbken (sd_loopback_3),
3307
            .rx_syncstatus (rx_syncstatus[3]),
3308
            .tx_clkout (tx_pcs_clk_c3),
3309
            .tx_ctrlenable (tx_kchar_3),
3310
            .tx_datain (tx_frame_3),
3311
            .rx_freqlocked (rx_freqlocked_3),
3312
            .tx_dataout (txp_3),
3313
            .tx_digitalreset (tx_digitalreset_sqcnr_3),
3314
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[3]),
3315
            .rx_rmfifodatainserted(rx_rmfifodatainserted[3]),
3316
            .rx_runningdisp(rx_runningdisp[3]),
3317
            .pll_powerdown(gxb_pwrdn_in_sig[3]),
3318
            .pll_locked(pll_locked_3)
3319
          );
3320
   defparam
3321
        the_altera_tse_gxb_gige_inst_3.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
3322
        the_altera_tse_gxb_gige_inst_3.ENABLE_SGMII = ENABLE_SGMII,
3323
        the_altera_tse_gxb_gige_inst_3.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 12,
3324
        the_altera_tse_gxb_gige_inst_3.DEVICE_FAMILY = DEVICE_FAMILY;
3325
    end
3326
else
3327
    begin
3328
    assign reconfig_fromgxb_3 = {17{1'b0}};
3329
    assign led_char_err_gx[3] = 1'b0;
3330
    assign link_status[3] = 1'b0;
3331
    assign led_disp_err_3 = 1'b0;
3332
    assign txp_3 = 1'b0;
3333
        assign pcs_clk_c3 = 1'b0;
3334
    end
3335
endgenerate
3336
 
3337
 
3338
 
3339
// #######################################################################
3340
// ###############       CHANNEL 4 LOGIC/COMPONENTS       ###############
3341
// #######################################################################
3342
 
3343
// Export powerdown signal or wire it internally
3344
// ---------------------------------------------
3345
reg data_in_4,gxb_pwrdn_in_sig_clk_4;
3346
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 4)
3347
    begin
3348
        always @(posedge clk or posedge gxb_pwrdn_in_4)
3349
        begin
3350
          if (gxb_pwrdn_in_4 == 1) begin
3351
              data_in_4 <= 1;
3352
              gxb_pwrdn_in_sig_clk_4 <= 1;
3353
          end else begin
3354
            data_in_4 <= 1'b0;
3355
            gxb_pwrdn_in_sig_clk_4 <= data_in_4;
3356
          end
3357
        end
3358
        assign gxb_pwrdn_in_sig[4] = gxb_pwrdn_in_4;
3359
        assign pcs_pwrdn_out_4 = pcs_pwrdn_out_sig[4];
3360
    end
3361
else
3362
    begin
3363
        assign gxb_pwrdn_in_sig[4] = pcs_pwrdn_out_sig[4];
3364
        assign pcs_pwrdn_out_4 = 1'b0;
3365
        always@(*) begin
3366
            gxb_pwrdn_in_sig_clk_4 = gxb_pwrdn_in_sig[4];
3367
        end
3368
    end
3369
endgenerate
3370
 
3371
generate if (MAX_CHANNELS > 4)
3372
    begin
3373
        wire    locked_signal_4;
3374
    // Reset logic used to reset the PMA blocks
3375
    // ----------------------------------------  
3376
    //  ALTGX Reset Sequencer
3377
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_4(
3378
            // User inputs and outputs
3379
            .clock(clk),
3380
            .reset_all(reset|gxb_pwrdn_in_sig_clk_4),
3381
            //.reset_tx_digital(reset_ref_clk),
3382
            //.reset_rx_digital(reset_ref_clk),
3383
            .powerdown_all(reset_posedge),
3384
            .tx_ready(), // output
3385
            .rx_ready(), // output
3386
            // I/O transceiver and status
3387
            .pll_powerdown(pll_powerdown_sqcnr_4),// output
3388
            .tx_digitalreset(tx_digitalreset_sqcnr_4),// output
3389
            .rx_analogreset(rx_analogreset_sqcnr_4),// output
3390
            .rx_digitalreset(rx_digitalreset_sqcnr_4),// output
3391
            .gxb_powerdown(gxb_powerdown_sqcnr_4),// output
3392
            .pll_is_locked(locked_signal_4),
3393
            .rx_is_lockedtodata(rx_freqlocked_4),
3394
            .manual_mode(1'b0),
3395
            .rx_oc_busy(reconfig_busy_4)
3396
        );
3397
        assign locked_signal_4 = (reset? 1'b0: pll_locked_4);
3398
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
3399
    // ----------------------------------------------------------------------------------- 
3400
 
3401
 
3402
        // Aligned Rx_sync from gxb
3403
        // -------------------------------
3404
        altera_tse_reset_synchronizer ch_4_reset_sync_0 (
3405
        .clk(rx_pcs_clk_c4),
3406
        .reset_in(rx_digitalreset_sqcnr_4),
3407
        .reset_out(reset_rx_pcs_clk_c4_int)
3408
        );
3409
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_4
3410
          (
3411
            .clk(rx_pcs_clk_c4),
3412
            .reset(reset_rx_pcs_clk_c4_int),
3413
            //input (from alt2gxb)
3414
            .alt_dataout(rx_frame_4),
3415
            .alt_sync(rx_syncstatus[4]),
3416
            .alt_disperr(rx_disp_err[4]),
3417
            .alt_ctrldetect(rx_kchar_4),
3418
            .alt_errdetect(rx_char_err_gx[4]),
3419
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[4]),
3420
            .alt_rmfifodatainserted(rx_rmfifodatainserted[4]),
3421
            .alt_runlengthviolation(rx_runlengthviolation[4]),
3422
            .alt_patterndetect(rx_patterndetect[4]),
3423
            .alt_runningdisp(rx_runningdisp[4]),
3424
 
3425
            //output (to PCS)
3426
            .altpcs_dataout(pcs_rx_frame_4),
3427
            .altpcs_sync(link_status[4]),
3428
            .altpcs_disperr(led_disp_err_4),
3429
            .altpcs_ctrldetect(pcs_rx_kchar_4),
3430
            .altpcs_errdetect(led_char_err_gx[4]),
3431
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[4]),
3432
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[4]),
3433
            .altpcs_carrierdetect(pcs_rx_carrierdetected[4])
3434
           ) ;
3435
                defparam
3436
                the_altera_tse_gxb_aligned_rxsync_4.DEVICE_FAMILY = DEVICE_FAMILY;
3437
 
3438
        // Altgxb in GIGE mode
3439
        // --------------------
3440
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_4
3441
          (
3442
            .cal_blk_clk (gxb_cal_blk_clk),
3443
            .gxb_powerdown (gxb_pwrdn_in_sig[4]),
3444
            .pll_inclk (ref_clk),
3445
            .rx_recovclkout(rx_recovclkout_4),
3446
            .reconfig_clk(reconfig_clk_4),
3447
            .reconfig_togxb(reconfig_togxb_4),
3448
            .reconfig_fromgxb(reconfig_fromgxb_4),
3449
            .rx_analogreset (rx_analogreset_sqcnr_4),
3450
            .rx_cruclk (ref_clk),
3451
            .rx_ctrldetect (rx_kchar_4),
3452
            .rx_clkout (rx_pcs_clk_c4),
3453
            .rx_datain (rxp_4),
3454
            .rx_dataout (rx_frame_4),
3455
            .rx_digitalreset (rx_digitalreset_sqcnr_4),
3456
            .rx_disperr (rx_disp_err[4]),
3457
            .rx_errdetect (rx_char_err_gx[4]),
3458
            .rx_patterndetect (rx_patterndetect[4]),
3459
            .rx_rlv (rx_runlengthviolation[4]),
3460
            .rx_seriallpbken (sd_loopback_4),
3461
            .rx_syncstatus (rx_syncstatus[4]),
3462
            .tx_clkout (tx_pcs_clk_c4),
3463
            .tx_ctrlenable (tx_kchar_4),
3464
            .tx_datain (tx_frame_4),
3465
            .rx_freqlocked (rx_freqlocked_4),
3466
            .tx_dataout (txp_4),
3467
            .tx_digitalreset (tx_digitalreset_sqcnr_4),
3468
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[4]),
3469
            .rx_rmfifodatainserted(rx_rmfifodatainserted[4]),
3470
            .rx_runningdisp(rx_runningdisp[4]),
3471
            .pll_powerdown(gxb_pwrdn_in_sig[4]),
3472
            .pll_locked(pll_locked_4)
3473
          );
3474
   defparam
3475
        the_altera_tse_gxb_gige_inst_4.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
3476
        the_altera_tse_gxb_gige_inst_4.ENABLE_SGMII = ENABLE_SGMII,
3477
        the_altera_tse_gxb_gige_inst_4.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 16,
3478
        the_altera_tse_gxb_gige_inst_4.DEVICE_FAMILY = DEVICE_FAMILY;
3479
    end
3480
else
3481
    begin
3482
    assign reconfig_fromgxb_4 = {17{1'b0}};
3483
    assign led_char_err_gx[4] = 1'b0;
3484
    assign link_status[4] = 1'b0;
3485
    assign led_disp_err_4 = 1'b0;
3486
    assign txp_4 = 1'b0;
3487
        assign pcs_clk_c4 = 1'b0;
3488
    end
3489
endgenerate
3490
 
3491
 
3492
 
3493
// #######################################################################
3494
// ###############       CHANNEL 5 LOGIC/COMPONENTS       ###############
3495
// #######################################################################
3496
 
3497
// Export powerdown signal or wire it internally
3498
// ---------------------------------------------
3499
reg data_in_5,gxb_pwrdn_in_sig_clk_5;
3500
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 5)
3501
    begin
3502
        always @(posedge clk or posedge gxb_pwrdn_in_5)
3503
        begin
3504
          if (gxb_pwrdn_in_5 == 1) begin
3505
              data_in_5 <= 1;
3506
              gxb_pwrdn_in_sig_clk_5 <= 1;
3507
          end else begin
3508
            data_in_5 <= 1'b0;
3509
            gxb_pwrdn_in_sig_clk_5 <= data_in_5;
3510
          end
3511
        end
3512
        assign gxb_pwrdn_in_sig[5] = gxb_pwrdn_in_5;
3513
        assign pcs_pwrdn_out_5 = pcs_pwrdn_out_sig[5];
3514
    end
3515
else
3516
    begin
3517
        assign gxb_pwrdn_in_sig[5] = pcs_pwrdn_out_sig[5];
3518
                assign pcs_pwrdn_out_5 = 1'b0;
3519
        always@(*) begin
3520
            gxb_pwrdn_in_sig_clk_5 = gxb_pwrdn_in_sig[5];
3521
        end
3522
    end
3523
endgenerate
3524
 
3525
 
3526
generate if (MAX_CHANNELS > 5)
3527
    begin
3528
        wire    locked_signal_5;
3529
    // Reset logic used to reset the PMA blocks
3530
    // ----------------------------------------  
3531
    //  ALTGX Reset Sequencer
3532
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_5(
3533
            // User inputs and outputs
3534
            .clock(clk),
3535
            .reset_all(reset|gxb_pwrdn_in_sig_clk_5),
3536
            //.reset_tx_digital(reset_ref_clk),
3537
            //.reset_rx_digital(reset_ref_clk),
3538
            .powerdown_all(reset_posedge),
3539
            .tx_ready(), // output
3540
            .rx_ready(), // output
3541
            // I/O transceiver and status
3542
            .pll_powerdown(pll_powerdown_sqcnr_5),// output
3543
            .tx_digitalreset(tx_digitalreset_sqcnr_5),// output
3544
            .rx_analogreset(rx_analogreset_sqcnr_5),// output
3545
            .rx_digitalreset(rx_digitalreset_sqcnr_5),// output
3546
            .gxb_powerdown(gxb_powerdown_sqcnr_5),// output
3547
            .pll_is_locked(locked_signal_5),
3548
            .rx_is_lockedtodata(rx_freqlocked_5),
3549
            .manual_mode(1'b0),
3550
            .rx_oc_busy(reconfig_busy_5)
3551
        );
3552
        assign locked_signal_5 = (reset? 1'b0: pll_locked_5);
3553
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
3554
    // ----------------------------------------------------------------------------------- 
3555
 
3556
 
3557
        // Aligned Rx_sync from gxb
3558
        // -------------------------------
3559
        altera_tse_reset_synchronizer ch_5_reset_sync_0 (
3560
        .clk(rx_pcs_clk_c5),
3561
        .reset_in(rx_digitalreset_sqcnr_5),
3562
        .reset_out(reset_rx_pcs_clk_c5_int)
3563
        );
3564
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_5
3565
          (
3566
            .clk(rx_pcs_clk_c5),
3567
            .reset(reset_rx_pcs_clk_c5_int),
3568
            //input (from alt2gxb)
3569
            .alt_dataout(rx_frame_5),
3570
            .alt_sync(rx_syncstatus[5]),
3571
            .alt_disperr(rx_disp_err[5]),
3572
            .alt_ctrldetect(rx_kchar_5),
3573
            .alt_errdetect(rx_char_err_gx[5]),
3574
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[5]),
3575
            .alt_rmfifodatainserted(rx_rmfifodatainserted[5]),
3576
            .alt_runlengthviolation(rx_runlengthviolation[5]),
3577
            .alt_patterndetect(rx_patterndetect[5]),
3578
            .alt_runningdisp(rx_runningdisp[5]),
3579
 
3580
            //output (to PCS)
3581
            .altpcs_dataout(pcs_rx_frame_5),
3582
            .altpcs_sync(link_status[5]),
3583
            .altpcs_disperr(led_disp_err_5),
3584
            .altpcs_ctrldetect(pcs_rx_kchar_5),
3585
            .altpcs_errdetect(led_char_err_gx[5]),
3586
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[5]),
3587
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[5]),
3588
            .altpcs_carrierdetect(pcs_rx_carrierdetected[5])
3589
           ) ;
3590
                defparam
3591
                the_altera_tse_gxb_aligned_rxsync_5.DEVICE_FAMILY = DEVICE_FAMILY;
3592
 
3593
        // Altgxb in GIGE mode
3594
        // --------------------
3595
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_5
3596
          (
3597
            .cal_blk_clk (gxb_cal_blk_clk),
3598
            .gxb_powerdown (gxb_pwrdn_in_sig[5]),
3599
            .pll_inclk (ref_clk),
3600
            .rx_recovclkout(rx_recovclkout_5),
3601
            .reconfig_clk(reconfig_clk_5),
3602
            .reconfig_togxb(reconfig_togxb_5),
3603
            .reconfig_fromgxb(reconfig_fromgxb_5),
3604
            .rx_analogreset (rx_analogreset_sqcnr_5),
3605
            .rx_cruclk (ref_clk),
3606
            .rx_ctrldetect (rx_kchar_5),
3607
            .rx_clkout (rx_pcs_clk_c5),
3608
            .rx_datain (rxp_5),
3609
            .rx_dataout (rx_frame_5),
3610
            .rx_digitalreset (rx_digitalreset_sqcnr_4),
3611
            .rx_disperr (rx_disp_err[5]),
3612
            .rx_errdetect (rx_char_err_gx[5]),
3613
            .rx_patterndetect (rx_patterndetect[5]),
3614
            .rx_rlv (rx_runlengthviolation[5]),
3615
            .rx_seriallpbken (sd_loopback_5),
3616
            .rx_syncstatus (rx_syncstatus[5]),
3617
            .tx_clkout (tx_pcs_clk_c5),
3618
            .tx_ctrlenable (tx_kchar_5),
3619
            .tx_datain (tx_frame_5),
3620
            .rx_freqlocked (rx_freqlocked_5),
3621
            .tx_dataout (txp_5),
3622
            .tx_digitalreset (tx_digitalreset_sqcnr_5),
3623
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[5]),
3624
            .rx_rmfifodatainserted(rx_rmfifodatainserted[5]),
3625
            .rx_runningdisp(rx_runningdisp[5]),
3626
            .pll_powerdown(gxb_pwrdn_in_sig[5]),
3627
            .pll_locked(pll_locked_5)
3628
          );
3629
   defparam
3630
        the_altera_tse_gxb_gige_inst_5.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
3631
        the_altera_tse_gxb_gige_inst_5.ENABLE_SGMII = ENABLE_SGMII,
3632
        the_altera_tse_gxb_gige_inst_5.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 20,
3633
        the_altera_tse_gxb_gige_inst_5.DEVICE_FAMILY = DEVICE_FAMILY;
3634
    end
3635
else
3636
    begin
3637
    assign reconfig_fromgxb_5 = {17{1'b0}};
3638
    assign led_char_err_gx[5] = 1'b0;
3639
    assign link_status[5] = 1'b0;
3640
    assign led_disp_err_5 = 1'b0;
3641
    assign txp_5 = 1'b0;
3642
        assign pcs_clk_c5 = 1'b0;
3643
    end
3644
endgenerate
3645
 
3646
 
3647
 
3648
// #######################################################################
3649
// ###############       CHANNEL 6 LOGIC/COMPONENTS       ###############
3650
// #######################################################################
3651
 
3652
// Export powerdown signal or wire it internally
3653
// ---------------------------------------------
3654
reg data_in_6,gxb_pwrdn_in_sig_clk_6;
3655
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 6)
3656
    begin
3657
        always @(posedge clk or posedge gxb_pwrdn_in_6)
3658
        begin
3659
          if (gxb_pwrdn_in_6 == 1) begin
3660
              data_in_6 <= 1;
3661
              gxb_pwrdn_in_sig_clk_6 <= 1;
3662
          end else begin
3663
            data_in_6 <= 1'b0;
3664
            gxb_pwrdn_in_sig_clk_6 <= data_in_6;
3665
          end
3666
        end
3667
        assign gxb_pwrdn_in_sig[6] = gxb_pwrdn_in_6;
3668
        assign pcs_pwrdn_out_6 = pcs_pwrdn_out_sig[6];
3669
    end
3670
else
3671
    begin
3672
        assign gxb_pwrdn_in_sig[6] = pcs_pwrdn_out_sig[6];
3673
                assign pcs_pwrdn_out_6 = 1'b0;
3674
        always@(*) begin
3675
            gxb_pwrdn_in_sig_clk_6 = gxb_pwrdn_in_sig[6];
3676
        end
3677
    end
3678
endgenerate
3679
 
3680
generate if (MAX_CHANNELS > 6)
3681
    begin
3682
        wire    locked_signal_6;
3683
    // Reset logic used to reset the PMA blocks
3684
    // ----------------------------------------  
3685
    //  ALTGX Reset Sequencer
3686
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_6(
3687
            // User inputs and outputs
3688
            .clock(clk),
3689
            .reset_all(reset|gxb_pwrdn_in_sig_clk_6),
3690
            //.reset_tx_digital(reset_ref_clk),
3691
            //.reset_rx_digital(reset_ref_clk),
3692
            .powerdown_all(reset_posedge),
3693
            .tx_ready(), // output
3694
            .rx_ready(), // output
3695
            // I/O transceiver and status
3696
            .pll_powerdown(pll_powerdown_sqcnr_6),// output
3697
            .tx_digitalreset(tx_digitalreset_sqcnr_6),// output
3698
            .rx_analogreset(rx_analogreset_sqcnr_6),// output
3699
            .rx_digitalreset(rx_digitalreset_sqcnr_6),// output
3700
            .gxb_powerdown(gxb_powerdown_sqcnr_6),// output
3701
            .pll_is_locked(locked_signal_6),
3702
            .rx_is_lockedtodata(rx_freqlocked_6),
3703
            .manual_mode(1'b0),
3704
            .rx_oc_busy(reconfig_busy_6)
3705
        );
3706
        assign locked_signal_6 = (reset? 1'b0: pll_locked_6);
3707
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
3708
    // ----------------------------------------------------------------------------------- 
3709
 
3710
 
3711
        // Aligned Rx_sync from gxb
3712
        // -------------------------------
3713
        altera_tse_reset_synchronizer ch_6_reset_sync_0 (
3714
        .clk(rx_pcs_clk_c6),
3715
        .reset_in(rx_digitalreset_sqcnr_6),
3716
        .reset_out(reset_rx_pcs_clk_c6_int)
3717
        );
3718
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_6
3719
          (
3720
            .clk(rx_pcs_clk_c6),
3721
            .reset(reset_rx_pcs_clk_c6_int),
3722
            //input (from alt2gxb)
3723
            .alt_dataout(rx_frame_6),
3724
            .alt_sync(rx_syncstatus[6]),
3725
            .alt_disperr(rx_disp_err[6]),
3726
            .alt_ctrldetect(rx_kchar_6),
3727
            .alt_errdetect(rx_char_err_gx[6]),
3728
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[6]),
3729
            .alt_rmfifodatainserted(rx_rmfifodatainserted[6]),
3730
            .alt_runlengthviolation(rx_runlengthviolation[6]),
3731
            .alt_patterndetect(rx_patterndetect[6]),
3732
            .alt_runningdisp(rx_runningdisp[6]),
3733
 
3734
            //output (to PCS)
3735
            .altpcs_dataout(pcs_rx_frame_6),
3736
            .altpcs_sync(link_status[6]),
3737
            .altpcs_disperr(led_disp_err_6),
3738
            .altpcs_ctrldetect(pcs_rx_kchar_6),
3739
            .altpcs_errdetect(led_char_err_gx[6]),
3740
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[6]),
3741
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[6]),
3742
            .altpcs_carrierdetect(pcs_rx_carrierdetected[6])
3743
           ) ;
3744
                defparam
3745
                the_altera_tse_gxb_aligned_rxsync_6.DEVICE_FAMILY = DEVICE_FAMILY;
3746
 
3747
        // Altgxb in GIGE mode
3748
        // --------------------
3749
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_6
3750
          (
3751
            .cal_blk_clk (gxb_cal_blk_clk),
3752
            .gxb_powerdown (gxb_pwrdn_in_sig[6]),
3753
            .pll_inclk (ref_clk),
3754
            .rx_recovclkout(rx_recovclkout_6),
3755
            .reconfig_clk(reconfig_clk_6),
3756
            .reconfig_togxb(reconfig_togxb_6),
3757
            .reconfig_fromgxb(reconfig_fromgxb_6),
3758
            .rx_analogreset (rx_analogreset_sqcnr_6),
3759
            .rx_cruclk (ref_clk),
3760
            .rx_ctrldetect (rx_kchar_6),
3761
            .rx_clkout (rx_pcs_clk_c6),
3762
            .rx_datain (rxp_6),
3763
            .rx_dataout (rx_frame_6),
3764
            .rx_digitalreset (rx_digitalreset_sqcnr_6),
3765
            .rx_disperr (rx_disp_err[6]),
3766
            .rx_errdetect (rx_char_err_gx[6]),
3767
            .rx_patterndetect (rx_patterndetect[6]),
3768
            .rx_rlv (rx_runlengthviolation[6]),
3769
            .rx_seriallpbken (sd_loopback_6),
3770
            .rx_syncstatus (rx_syncstatus[6]),
3771
            .tx_clkout (tx_pcs_clk_c6),
3772
            .tx_ctrlenable (tx_kchar_6),
3773
            .tx_datain (tx_frame_6),
3774
            .rx_freqlocked (rx_freqlocked_6),
3775
            .tx_dataout (txp_6),
3776
            .tx_digitalreset (tx_digitalreset_sqcnr_6),
3777
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[6]),
3778
            .rx_rmfifodatainserted(rx_rmfifodatainserted[6]),
3779
            .rx_runningdisp(rx_runningdisp[6]),
3780
            .pll_powerdown(gxb_pwrdn_in_sig[6]),
3781
            .pll_locked(pll_locked_6)
3782
          );
3783
   defparam
3784
        the_altera_tse_gxb_gige_inst_6.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
3785
        the_altera_tse_gxb_gige_inst_6.ENABLE_SGMII = ENABLE_SGMII,
3786
        the_altera_tse_gxb_gige_inst_6.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 24,
3787
        the_altera_tse_gxb_gige_inst_6.DEVICE_FAMILY = DEVICE_FAMILY;
3788
    end
3789
else
3790
    begin
3791
    assign reconfig_fromgxb_6 = {17{1'b0}};
3792
    assign led_char_err_gx[6] = 1'b0;
3793
    assign link_status[6] = 1'b0;
3794
    assign led_disp_err_6 = 1'b0;
3795
    assign txp_6 = 1'b0;
3796
        assign pcs_clk_c6 = 1'b0;
3797
    end
3798
endgenerate
3799
 
3800
 
3801
 
3802
// #######################################################################
3803
// ###############       CHANNEL 7 LOGIC/COMPONENTS       ###############
3804
// #######################################################################
3805
 
3806
// Export powerdown signal or wire it internally
3807
// ---------------------------------------------
3808
reg data_in_7,gxb_pwrdn_in_sig_clk_7;
3809
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 7)
3810
    begin
3811
        always @(posedge clk or posedge gxb_pwrdn_in_7)
3812
        begin
3813
          if (gxb_pwrdn_in_7 == 1) begin
3814
              data_in_7 <= 1;
3815
              gxb_pwrdn_in_sig_clk_7 <= 1;
3816
          end else begin
3817
            data_in_7 <= 1'b0;
3818
            gxb_pwrdn_in_sig_clk_7 <= data_in_7;
3819
          end
3820
        end
3821
        assign gxb_pwrdn_in_sig[7] = gxb_pwrdn_in_7;
3822
        assign pcs_pwrdn_out_7 = pcs_pwrdn_out_sig[7];
3823
    end
3824
else
3825
    begin
3826
        assign gxb_pwrdn_in_sig[7] = pcs_pwrdn_out_sig[7];
3827
                assign pcs_pwrdn_out_7 = 1'b0;
3828
        always@(*) begin
3829
            gxb_pwrdn_in_sig_clk_7 = gxb_pwrdn_in_sig[7];
3830
        end
3831
    end
3832
endgenerate
3833
 
3834
 
3835
generate if (MAX_CHANNELS > 7)
3836
    begin
3837
        wire    locked_signal_7;
3838
    // Reset logic used to reset the PMA blocks
3839
    // ----------------------------------------  
3840
    //  ALTGX Reset Sequencer
3841
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_7(
3842
            // User inputs and outputs
3843
            .clock(clk),
3844
            .reset_all(reset|gxb_pwrdn_in_sig_clk_7),
3845
            //.reset_tx_digital(reset_ref_clk),
3846
            //.reset_rx_digital(reset_ref_clk),
3847
            .powerdown_all(reset_posedge),
3848
            .tx_ready(), // output
3849
            .rx_ready(), // output
3850
            // I/O transceiver and status
3851
            .pll_powerdown(pll_powerdown_sqcnr_7),// output
3852
            .tx_digitalreset(tx_digitalreset_sqcnr_7),// output
3853
            .rx_analogreset(rx_analogreset_sqcnr_7),// output
3854
            .rx_digitalreset(rx_digitalreset_sqcnr_7),// output
3855
            .gxb_powerdown(gxb_powerdown_sqcnr_7),// output
3856
            .pll_is_locked(locked_signal_7),
3857
            .rx_is_lockedtodata(rx_freqlocked_7),
3858
            .manual_mode(1'b0),
3859
            .rx_oc_busy(reconfig_busy_7)
3860
        );
3861
        assign locked_signal_7 = (reset? 1'b0: pll_locked_7);
3862
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
3863
    // ----------------------------------------------------------------------------------- 
3864
 
3865
 
3866
        // Aligned Rx_sync from gxb
3867
        // -------------------------------
3868
        altera_tse_reset_synchronizer ch_7_reset_sync_0 (
3869
        .clk(rx_pcs_clk_c7),
3870
        .reset_in(rx_digitalreset_sqcnr_7),
3871
        .reset_out(reset_rx_pcs_clk_c7_int)
3872
        );
3873
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_7
3874
          (
3875
            .clk(rx_pcs_clk_c7),
3876
            .reset(reset_rx_pcs_clk_c7_int),
3877
            //input (from alt2gxb)
3878
            .alt_dataout(rx_frame_7),
3879
            .alt_sync(rx_syncstatus[7]),
3880
            .alt_disperr(rx_disp_err[7]),
3881
            .alt_ctrldetect(rx_kchar_7),
3882
            .alt_errdetect(rx_char_err_gx[7]),
3883
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[7]),
3884
            .alt_rmfifodatainserted(rx_rmfifodatainserted[7]),
3885
            .alt_runlengthviolation(rx_runlengthviolation[7]),
3886
            .alt_patterndetect(rx_patterndetect[7]),
3887
            .alt_runningdisp(rx_runningdisp[7]),
3888
 
3889
            //output (to PCS)
3890
            .altpcs_dataout(pcs_rx_frame_7),
3891
            .altpcs_sync(link_status[7]),
3892
            .altpcs_disperr(led_disp_err_7),
3893
            .altpcs_ctrldetect(pcs_rx_kchar_7),
3894
            .altpcs_errdetect(led_char_err_gx[7]),
3895
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[7]),
3896
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[7]),
3897
            .altpcs_carrierdetect(pcs_rx_carrierdetected[7])
3898
           ) ;
3899
                defparam
3900
                the_altera_tse_gxb_aligned_rxsync_7.DEVICE_FAMILY = DEVICE_FAMILY;
3901
 
3902
        // Altgxb in GIGE mode
3903
        // --------------------
3904
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_7
3905
          (
3906
            .cal_blk_clk (gxb_cal_blk_clk),
3907
            .gxb_powerdown (gxb_pwrdn_in_sig[7]),
3908
            .pll_inclk (ref_clk),
3909
            .rx_recovclkout(rx_recovclkout_7),
3910
            .reconfig_clk(reconfig_clk_7),
3911
            .reconfig_togxb(reconfig_togxb_7),
3912
            .reconfig_fromgxb(reconfig_fromgxb_7),
3913
            .rx_analogreset (rx_analogreset_sqcnr_7),
3914
            .rx_cruclk (ref_clk),
3915
            .rx_ctrldetect (rx_kchar_7),
3916
            .rx_clkout (rx_pcs_clk_c7),
3917
            .rx_datain (rxp_7),
3918
            .rx_dataout (rx_frame_7),
3919
            .rx_digitalreset (rx_digitalreset_sqcnr_7),
3920
            .rx_disperr (rx_disp_err[7]),
3921
            .rx_errdetect (rx_char_err_gx[7]),
3922
            .rx_patterndetect (rx_patterndetect[7]),
3923
            .rx_rlv (rx_runlengthviolation[7]),
3924
            .rx_seriallpbken (sd_loopback_7),
3925
            .rx_syncstatus (rx_syncstatus[7]),
3926
            .tx_clkout (tx_pcs_clk_c7),
3927
            .tx_ctrlenable (tx_kchar_7),
3928
            .tx_datain (tx_frame_7),
3929
            .rx_freqlocked (rx_freqlocked_7),
3930
            .tx_dataout (txp_7),
3931
            .tx_digitalreset (tx_digitalreset_sqcnr_7),
3932
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[7]),
3933
            .rx_rmfifodatainserted(rx_rmfifodatainserted[7]),
3934
            .rx_runningdisp(rx_runningdisp[7]),
3935
            .pll_powerdown(gxb_pwrdn_in_sig[7]),
3936
            .pll_locked(pll_locked_7)
3937
          );
3938
   defparam
3939
        the_altera_tse_gxb_gige_inst_7.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
3940
        the_altera_tse_gxb_gige_inst_7.ENABLE_SGMII = ENABLE_SGMII,
3941
        the_altera_tse_gxb_gige_inst_7.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 28,
3942
        the_altera_tse_gxb_gige_inst_7.DEVICE_FAMILY = DEVICE_FAMILY;
3943
    end
3944
else
3945
    begin
3946
    assign reconfig_fromgxb_7 = {17{1'b0}};
3947
    assign led_char_err_gx[7] = 1'b0;
3948
    assign link_status[7] = 1'b0;
3949
    assign led_disp_err_7 = 1'b0;
3950
    assign txp_7 = 1'b0;
3951
        assign pcs_clk_c7 = 1'b0;
3952
    end
3953
endgenerate
3954
 
3955
 
3956
 
3957
// #######################################################################
3958
// ###############       CHANNEL 8 LOGIC/COMPONENTS       ###############
3959
// #######################################################################
3960
 
3961
// Export powerdown signal or wire it internally
3962
// ---------------------------------------------
3963
reg data_in_8,gxb_pwrdn_in_sig_clk_8;
3964
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 8)
3965
    begin
3966
        always @(posedge clk or posedge gxb_pwrdn_in_8)
3967
        begin
3968
          if (gxb_pwrdn_in_8 == 1) begin
3969
              data_in_8 <= 1;
3970
              gxb_pwrdn_in_sig_clk_8 <= 1;
3971
          end else begin
3972
            data_in_8 <= 1'b0;
3973
            gxb_pwrdn_in_sig_clk_8 <= data_in_8;
3974
          end
3975
        end
3976
        assign gxb_pwrdn_in_sig[8] = gxb_pwrdn_in_8;
3977
        assign pcs_pwrdn_out_8 = pcs_pwrdn_out_sig[8];
3978
    end
3979
else
3980
    begin
3981
        assign gxb_pwrdn_in_sig[8] = pcs_pwrdn_out_sig[8];
3982
                assign pcs_pwrdn_out_8 = 1'b0;
3983
        always@(*) begin
3984
            gxb_pwrdn_in_sig_clk_8 = gxb_pwrdn_in_sig[8];
3985
                end
3986
    end
3987
endgenerate
3988
 
3989
generate if (MAX_CHANNELS > 8)
3990
    begin
3991
        wire    locked_signal_8;
3992
    // Reset logic used to reset the PMA blocks
3993
    // ----------------------------------------  
3994
    //  ALTGX Reset Sequencer
3995
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_8(
3996
            // User inputs and outputs
3997
            .clock(clk),
3998
            .reset_all(reset|gxb_pwrdn_in_sig_clk_8),
3999
            //.reset_tx_digital(reset_ref_clk),
4000
            //.reset_rx_digital(reset_ref_clk),
4001
            .powerdown_all(reset_posedge),
4002
            .tx_ready(), // output
4003
            .rx_ready(), // output
4004
            // I/O transceiver and status
4005
            .pll_powerdown(pll_powerdown_sqcnr_8),// output
4006
            .tx_digitalreset(tx_digitalreset_sqcnr_8),// output
4007
            .rx_analogreset(rx_analogreset_sqcnr_8),// output
4008
            .rx_digitalreset(rx_digitalreset_sqcnr_8),// output
4009
            .gxb_powerdown(gxb_powerdown_sqcnr_8),// output
4010
            .pll_is_locked(locked_signal_8),
4011
            .rx_is_lockedtodata(rx_freqlocked_8),
4012
            .manual_mode(1'b0),
4013
            .rx_oc_busy(reconfig_busy_8)
4014
        );
4015
        assign locked_signal_8 = (reset? 1'b0: pll_locked_8);
4016
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
4017
    // ----------------------------------------------------------------------------------- 
4018
 
4019
 
4020
        // Aligned Rx_sync from gxb
4021
        // -------------------------------
4022
        altera_tse_reset_synchronizer ch_8_reset_sync_0 (
4023
        .clk(rx_pcs_clk_c8),
4024
        .reset_in(rx_digitalreset_sqcnr_8),
4025
        .reset_out(reset_rx_pcs_clk_c8_int)
4026
        );
4027
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_8
4028
          (
4029
            .clk(rx_pcs_clk_c8),
4030
            .reset(reset_rx_pcs_clk_c8_int),
4031
            //input (from alt2gxb)
4032
            .alt_dataout(rx_frame_8),
4033
            .alt_sync(rx_syncstatus[8]),
4034
            .alt_disperr(rx_disp_err[8]),
4035
            .alt_ctrldetect(rx_kchar_8),
4036
            .alt_errdetect(rx_char_err_gx[8]),
4037
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[8]),
4038
            .alt_rmfifodatainserted(rx_rmfifodatainserted[8]),
4039
            .alt_runlengthviolation(rx_runlengthviolation[8]),
4040
            .alt_patterndetect(rx_patterndetect[8]),
4041
            .alt_runningdisp(rx_runningdisp[8]),
4042
 
4043
            //output (to PCS)
4044
            .altpcs_dataout(pcs_rx_frame_8),
4045
            .altpcs_sync(link_status[8]),
4046
            .altpcs_disperr(led_disp_err_8),
4047
            .altpcs_ctrldetect(pcs_rx_kchar_8),
4048
            .altpcs_errdetect(led_char_err_gx[8]),
4049
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[8]),
4050
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[8]),
4051
            .altpcs_carrierdetect(pcs_rx_carrierdetected[8])
4052
           ) ;
4053
                defparam
4054
                the_altera_tse_gxb_aligned_rxsync_8.DEVICE_FAMILY = DEVICE_FAMILY;
4055
 
4056
        // Altgxb in GIGE mode
4057
        // --------------------
4058
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_8
4059
          (
4060
            .cal_blk_clk (gxb_cal_blk_clk),
4061
            .gxb_powerdown (gxb_pwrdn_in_sig[8]),
4062
            .pll_inclk (ref_clk),
4063
            .rx_recovclkout(rx_recovclkout_8),
4064
            .reconfig_clk(reconfig_clk_8),
4065
            .reconfig_togxb(reconfig_togxb_8),
4066
            .reconfig_fromgxb(reconfig_fromgxb_8),
4067
            .rx_analogreset (rx_analogreset_sqcnr_8),
4068
            .rx_cruclk (ref_clk),
4069
            .rx_ctrldetect (rx_kchar_8),
4070
            .rx_clkout (rx_pcs_clk_c8),
4071
            .rx_datain (rxp_8),
4072
            .rx_dataout (rx_frame_8),
4073
            .rx_digitalreset (rx_digitalreset_sqcnr_8),
4074
            .rx_disperr (rx_disp_err[8]),
4075
            .rx_errdetect (rx_char_err_gx[8]),
4076
            .rx_patterndetect (rx_patterndetect[8]),
4077
            .rx_rlv (rx_runlengthviolation[8]),
4078
            .rx_seriallpbken (sd_loopback_8),
4079
            .rx_syncstatus (rx_syncstatus[8]),
4080
            .tx_clkout (tx_pcs_clk_c8),
4081
            .tx_ctrlenable (tx_kchar_8),
4082
            .tx_datain (tx_frame_8),
4083
            .rx_freqlocked (rx_freqlocked_8),
4084
            .tx_dataout (txp_8),
4085
            .tx_digitalreset (tx_digitalreset_sqcnr_8),
4086
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[8]),
4087
            .rx_rmfifodatainserted(rx_rmfifodatainserted[8]),
4088
            .rx_runningdisp(rx_runningdisp[8]),
4089
            .pll_powerdown(gxb_pwrdn_in_sig[8]),
4090
            .pll_locked(pll_locked_8)
4091
          );
4092
   defparam
4093
        the_altera_tse_gxb_gige_inst_8.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
4094
        the_altera_tse_gxb_gige_inst_8.ENABLE_SGMII = ENABLE_SGMII,
4095
        the_altera_tse_gxb_gige_inst_8.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 32,
4096
        the_altera_tse_gxb_gige_inst_8.DEVICE_FAMILY = DEVICE_FAMILY;
4097
    end
4098
else
4099
    begin
4100
    assign reconfig_fromgxb_8 = {17{1'b0}};
4101
    assign led_char_err_gx[8] = 1'b0;
4102
    assign link_status[8] = 1'b0;
4103
    assign led_disp_err_8 = 1'b0;
4104
    assign txp_8 = 1'b0;
4105
        assign pcs_clk_c8 = 1'b0;
4106
    end
4107
endgenerate
4108
 
4109
 
4110
 
4111
// #######################################################################
4112
// ###############       CHANNEL 9 LOGIC/COMPONENTS       ###############
4113
// #######################################################################
4114
 
4115
// Export powerdown signal or wire it internally
4116
// ---------------------------------------------
4117
reg data_in_9,gxb_pwrdn_in_sig_clk_9;
4118
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 9)
4119
    begin
4120
        always @(posedge clk or posedge gxb_pwrdn_in_9)
4121
        begin
4122
          if (gxb_pwrdn_in_9 == 1) begin
4123
              data_in_9 <= 1;
4124
              gxb_pwrdn_in_sig_clk_9 <= 1;
4125
          end else begin
4126
            data_in_9 <= 1'b0;
4127
            gxb_pwrdn_in_sig_clk_9 <= data_in_9;
4128
          end
4129
        end
4130
        assign gxb_pwrdn_in_sig[9] = gxb_pwrdn_in_9;
4131
        assign pcs_pwrdn_out_9 = pcs_pwrdn_out_sig[9];
4132
    end
4133
else
4134
    begin
4135
        assign gxb_pwrdn_in_sig[9] = pcs_pwrdn_out_sig[9];
4136
                assign pcs_pwrdn_out_9 = 1'b0;
4137
        always@(*) begin
4138
            gxb_pwrdn_in_sig_clk_9 = gxb_pwrdn_in_sig[9];
4139
        end
4140
    end
4141
endgenerate
4142
 
4143
 
4144
generate if (MAX_CHANNELS > 9)
4145
    begin
4146
        wire    locked_signal_9;
4147
    // Reset logic used to reset the PMA blocks
4148
    // ----------------------------------------  
4149
    //  ALTGX Reset Sequencer
4150
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_9(
4151
            // User inputs and outputs
4152
            .clock(clk),
4153
            .reset_all(reset|gxb_pwrdn_in_sig_clk_9),
4154
            //.reset_tx_digital(reset_ref_clk),
4155
            //.reset_rx_digital(reset_ref_clk),
4156
            .powerdown_all(reset_posedge),
4157
            .tx_ready(), // output
4158
            .rx_ready(), // output
4159
            // I/O transceiver and status
4160
            .pll_powerdown(pll_powerdown_sqcnr_9),// output
4161
            .tx_digitalreset(tx_digitalreset_sqcnr_9),// output
4162
            .rx_analogreset(rx_analogreset_sqcnr_9),// output
4163
            .rx_digitalreset(rx_digitalreset_sqcnr_9),// output
4164
            .gxb_powerdown(gxb_powerdown_sqcnr_9),// output
4165
            .pll_is_locked(locked_signal_9),
4166
            .rx_is_lockedtodata(rx_freqlocked_9),
4167
            .manual_mode(1'b0),
4168
            .rx_oc_busy(reconfig_busy_9)
4169
        );
4170
        assign locked_signal_9 = (reset? 1'b0: pll_locked_9);
4171
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
4172
    // ----------------------------------------------------------------------------------- 
4173
 
4174
 
4175
        // Aligned Rx_sync from gxb
4176
        // -------------------------------
4177
        altera_tse_reset_synchronizer ch_9_reset_sync_0 (
4178
        .clk(rx_pcs_clk_c9),
4179
        .reset_in(rx_digitalreset_sqcnr_9),
4180
        .reset_out(reset_rx_pcs_clk_c9_int)
4181
        );
4182
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_9
4183
          (
4184
            .clk(rx_pcs_clk_c9),
4185
            .reset(reset_rx_pcs_clk_c9_int),
4186
            //input (from alt2gxb)
4187
            .alt_dataout(rx_frame_9),
4188
            .alt_sync(rx_syncstatus[9]),
4189
            .alt_disperr(rx_disp_err[9]),
4190
            .alt_ctrldetect(rx_kchar_9),
4191
            .alt_errdetect(rx_char_err_gx[9]),
4192
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[9]),
4193
            .alt_rmfifodatainserted(rx_rmfifodatainserted[9]),
4194
            .alt_runlengthviolation(rx_runlengthviolation[9]),
4195
            .alt_patterndetect(rx_patterndetect[9]),
4196
            .alt_runningdisp(rx_runningdisp[9]),
4197
 
4198
            //output (to PCS)
4199
            .altpcs_dataout(pcs_rx_frame_9),
4200
            .altpcs_sync(link_status[9]),
4201
            .altpcs_disperr(led_disp_err_9),
4202
            .altpcs_ctrldetect(pcs_rx_kchar_9),
4203
            .altpcs_errdetect(led_char_err_gx[9]),
4204
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[9]),
4205
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[9]),
4206
            .altpcs_carrierdetect(pcs_rx_carrierdetected[9])
4207
           ) ;
4208
                defparam
4209
                the_altera_tse_gxb_aligned_rxsync_9.DEVICE_FAMILY = DEVICE_FAMILY;
4210
 
4211
        // Altgxb in GIGE mode
4212
        // --------------------
4213
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_9
4214
          (
4215
            .cal_blk_clk (gxb_cal_blk_clk),
4216
            .gxb_powerdown (gxb_pwrdn_in_sig[9]),
4217
            .pll_inclk (ref_clk),
4218
            .rx_recovclkout(rx_recovclkout_9),
4219
            .reconfig_clk(reconfig_clk_9),
4220
            .reconfig_togxb(reconfig_togxb_9),
4221
            .reconfig_fromgxb(reconfig_fromgxb_9),
4222
            .rx_analogreset (rx_analogreset_sqcnr_9),
4223
            .rx_cruclk (ref_clk),
4224
            .rx_ctrldetect (rx_kchar_9),
4225
            .rx_clkout (rx_pcs_clk_c9),
4226
            .rx_datain (rxp_9),
4227
            .rx_dataout (rx_frame_9),
4228
            .rx_digitalreset (rx_digitalreset_sqcnr_9),
4229
            .rx_disperr (rx_disp_err[9]),
4230
            .rx_errdetect (rx_char_err_gx[9]),
4231
            .rx_patterndetect (rx_patterndetect[9]),
4232
            .rx_rlv (rx_runlengthviolation[9]),
4233
            .rx_seriallpbken (sd_loopback_9),
4234
            .rx_syncstatus (rx_syncstatus[9]),
4235
            .tx_clkout (tx_pcs_clk_c9),
4236
            .tx_ctrlenable (tx_kchar_9),
4237
            .tx_datain (tx_frame_9),
4238
            .rx_freqlocked (rx_freqlocked_9),
4239
            .tx_dataout (txp_9),
4240
            .tx_digitalreset (tx_digitalreset_sqcnr_9),
4241
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[9]),
4242
            .rx_rmfifodatainserted(rx_rmfifodatainserted[9]),
4243
            .rx_runningdisp(rx_runningdisp[9]),
4244
            .pll_powerdown(gxb_pwrdn_in_sig[9]),
4245
            .pll_locked(pll_locked_9)
4246
          );
4247
   defparam
4248
        the_altera_tse_gxb_gige_inst_9.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
4249
        the_altera_tse_gxb_gige_inst_9.ENABLE_SGMII = ENABLE_SGMII,
4250
        the_altera_tse_gxb_gige_inst_9.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 36,
4251
        the_altera_tse_gxb_gige_inst_9.DEVICE_FAMILY = DEVICE_FAMILY;
4252
    end
4253
else
4254
    begin
4255
    assign reconfig_fromgxb_9 = {17{1'b0}};
4256
    assign led_char_err_gx[9] = 1'b0;
4257
    assign link_status[9] = 1'b0;
4258
    assign led_disp_err_9 = 1'b0;
4259
    assign txp_9 = 1'b0;
4260
        assign pcs_clk_c9 = 1'b0;
4261
    end
4262
endgenerate
4263
 
4264
 
4265
 
4266
// #######################################################################
4267
// ###############       CHANNEL 10 LOGIC/COMPONENTS       ###############
4268
// #######################################################################
4269
 
4270
// Export powerdown signal or wire it internally
4271
// ---------------------------------------------
4272
reg data_in_10,gxb_pwrdn_in_sig_clk_10;
4273
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 10)
4274
    begin
4275
        always @(posedge clk or posedge gxb_pwrdn_in_10)
4276
        begin
4277
          if (gxb_pwrdn_in_10 == 1) begin
4278
              data_in_10 <= 1;
4279
              gxb_pwrdn_in_sig_clk_10 <= 1;
4280
          end else begin
4281
            data_in_10 <= 1'b0;
4282
            gxb_pwrdn_in_sig_clk_10 <= data_in_10;
4283
          end
4284
        end
4285
        assign gxb_pwrdn_in_sig[10] = gxb_pwrdn_in_10;
4286
        assign pcs_pwrdn_out_10 = pcs_pwrdn_out_sig[10];
4287
    end
4288
else
4289
    begin
4290
        assign gxb_pwrdn_in_sig[10] = pcs_pwrdn_out_sig[10];
4291
                assign pcs_pwrdn_out_10 = 1'b0;
4292
        always@(*) begin
4293
            gxb_pwrdn_in_sig_clk_10 = gxb_pwrdn_in_sig[10];
4294
        end
4295
    end
4296
endgenerate
4297
 
4298
generate if (MAX_CHANNELS > 10)
4299
    begin
4300
        wire    locked_signal_10;
4301
    // Reset logic used to reset the PMA blocks
4302
    // ----------------------------------------  
4303
    //  ALTGX Reset Sequencer
4304
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_10(
4305
            // User inputs and outputs
4306
            .clock(clk),
4307
            .reset_all(reset|gxb_pwrdn_in_sig_clk_10),
4308
            //.reset_tx_digital(reset_ref_clk),
4309
            //.reset_rx_digital(reset_ref_clk),
4310
            .powerdown_all(reset_posedge),
4311
            .tx_ready(), // output
4312
            .rx_ready(), // output
4313
            // I/O transceiver and status
4314
            .pll_powerdown(pll_powerdown_sqcnr_10),// output
4315
            .tx_digitalreset(tx_digitalreset_sqcnr_10),// output
4316
            .rx_analogreset(rx_analogreset_sqcnr_10),// output
4317
            .rx_digitalreset(rx_digitalreset_sqcnr_10),// output
4318
            .gxb_powerdown(gxb_powerdown_sqcnr_10),// output
4319
            .pll_is_locked(locked_signal_10),
4320
            .rx_is_lockedtodata(rx_freqlocked_10),
4321
            .manual_mode(1'b0),
4322
            .rx_oc_busy(reconfig_busy_10)
4323
        );
4324
        assign locked_signal_10 = (reset? 1'b0: pll_locked_10);
4325
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
4326
    // ----------------------------------------------------------------------------------- 
4327
 
4328
 
4329
        // Aligned Rx_sync from gxb
4330
        // -------------------------------
4331
        altera_tse_reset_synchronizer ch_10_reset_sync_0 (
4332
        .clk(rx_pcs_clk_c10),
4333
        .reset_in(rx_digitalreset_sqcnr_10),
4334
        .reset_out(reset_rx_pcs_clk_c10_int)
4335
        );
4336
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_10
4337
          (
4338
            .clk(rx_pcs_clk_c10),
4339
            .reset(reset_rx_pcs_clk_c10_int),
4340
            //input (from alt2gxb)
4341
            .alt_dataout(rx_frame_10),
4342
            .alt_sync(rx_syncstatus[10]),
4343
            .alt_disperr(rx_disp_err[10]),
4344
            .alt_ctrldetect(rx_kchar_10),
4345
            .alt_errdetect(rx_char_err_gx[10]),
4346
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[10]),
4347
            .alt_rmfifodatainserted(rx_rmfifodatainserted[10]),
4348
            .alt_runlengthviolation(rx_runlengthviolation[10]),
4349
            .alt_patterndetect(rx_patterndetect[10]),
4350
            .alt_runningdisp(rx_runningdisp[10]),
4351
 
4352
            //output (to PCS)
4353
            .altpcs_dataout(pcs_rx_frame_10),
4354
            .altpcs_sync(link_status[10]),
4355
            .altpcs_disperr(led_disp_err_10),
4356
            .altpcs_ctrldetect(pcs_rx_kchar_10),
4357
            .altpcs_errdetect(led_char_err_gx[10]),
4358
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[10]),
4359
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[10]),
4360
            .altpcs_carrierdetect(pcs_rx_carrierdetected[10])
4361
           ) ;
4362
                defparam
4363
                the_altera_tse_gxb_aligned_rxsync_10.DEVICE_FAMILY = DEVICE_FAMILY;
4364
 
4365
        // Altgxb in GIGE mode
4366
        // --------------------
4367
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_10
4368
          (
4369
            .cal_blk_clk (gxb_cal_blk_clk),
4370
            .gxb_powerdown (gxb_pwrdn_in_sig[10]),
4371
            .pll_inclk (ref_clk),
4372
            .rx_recovclkout(rx_recovclkout_10),
4373
            .reconfig_clk(reconfig_clk_10),
4374
            .reconfig_togxb(reconfig_togxb_10),
4375
            .reconfig_fromgxb(reconfig_fromgxb_10),
4376
            .rx_analogreset (rx_analogreset_sqcnr_10),
4377
            .rx_cruclk (ref_clk),
4378
            .rx_ctrldetect (rx_kchar_10),
4379
            .rx_clkout (rx_pcs_clk_c10),
4380
            .rx_datain (rxp_10),
4381
            .rx_dataout (rx_frame_10),
4382
            .rx_digitalreset (rx_digitalreset_sqcnr_10),
4383
            .rx_disperr (rx_disp_err[10]),
4384
            .rx_errdetect (rx_char_err_gx[10]),
4385
            .rx_patterndetect (rx_patterndetect[10]),
4386
            .rx_rlv (rx_runlengthviolation[10]),
4387
            .rx_seriallpbken (sd_loopback_10),
4388
            .rx_syncstatus (rx_syncstatus[10]),
4389
            .tx_clkout (tx_pcs_clk_c10),
4390
            .tx_ctrlenable (tx_kchar_10),
4391
            .tx_datain (tx_frame_10),
4392
            .rx_freqlocked (rx_freqlocked_10),
4393
            .tx_dataout (txp_10),
4394
            .tx_digitalreset (tx_digitalreset_sqcnr_10),
4395
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[10]),
4396
            .rx_rmfifodatainserted(rx_rmfifodatainserted[10]),
4397
            .rx_runningdisp(rx_runningdisp[10]),
4398
            .pll_powerdown(gxb_pwrdn_in_sig[10]),
4399
            .pll_locked(pll_locked_10)
4400
          );
4401
   defparam
4402
        the_altera_tse_gxb_gige_inst_10.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
4403
        the_altera_tse_gxb_gige_inst_10.ENABLE_SGMII = ENABLE_SGMII,
4404
        the_altera_tse_gxb_gige_inst_10.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 40,
4405
        the_altera_tse_gxb_gige_inst_10.DEVICE_FAMILY = DEVICE_FAMILY;
4406
    end
4407
else
4408
    begin
4409
    assign reconfig_fromgxb_10 = {17{1'b0}};
4410
    assign led_char_err_gx[10] = 1'b0;
4411
    assign link_status[10] = 1'b0;
4412
    assign led_disp_err_10 = 1'b0;
4413
    assign txp_10 = 1'b0;
4414
        assign pcs_clk_c10 = 1'b0;
4415
    end
4416
endgenerate
4417
 
4418
 
4419
 
4420
// #######################################################################
4421
// ###############       CHANNEL 11 LOGIC/COMPONENTS       ###############
4422
// #######################################################################
4423
 
4424
// Export powerdown signal or wire it internally
4425
// ---------------------------------------------
4426
reg data_in_11,gxb_pwrdn_in_sig_clk_11;
4427
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 11)
4428
    begin
4429
        always @(posedge clk or posedge gxb_pwrdn_in_11)
4430
        begin
4431
          if (gxb_pwrdn_in_11 == 1) begin
4432
              data_in_11 <= 1;
4433
              gxb_pwrdn_in_sig_clk_11 <= 1;
4434
          end else begin
4435
            data_in_11 <= 1'b0;
4436
            gxb_pwrdn_in_sig_clk_11 <= data_in_11;
4437
          end
4438
        end
4439
        assign gxb_pwrdn_in_sig[11] = gxb_pwrdn_in_11;
4440
        assign pcs_pwrdn_out_11 = pcs_pwrdn_out_sig[11];
4441
    end
4442
else
4443
    begin
4444
        assign gxb_pwrdn_in_sig[11] = pcs_pwrdn_out_sig[11];
4445
                assign pcs_pwrdn_out_11 = 1'b0;
4446
        always@(*) begin
4447
            gxb_pwrdn_in_sig_clk_11 = gxb_pwrdn_in_sig[11];
4448
        end
4449
    end
4450
endgenerate
4451
 
4452
 
4453
generate if (MAX_CHANNELS > 11)
4454
    begin
4455
        wire    locked_signal_11;
4456
    // Reset logic used to reset the PMA blocks
4457
    // ----------------------------------------  
4458
    //  ALTGX Reset Sequencer
4459
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_11(
4460
            // User inputs and outputs
4461
            .clock(clk),
4462
            .reset_all(reset|gxb_pwrdn_in_sig_clk_11),
4463
            //.reset_tx_digital(reset_ref_clk),
4464
            //.reset_rx_digital(reset_ref_clk),
4465
            .powerdown_all(reset_posedge),
4466
            .tx_ready(), // output
4467
            .rx_ready(), // output
4468
            // I/O transceiver and status
4469
            .pll_powerdown(pll_powerdown_sqcnr_11),// output
4470
            .tx_digitalreset(tx_digitalreset_sqcnr_11),// output
4471
            .rx_analogreset(rx_analogreset_sqcnr_11),// output
4472
            .rx_digitalreset(rx_digitalreset_sqcnr_11),// output
4473
            .gxb_powerdown(gxb_powerdown_sqcnr_11),// output
4474
            .pll_is_locked(locked_signal_11),
4475
            .rx_is_lockedtodata(rx_freqlocked_11),
4476
            .manual_mode(1'b0),
4477
            .rx_oc_busy(reconfig_busy_11)
4478
        );
4479
        assign locked_signal_11 = (reset? 1'b0: pll_locked_11);
4480
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
4481
    // ----------------------------------------------------------------------------------- 
4482
 
4483
 
4484
        // Aligned Rx_sync from gxb
4485
        // -------------------------------
4486
        altera_tse_reset_synchronizer ch_11_reset_sync_0 (
4487
        .clk(rx_pcs_clk_c11),
4488
        .reset_in(rx_digitalreset_sqcnr_11),
4489
        .reset_out(reset_rx_pcs_clk_c11_int)
4490
        );
4491
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_11
4492
          (
4493
            .clk(rx_pcs_clk_c11),
4494
            .reset(reset_rx_pcs_clk_c11_int),
4495
            //input (from alt2gxb)
4496
            .alt_dataout(rx_frame_11),
4497
            .alt_sync(rx_syncstatus[11]),
4498
            .alt_disperr(rx_disp_err[11]),
4499
            .alt_ctrldetect(rx_kchar_11),
4500
            .alt_errdetect(rx_char_err_gx[11]),
4501
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[11]),
4502
            .alt_rmfifodatainserted(rx_rmfifodatainserted[11]),
4503
            .alt_runlengthviolation(rx_runlengthviolation[11]),
4504
            .alt_patterndetect(rx_patterndetect[11]),
4505
            .alt_runningdisp(rx_runningdisp[11]),
4506
 
4507
            //output (to PCS)
4508
            .altpcs_dataout(pcs_rx_frame_11),
4509
            .altpcs_sync(link_status[11]),
4510
            .altpcs_disperr(led_disp_err_11),
4511
            .altpcs_ctrldetect(pcs_rx_kchar_11),
4512
            .altpcs_errdetect(led_char_err_gx[11]),
4513
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[11]),
4514
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[11]),
4515
            .altpcs_carrierdetect(pcs_rx_carrierdetected[11])
4516
           ) ;
4517
                defparam
4518
                the_altera_tse_gxb_aligned_rxsync_11.DEVICE_FAMILY = DEVICE_FAMILY;
4519
 
4520
        // Altgxb in GIGE mode
4521
        // --------------------
4522
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_11
4523
          (
4524
            .cal_blk_clk (gxb_cal_blk_clk),
4525
            .gxb_powerdown (gxb_pwrdn_in_sig[11]),
4526
            .pll_inclk (ref_clk),
4527
            .rx_recovclkout(rx_recovclkout_11),
4528
            .reconfig_clk(reconfig_clk_11),
4529
            .reconfig_togxb(reconfig_togxb_11),
4530
            .reconfig_fromgxb(reconfig_fromgxb_11),
4531
            .rx_analogreset (rx_analogreset_sqcnr_11),
4532
            .rx_cruclk (ref_clk),
4533
            .rx_ctrldetect (rx_kchar_11),
4534
            .rx_clkout (rx_pcs_clk_c11),
4535
            .rx_datain (rxp_11),
4536
            .rx_dataout (rx_frame_11),
4537
            .rx_digitalreset (rx_digitalreset_sqcnr_11),
4538
            .rx_disperr (rx_disp_err[11]),
4539
            .rx_errdetect (rx_char_err_gx[11]),
4540
            .rx_patterndetect (rx_patterndetect[11]),
4541
            .rx_rlv (rx_runlengthviolation[11]),
4542
            .rx_seriallpbken (sd_loopback_11),
4543
            .rx_syncstatus (rx_syncstatus[11]),
4544
            .tx_clkout (tx_pcs_clk_c11),
4545
            .tx_ctrlenable (tx_kchar_11),
4546
            .tx_datain (tx_frame_11),
4547
            .rx_freqlocked (rx_freqlocked_11),
4548
            .tx_dataout (txp_11),
4549
            .tx_digitalreset (tx_digitalreset_sqcnr_11),
4550
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[11]),
4551
            .rx_rmfifodatainserted(rx_rmfifodatainserted[11]),
4552
            .rx_runningdisp(rx_runningdisp[11]),
4553
            .pll_powerdown(gxb_pwrdn_in_sig[11]),
4554
            .pll_locked(pll_locked_11)
4555
          );
4556
   defparam
4557
        the_altera_tse_gxb_gige_inst_11.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
4558
        the_altera_tse_gxb_gige_inst_11.ENABLE_SGMII = ENABLE_SGMII,
4559
        the_altera_tse_gxb_gige_inst_11.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 44,
4560
        the_altera_tse_gxb_gige_inst_11.DEVICE_FAMILY = DEVICE_FAMILY;
4561
    end
4562
else
4563
    begin
4564
    assign reconfig_fromgxb_11 = {17{1'b0}};
4565
    assign led_char_err_gx[11] = 1'b0;
4566
    assign link_status[11] = 1'b0;
4567
    assign led_disp_err_11 = 1'b0;
4568
    assign txp_11 = 1'b0;
4569
        assign pcs_clk_c11 = 1'b0;
4570
    end
4571
endgenerate
4572
 
4573
 
4574
 
4575
// #######################################################################
4576
// ###############       CHANNEL 12 LOGIC/COMPONENTS       ###############
4577
// #######################################################################
4578
 
4579
// Export powerdown signal or wire it internally
4580
// ---------------------------------------------
4581
 reg data_in_12,gxb_pwrdn_in_sig_clk_12;
4582
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 12)
4583
    begin
4584
        always @(posedge clk or posedge gxb_pwrdn_in_12)
4585
        begin
4586
          if (gxb_pwrdn_in_12 == 1) begin
4587
              data_in_12 <= 1;
4588
              gxb_pwrdn_in_sig_clk_12 <= 1;
4589
          end else begin
4590
            data_in_12 <= 1'b0;
4591
            gxb_pwrdn_in_sig_clk_12 <= data_in_12;
4592
          end
4593
        end
4594
        assign gxb_pwrdn_in_sig[12] = gxb_pwrdn_in_12;
4595
        assign pcs_pwrdn_out_12 = pcs_pwrdn_out_sig[12];
4596
    end
4597
else
4598
    begin
4599
        assign gxb_pwrdn_in_sig[12] = pcs_pwrdn_out_sig[12];
4600
                assign pcs_pwrdn_out_12 = 1'b0;
4601
        always@(*) begin
4602
            gxb_pwrdn_in_sig_clk_12 = gxb_pwrdn_in_sig[12];
4603
        end
4604
    end
4605
endgenerate
4606
 
4607
 
4608
generate if (MAX_CHANNELS > 12)
4609
    begin
4610
        wire    locked_signal_12;
4611
    // Reset logic used to reset the PMA blocks
4612
    // ----------------------------------------  
4613
    //  ALTGX Reset Sequencer
4614
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_12(
4615
            // User inputs and outputs
4616
            .clock(clk),
4617
            .reset_all(reset|gxb_pwrdn_in_sig_clk_12),
4618
            //.reset_tx_digital(reset_ref_clk),
4619
            //.reset_rx_digital(reset_ref_clk),
4620
            .powerdown_all(reset_posedge),
4621
            .tx_ready(), // output
4622
            .rx_ready(), // output
4623
            // I/O transceiver and status
4624
            .pll_powerdown(pll_powerdown_sqcnr_12),// output
4625
            .tx_digitalreset(tx_digitalreset_sqcnr_12),// output
4626
            .rx_analogreset(rx_analogreset_sqcnr_12),// output
4627
            .rx_digitalreset(rx_digitalreset_sqcnr_12),// output
4628
            .gxb_powerdown(gxb_powerdown_sqcnr_12),// output
4629
            .pll_is_locked(locked_signal_12),
4630
            .rx_is_lockedtodata(rx_freqlocked_12),
4631
            .manual_mode(1'b0),
4632
            .rx_oc_busy(reconfig_busy_12)
4633
        );
4634
        assign locked_signal_12 = (reset? 1'b0: pll_locked_12);
4635
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
4636
    // ----------------------------------------------------------------------------------- 
4637
 
4638
 
4639
        // Aligned Rx_sync from gxb
4640
        // -------------------------------
4641
        altera_tse_reset_synchronizer ch_12_reset_sync_0 (
4642
        .clk(rx_pcs_clk_c12),
4643
        .reset_in(rx_digitalreset_sqcnr_12),
4644
        .reset_out(reset_rx_pcs_clk_c12_int)
4645
        );
4646
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_12
4647
          (
4648
            .clk(rx_pcs_clk_c12),
4649
            .reset(reset_rx_pcs_clk_c12_int),
4650
            //input (from alt2gxb)
4651
            .alt_dataout(rx_frame_12),
4652
            .alt_sync(rx_syncstatus[12]),
4653
            .alt_disperr(rx_disp_err[12]),
4654
            .alt_ctrldetect(rx_kchar_12),
4655
            .alt_errdetect(rx_char_err_gx[12]),
4656
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[12]),
4657
            .alt_rmfifodatainserted(rx_rmfifodatainserted[12]),
4658
            .alt_runlengthviolation(rx_runlengthviolation[12]),
4659
            .alt_patterndetect(rx_patterndetect[12]),
4660
            .alt_runningdisp(rx_runningdisp[12]),
4661
 
4662
            //output (to PCS)
4663
            .altpcs_dataout(pcs_rx_frame_12),
4664
            .altpcs_sync(link_status[12]),
4665
            .altpcs_disperr(led_disp_err_12),
4666
            .altpcs_ctrldetect(pcs_rx_kchar_12),
4667
            .altpcs_errdetect(led_char_err_gx[12]),
4668
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[12]),
4669
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[12]),
4670
            .altpcs_carrierdetect(pcs_rx_carrierdetected[12])
4671
           ) ;
4672
                defparam
4673
                the_altera_tse_gxb_aligned_rxsync_12.DEVICE_FAMILY = DEVICE_FAMILY;
4674
 
4675
        // Altgxb in GIGE mode
4676
        // --------------------
4677
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_12
4678
          (
4679
            .cal_blk_clk (gxb_cal_blk_clk),
4680
            .gxb_powerdown (gxb_pwrdn_in_sig[12]),
4681
            .pll_inclk (ref_clk),
4682
            .rx_recovclkout(rx_recovclkout_12),
4683
            .reconfig_clk(reconfig_clk_12),
4684
            .reconfig_togxb(reconfig_togxb_12),
4685
            .reconfig_fromgxb(reconfig_fromgxb_12),
4686
            .rx_analogreset (rx_analogreset_sqcnr_12),
4687
            .rx_cruclk (ref_clk),
4688
            .rx_ctrldetect (rx_kchar_12),
4689
            .rx_clkout (rx_pcs_clk_c12),
4690
            .rx_datain (rxp_12),
4691
            .rx_dataout (rx_frame_12),
4692
            .rx_digitalreset (rx_digitalreset_sqcnr_12),
4693
            .rx_disperr (rx_disp_err[12]),
4694
            .rx_errdetect (rx_char_err_gx[12]),
4695
            .rx_patterndetect (rx_patterndetect[12]),
4696
            .rx_rlv (rx_runlengthviolation[12]),
4697
            .rx_seriallpbken (sd_loopback_12),
4698
            .rx_syncstatus (rx_syncstatus[12]),
4699
            .tx_clkout (tx_pcs_clk_c12),
4700
            .tx_ctrlenable (tx_kchar_12),
4701
            .tx_datain (tx_frame_12),
4702
            .rx_freqlocked (rx_freqlocked_12),
4703
            .tx_dataout (txp_12),
4704
            .tx_digitalreset (tx_digitalreset_sqcnr_12),
4705
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[12]),
4706
            .rx_rmfifodatainserted(rx_rmfifodatainserted[12]),
4707
            .rx_runningdisp(rx_runningdisp[12]),
4708
            .pll_powerdown(gxb_pwrdn_in_sig[12]),
4709
            .pll_locked(pll_locked_12)
4710
          );
4711
   defparam
4712
        the_altera_tse_gxb_gige_inst_12.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
4713
        the_altera_tse_gxb_gige_inst_12.ENABLE_SGMII = ENABLE_SGMII,
4714
        the_altera_tse_gxb_gige_inst_12.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 48,
4715
        the_altera_tse_gxb_gige_inst_12.DEVICE_FAMILY = DEVICE_FAMILY;
4716
    end
4717
else
4718
    begin
4719
    assign reconfig_fromgxb_12 = {17{1'b0}};
4720
    assign led_char_err_gx[12] = 1'b0;
4721
    assign link_status[12] = 1'b0;
4722
    assign led_disp_err_12 = 1'b0;
4723
    assign txp_12 = 1'b0;
4724
        assign pcs_clk_c12 = 1'b0;
4725
    end
4726
endgenerate
4727
 
4728
 
4729
 
4730
// #######################################################################
4731
// ###############       CHANNEL 13 LOGIC/COMPONENTS       ###############
4732
// #######################################################################
4733
 
4734
// Export powerdown signal or wire it internally
4735
// ---------------------------------------------
4736
reg data_in_13,gxb_pwrdn_in_sig_clk_13;
4737
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 13)
4738
    begin
4739
        always @(posedge clk or posedge gxb_pwrdn_in_13)
4740
        begin
4741
          if (gxb_pwrdn_in_13 == 1) begin
4742
              data_in_13 <= 1;
4743
              gxb_pwrdn_in_sig_clk_13 <= 1;
4744
          end else begin
4745
            data_in_13 <= 1'b0;
4746
            gxb_pwrdn_in_sig_clk_13 <= data_in_13;
4747
          end
4748
        end
4749
        assign gxb_pwrdn_in_sig[13] = gxb_pwrdn_in_13;
4750
        assign pcs_pwrdn_out_13 = pcs_pwrdn_out_sig[13];
4751
    end
4752
else
4753
    begin
4754
        assign gxb_pwrdn_in_sig[13] = pcs_pwrdn_out_sig[13];
4755
                assign pcs_pwrdn_out_13 = 1'b0;
4756
        always@(*) begin
4757
            gxb_pwrdn_in_sig_clk_13 = gxb_pwrdn_in_sig[13];
4758
        end
4759
    end
4760
endgenerate
4761
 
4762
generate if (MAX_CHANNELS > 13)
4763
    begin
4764
        wire    locked_signal_13;
4765
    // Reset logic used to reset the PMA blocks
4766
    // ----------------------------------------  
4767
    //  ALTGX Reset Sequencer
4768
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_13(
4769
            // User inputs and outputs
4770
            .clock(clk),
4771
            .reset_all(reset|gxb_pwrdn_in_sig_clk_13),
4772
            //.reset_tx_digital(reset_ref_clk),
4773
            //.reset_rx_digital(reset_ref_clk),
4774
            .powerdown_all(reset_posedge),
4775
            .tx_ready(), // output
4776
            .rx_ready(), // output
4777
            // I/O transceiver and status
4778
            .pll_powerdown(pll_powerdown_sqcnr_13),// output
4779
            .tx_digitalreset(tx_digitalreset_sqcnr_13),// output
4780
            .rx_analogreset(rx_analogreset_sqcnr_13),// output
4781
            .rx_digitalreset(rx_digitalreset_sqcnr_13),// output
4782
            .gxb_powerdown(gxb_powerdown_sqcnr_13),// output
4783
            .pll_is_locked(locked_signal_13),
4784
            .rx_is_lockedtodata(rx_freqlocked_13),
4785
            .manual_mode(1'b0),
4786
            .rx_oc_busy(reconfig_busy_13)
4787
        );
4788
        assign locked_signal_13 = (reset? 1'b0: pll_locked_13);
4789
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
4790
    // ----------------------------------------------------------------------------------- 
4791
 
4792
 
4793
        // Aligned Rx_sync from gxb
4794
        // -------------------------------
4795
        altera_tse_reset_synchronizer ch_13_reset_sync_0 (
4796
        .clk(rx_pcs_clk_c13),
4797
        .reset_in(rx_digitalreset_sqcnr_13),
4798
        .reset_out(reset_rx_pcs_clk_c13_int)
4799
        );
4800
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_13
4801
          (
4802
            .clk(rx_pcs_clk_c13),
4803
            .reset(reset_rx_pcs_clk_c13_int),
4804
            //input (from alt2gxb)
4805
            .alt_dataout(rx_frame_13),
4806
            .alt_sync(rx_syncstatus[13]),
4807
            .alt_disperr(rx_disp_err[13]),
4808
            .alt_ctrldetect(rx_kchar_13),
4809
            .alt_errdetect(rx_char_err_gx[13]),
4810
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[13]),
4811
            .alt_rmfifodatainserted(rx_rmfifodatainserted[13]),
4812
            .alt_runlengthviolation(rx_runlengthviolation[13]),
4813
            .alt_patterndetect(rx_patterndetect[13]),
4814
            .alt_runningdisp(rx_runningdisp[13]),
4815
 
4816
            //output (to PCS)
4817
            .altpcs_dataout(pcs_rx_frame_13),
4818
            .altpcs_sync(link_status[13]),
4819
            .altpcs_disperr(led_disp_err_13),
4820
            .altpcs_ctrldetect(pcs_rx_kchar_13),
4821
            .altpcs_errdetect(led_char_err_gx[13]),
4822
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[13]),
4823
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[13]),
4824
            .altpcs_carrierdetect(pcs_rx_carrierdetected[13])
4825
           ) ;
4826
                defparam
4827
                the_altera_tse_gxb_aligned_rxsync_13.DEVICE_FAMILY = DEVICE_FAMILY;
4828
 
4829
        // Altgxb in GIGE mode
4830
        // --------------------
4831
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_13
4832
          (
4833
            .cal_blk_clk (gxb_cal_blk_clk),
4834
            .gxb_powerdown (gxb_pwrdn_in_sig[13]),
4835
            .pll_inclk (ref_clk),
4836
            .rx_recovclkout(rx_recovclkout_13),
4837
            .reconfig_clk(reconfig_clk_13),
4838
            .reconfig_togxb(reconfig_togxb_13),
4839
            .reconfig_fromgxb(reconfig_fromgxb_13),
4840
            .rx_analogreset (rx_analogreset_sqcnr_13),
4841
            .rx_cruclk (ref_clk),
4842
            .rx_ctrldetect (rx_kchar_13),
4843
            .rx_clkout (rx_pcs_clk_c13),
4844
            .rx_datain (rxp_13),
4845
            .rx_dataout (rx_frame_13),
4846
            .rx_digitalreset (rx_digitalreset_sqcnr_13),
4847
            .rx_disperr (rx_disp_err[13]),
4848
            .rx_errdetect (rx_char_err_gx[13]),
4849
            .rx_patterndetect (rx_patterndetect[13]),
4850
            .rx_rlv (rx_runlengthviolation[13]),
4851
            .rx_seriallpbken (sd_loopback_13),
4852
            .rx_syncstatus (rx_syncstatus[13]),
4853
            .tx_clkout (tx_pcs_clk_c13),
4854
            .tx_ctrlenable (tx_kchar_13),
4855
            .tx_datain (tx_frame_13),
4856
            .rx_freqlocked (rx_freqlocked_13),
4857
            .tx_dataout (txp_13),
4858
            .tx_digitalreset (tx_digitalreset_sqcnr_13),
4859
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[13]),
4860
            .rx_rmfifodatainserted(rx_rmfifodatainserted[13]),
4861
            .rx_runningdisp(rx_runningdisp[13]),
4862
            .pll_powerdown(gxb_pwrdn_in_sig[13]),
4863
            .pll_locked(pll_locked_13)
4864
          );
4865
   defparam
4866
        the_altera_tse_gxb_gige_inst_13.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
4867
        the_altera_tse_gxb_gige_inst_13.ENABLE_SGMII = ENABLE_SGMII,
4868
        the_altera_tse_gxb_gige_inst_13.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 52,
4869
        the_altera_tse_gxb_gige_inst_13.DEVICE_FAMILY = DEVICE_FAMILY;
4870
    end
4871
else
4872
    begin
4873
    assign reconfig_fromgxb_13 = {17{1'b0}};
4874
    assign led_char_err_gx[13] = 1'b0;
4875
    assign link_status[13] = 1'b0;
4876
    assign led_disp_err_13 = 1'b0;
4877
    assign txp_13 = 1'b0;
4878
        assign pcs_clk_c13 = 1'b0;
4879
    end
4880
endgenerate
4881
 
4882
 
4883
 
4884
// #######################################################################
4885
// ###############       CHANNEL 14 LOGIC/COMPONENTS       ###############
4886
// #######################################################################
4887
 
4888
// Export powerdown signal or wire it internally
4889
// ---------------------------------------------
4890
reg data_in_14,gxb_pwrdn_in_sig_clk_14;
4891
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 14)
4892
    begin
4893
        always @(posedge clk or posedge gxb_pwrdn_in_14)
4894
        begin
4895
          if (gxb_pwrdn_in_14 == 1) begin
4896
              data_in_14 <= 1;
4897
              gxb_pwrdn_in_sig_clk_14 <= 1;
4898
          end else begin
4899
            data_in_14 <= 1'b0;
4900
            gxb_pwrdn_in_sig_clk_14 <= data_in_14;
4901
          end
4902
        end
4903
        assign gxb_pwrdn_in_sig[14] = gxb_pwrdn_in_14;
4904
        assign pcs_pwrdn_out_14 = pcs_pwrdn_out_sig[14];
4905
    end
4906
else
4907
    begin
4908
        assign gxb_pwrdn_in_sig[14] = pcs_pwrdn_out_sig[14];
4909
                assign pcs_pwrdn_out_14 = 1'b0;
4910
        always@(*) begin
4911
            gxb_pwrdn_in_sig_clk_14 = gxb_pwrdn_in_sig[14];
4912
        end
4913
    end
4914
endgenerate
4915
 
4916
generate if (MAX_CHANNELS > 14)
4917
    begin
4918
        wire    locked_signal_14;
4919
    // Reset logic used to reset the PMA blocks
4920
    // ----------------------------------------  
4921
    //  ALTGX Reset Sequencer
4922
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_14(
4923
            // User inputs and outputs
4924
            .clock(clk),
4925
            .reset_all(reset|gxb_pwrdn_in_sig_clk_14),
4926
            //.reset_tx_digital(reset_ref_clk),
4927
            //.reset_rx_digital(reset_ref_clk),
4928
            .powerdown_all(reset_posedge),
4929
            .tx_ready(), // output
4930
            .rx_ready(), // output
4931
            // I/O transceiver and status
4932
            .pll_powerdown(pll_powerdown_sqcnr_14),// output
4933
            .tx_digitalreset(tx_digitalreset_sqcnr_14),// output
4934
            .rx_analogreset(rx_analogreset_sqcnr_14),// output
4935
            .rx_digitalreset(rx_digitalreset_sqcnr_14),// output
4936
            .gxb_powerdown(gxb_powerdown_sqcnr_14),// output
4937
            .pll_is_locked(locked_signal_14),
4938
            .rx_is_lockedtodata(rx_freqlocked_14),
4939
            .manual_mode(1'b0),
4940
            .rx_oc_busy(reconfig_busy_14)
4941
        );
4942
        assign locked_signal_14 = (reset? 1'b0: pll_locked_14);
4943
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
4944
    // ----------------------------------------------------------------------------------- 
4945
 
4946
 
4947
        // Aligned Rx_sync from gxb
4948
        // -------------------------------
4949
        altera_tse_reset_synchronizer ch_14_reset_sync_0 (
4950
        .clk(rx_pcs_clk_c14),
4951
        .reset_in(rx_digitalreset_sqcnr_14),
4952
        .reset_out(reset_rx_pcs_clk_c14_int)
4953
        );
4954
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_14
4955
          (
4956
            .clk(rx_pcs_clk_c14),
4957
            .reset(reset_rx_pcs_clk_c14_int),
4958
            //input (from alt2gxb)
4959
            .alt_dataout(rx_frame_14),
4960
            .alt_sync(rx_syncstatus[14]),
4961
            .alt_disperr(rx_disp_err[14]),
4962
            .alt_ctrldetect(rx_kchar_14),
4963
            .alt_errdetect(rx_char_err_gx[14]),
4964
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[14]),
4965
            .alt_rmfifodatainserted(rx_rmfifodatainserted[14]),
4966
            .alt_runlengthviolation(rx_runlengthviolation[14]),
4967
            .alt_patterndetect(rx_patterndetect[14]),
4968
            .alt_runningdisp(rx_runningdisp[14]),
4969
 
4970
            //output (to PCS)
4971
            .altpcs_dataout(pcs_rx_frame_14),
4972
            .altpcs_sync(link_status[14]),
4973
            .altpcs_disperr(led_disp_err_14),
4974
            .altpcs_ctrldetect(pcs_rx_kchar_14),
4975
            .altpcs_errdetect(led_char_err_gx[14]),
4976
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[14]),
4977
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[14]),
4978
            .altpcs_carrierdetect(pcs_rx_carrierdetected[14])
4979
           ) ;
4980
                defparam
4981
                the_altera_tse_gxb_aligned_rxsync_14.DEVICE_FAMILY = DEVICE_FAMILY;
4982
 
4983
        // Altgxb in GIGE mode
4984
        // --------------------
4985
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_14
4986
          (
4987
            .cal_blk_clk (gxb_cal_blk_clk),
4988
            .gxb_powerdown (gxb_pwrdn_in_sig[14]),
4989
            .pll_inclk (ref_clk),
4990
            .rx_recovclkout(rx_recovclkout_14),
4991
            .reconfig_clk(reconfig_clk_14),
4992
            .reconfig_togxb(reconfig_togxb_14),
4993
            .reconfig_fromgxb(reconfig_fromgxb_14),
4994
            .rx_analogreset (rx_analogreset_sqcnr_14),
4995
            .rx_cruclk (ref_clk),
4996
            .rx_ctrldetect (rx_kchar_14),
4997
            .rx_clkout (rx_pcs_clk_c14),
4998
            .rx_datain (rxp_14),
4999
            .rx_dataout (rx_frame_14),
5000
            .rx_digitalreset (rx_digitalreset_sqcnr_14),
5001
            .rx_disperr (rx_disp_err[14]),
5002
            .rx_errdetect (rx_char_err_gx[14]),
5003
            .rx_patterndetect (rx_patterndetect[14]),
5004
            .rx_rlv (rx_runlengthviolation[14]),
5005
            .rx_seriallpbken (sd_loopback_14),
5006
            .rx_syncstatus (rx_syncstatus[14]),
5007
            .tx_clkout (tx_pcs_clk_c14),
5008
            .tx_ctrlenable (tx_kchar_14),
5009
            .tx_datain (tx_frame_14),
5010
            .rx_freqlocked (rx_freqlocked_14),
5011
            .tx_dataout (txp_14),
5012
            .tx_digitalreset (tx_digitalreset_sqcnr_14),
5013
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[14]),
5014
            .rx_rmfifodatainserted(rx_rmfifodatainserted[14]),
5015
            .rx_runningdisp(rx_runningdisp[14]),
5016
            .pll_powerdown(gxb_pwrdn_in_sig[14]),
5017
            .pll_locked(pll_locked_14)
5018
          );
5019
   defparam
5020
        the_altera_tse_gxb_gige_inst_14.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
5021
        the_altera_tse_gxb_gige_inst_14.ENABLE_SGMII = ENABLE_SGMII,
5022
        the_altera_tse_gxb_gige_inst_14.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 56,
5023
        the_altera_tse_gxb_gige_inst_14.DEVICE_FAMILY = DEVICE_FAMILY;
5024
    end
5025
else
5026
    begin
5027
    assign reconfig_fromgxb_14 = {17{1'b0}};
5028
    assign led_char_err_gx[14] = 1'b0;
5029
    assign link_status[14] = 1'b0;
5030
    assign led_disp_err_14 = 1'b0;
5031
    assign txp_14 = 1'b0;
5032
        assign pcs_clk_c14 = 1'b0;
5033
    end
5034
endgenerate
5035
 
5036
 
5037
 
5038
// #######################################################################
5039
// ###############       CHANNEL 15 LOGIC/COMPONENTS       ###############
5040
// #######################################################################
5041
 
5042
// Export powerdown signal or wire it internally
5043
// ---------------------------------------------
5044
reg data_in_15,gxb_pwrdn_in_sig_clk_15;
5045
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 15)
5046
    begin
5047
        always @(posedge clk or posedge gxb_pwrdn_in_15)
5048
        begin
5049
          if (gxb_pwrdn_in_15 == 1) begin
5050
              data_in_15 <= 1;
5051
              gxb_pwrdn_in_sig_clk_15 <= 1;
5052
          end else begin
5053
            data_in_15 <= 1'b0;
5054
            gxb_pwrdn_in_sig_clk_15 <= data_in_15;
5055
          end
5056
        end
5057
        assign gxb_pwrdn_in_sig[15] = gxb_pwrdn_in_15;
5058
        assign pcs_pwrdn_out_15 = pcs_pwrdn_out_sig[15];
5059
    end
5060
else
5061
    begin
5062
        assign gxb_pwrdn_in_sig[15] = pcs_pwrdn_out_sig[15];
5063
                assign pcs_pwrdn_out_15 = 1'b0;
5064
        always@(*) begin
5065
            gxb_pwrdn_in_sig_clk_15 = gxb_pwrdn_in_sig[15];
5066
        end
5067
    end
5068
endgenerate
5069
 
5070
generate if (MAX_CHANNELS > 15)
5071
    begin
5072
        wire    locked_signal_15;
5073
    // Reset logic used to reset the PMA blocks
5074
    // ----------------------------------------  
5075
    //  ALTGX Reset Sequencer
5076
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_15(
5077
            // User inputs and outputs
5078
            .clock(clk),
5079
            .reset_all(reset|gxb_pwrdn_in_sig_clk_15),
5080
            //.reset_tx_digital(reset_ref_clk),
5081
            //.reset_rx_digital(reset_ref_clk),
5082
            .powerdown_all(reset_posedge),
5083
            .tx_ready(), // output
5084
            .rx_ready(), // output
5085
            // I/O transceiver and status
5086
            .pll_powerdown(pll_powerdown_sqcnr_15),// output
5087
            .tx_digitalreset(tx_digitalreset_sqcnr_15),// output
5088
            .rx_analogreset(rx_analogreset_sqcnr_15),// output
5089
            .rx_digitalreset(rx_digitalreset_sqcnr_15),// output
5090
            .gxb_powerdown(gxb_powerdown_sqcnr_15),// output
5091
            .pll_is_locked(locked_signal_15),
5092
            .rx_is_lockedtodata(rx_freqlocked_15),
5093
            .manual_mode(1'b0),
5094
            .rx_oc_busy(reconfig_busy_15)
5095
        );
5096
        assign locked_signal_15 = (reset? 1'b0: pll_locked_15);
5097
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
5098
    // ----------------------------------------------------------------------------------- 
5099
 
5100
 
5101
        // Aligned Rx_sync from gxb
5102
        // -------------------------------
5103
        altera_tse_reset_synchronizer ch_15_reset_sync_0 (
5104
        .clk(rx_pcs_clk_c15),
5105
        .reset_in(rx_digitalreset_sqcnr_15),
5106
        .reset_out(reset_rx_pcs_clk_c15_int)
5107
        );
5108
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_15
5109
          (
5110
            .clk(rx_pcs_clk_c15),
5111
            .reset(reset_rx_pcs_clk_c15_int),
5112
            //input (from alt2gxb)
5113
            .alt_dataout(rx_frame_15),
5114
            .alt_sync(rx_syncstatus[15]),
5115
            .alt_disperr(rx_disp_err[15]),
5116
            .alt_ctrldetect(rx_kchar_15),
5117
            .alt_errdetect(rx_char_err_gx[15]),
5118
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[15]),
5119
            .alt_rmfifodatainserted(rx_rmfifodatainserted[15]),
5120
            .alt_runlengthviolation(rx_runlengthviolation[15]),
5121
            .alt_patterndetect(rx_patterndetect[15]),
5122
            .alt_runningdisp(rx_runningdisp[15]),
5123
 
5124
            //output (to PCS)
5125
            .altpcs_dataout(pcs_rx_frame_15),
5126
            .altpcs_sync(link_status[15]),
5127
            .altpcs_disperr(led_disp_err_15),
5128
            .altpcs_ctrldetect(pcs_rx_kchar_15),
5129
            .altpcs_errdetect(led_char_err_gx[15]),
5130
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[15]),
5131
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[15]),
5132
            .altpcs_carrierdetect(pcs_rx_carrierdetected[15])
5133
           ) ;
5134
                defparam
5135
                the_altera_tse_gxb_aligned_rxsync_15.DEVICE_FAMILY = DEVICE_FAMILY;
5136
 
5137
        // Altgxb in GIGE mode
5138
        // --------------------
5139
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_15
5140
          (
5141
            .cal_blk_clk (gxb_cal_blk_clk),
5142
            .gxb_powerdown (gxb_pwrdn_in_sig[15]),
5143
            .pll_inclk (ref_clk),
5144
            .rx_recovclkout(rx_recovclkout_15),
5145
            .reconfig_clk(reconfig_clk_15),
5146
            .reconfig_togxb(reconfig_togxb_15),
5147
            .reconfig_fromgxb(reconfig_fromgxb_15),
5148
            .rx_analogreset (rx_analogreset_sqcnr_15),
5149
            .rx_cruclk (ref_clk),
5150
            .rx_ctrldetect (rx_kchar_15),
5151
            .rx_clkout (rx_pcs_clk_c15),
5152
            .rx_datain (rxp_15),
5153
            .rx_dataout (rx_frame_15),
5154
            .rx_digitalreset (rx_digitalreset_sqcnr_15),
5155
            .rx_disperr (rx_disp_err[15]),
5156
            .rx_errdetect (rx_char_err_gx[15]),
5157
            .rx_patterndetect (rx_patterndetect[15]),
5158
            .rx_rlv (rx_runlengthviolation[15]),
5159
            .rx_seriallpbken (sd_loopback_15),
5160
            .rx_syncstatus (rx_syncstatus[15]),
5161
            .tx_clkout (tx_pcs_clk_c15),
5162
            .tx_ctrlenable (tx_kchar_15),
5163
            .tx_datain (tx_frame_15),
5164
            .rx_freqlocked (rx_freqlocked_15),
5165
            .tx_dataout (txp_15),
5166
            .tx_digitalreset (tx_digitalreset_sqcnr_15),
5167
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[15]),
5168
            .rx_rmfifodatainserted(rx_rmfifodatainserted[15]),
5169
            .rx_runningdisp(rx_runningdisp[15]),
5170
            .pll_powerdown(gxb_pwrdn_in_sig[15]),
5171
            .pll_locked(pll_locked_15)
5172
          );
5173
   defparam
5174
        the_altera_tse_gxb_gige_inst_15.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
5175
        the_altera_tse_gxb_gige_inst_15.ENABLE_SGMII = ENABLE_SGMII,
5176
        the_altera_tse_gxb_gige_inst_15.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 60,
5177
        the_altera_tse_gxb_gige_inst_15.DEVICE_FAMILY = DEVICE_FAMILY;
5178
    end
5179
else
5180
    begin
5181
    assign reconfig_fromgxb_15 = {17{1'b0}};
5182
    assign led_char_err_gx[15] = 1'b0;
5183
    assign link_status[15] = 1'b0;
5184
    assign led_disp_err_15 = 1'b0;
5185
    assign txp_15 = 1'b0;
5186
        assign pcs_clk_c15 = 1'b0;
5187
    end
5188
endgenerate
5189
 
5190
 
5191
 
5192
// #######################################################################
5193
// ###############       CHANNEL 16 LOGIC/COMPONENTS       ###############
5194
// #######################################################################
5195
 
5196
// Export powerdown signal or wire it internally
5197
// ---------------------------------------------
5198
reg data_in_16,gxb_pwrdn_in_sig_clk_16;
5199
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 16)
5200
    begin
5201
        always @(posedge clk or posedge gxb_pwrdn_in_16)
5202
        begin
5203
          if (gxb_pwrdn_in_16 == 1) begin
5204
              data_in_16 <= 1;
5205
              gxb_pwrdn_in_sig_clk_16 <= 1;
5206
          end else begin
5207
            data_in_16 <= 1'b0;
5208
            gxb_pwrdn_in_sig_clk_16 <= data_in_16;
5209
          end
5210
        end
5211
        assign gxb_pwrdn_in_sig[16] = gxb_pwrdn_in_16;
5212
        assign pcs_pwrdn_out_16 = pcs_pwrdn_out_sig[16];
5213
    end
5214
else
5215
    begin
5216
        assign gxb_pwrdn_in_sig[16] = pcs_pwrdn_out_sig[16];
5217
                assign pcs_pwrdn_out_16 = 1'b0;
5218
        always@(*) begin
5219
            gxb_pwrdn_in_sig_clk_16 = gxb_pwrdn_in_sig[16];
5220
        end
5221
    end
5222
endgenerate
5223
 
5224
generate if (MAX_CHANNELS > 16)
5225
    begin
5226
        wire    locked_signal_16;
5227
    // Reset logic used to reset the PMA blocks
5228
    // ----------------------------------------  
5229
    //  ALTGX Reset Sequencer
5230
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_16(
5231
            // User inputs and outputs
5232
            .clock(clk),
5233
            .reset_all(reset|gxb_pwrdn_in_sig_clk_16),
5234
            //.reset_tx_digital(reset_ref_clk),
5235
            //.reset_rx_digital(reset_ref_clk),
5236
            .powerdown_all(reset_posedge),
5237
            .tx_ready(), // output
5238
            .rx_ready(), // output
5239
            // I/O transceiver and status
5240
            .pll_powerdown(pll_powerdown_sqcnr_16),// output
5241
            .tx_digitalreset(tx_digitalreset_sqcnr_16),// output
5242
            .rx_analogreset(rx_analogreset_sqcnr_16),// output
5243
            .rx_digitalreset(rx_digitalreset_sqcnr_16),// output
5244
            .gxb_powerdown(gxb_powerdown_sqcnr_16),// output
5245
            .pll_is_locked(locked_signal_16),
5246
            .rx_is_lockedtodata(rx_freqlocked_16),
5247
            .manual_mode(1'b0),
5248
            .rx_oc_busy(reconfig_busy_16)
5249
        );
5250
        assign locked_signal_16 = (reset? 1'b0: pll_locked_16);
5251
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
5252
    // ----------------------------------------------------------------------------------- 
5253
 
5254
 
5255
        // Aligned Rx_sync from gxb
5256
        // -------------------------------
5257
        altera_tse_reset_synchronizer ch_16_reset_sync_0 (
5258
        .clk(rx_pcs_clk_c16),
5259
        .reset_in(rx_digitalreset_sqcnr_16),
5260
        .reset_out(reset_rx_pcs_clk_c16_int)
5261
        );
5262
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_16
5263
          (
5264
            .clk(rx_pcs_clk_c16),
5265
            .reset(reset_rx_pcs_clk_c16_int),
5266
            //input (from alt2gxb)
5267
            .alt_dataout(rx_frame_16),
5268
            .alt_sync(rx_syncstatus[16]),
5269
            .alt_disperr(rx_disp_err[16]),
5270
            .alt_ctrldetect(rx_kchar_16),
5271
            .alt_errdetect(rx_char_err_gx[16]),
5272
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[16]),
5273
            .alt_rmfifodatainserted(rx_rmfifodatainserted[16]),
5274
            .alt_runlengthviolation(rx_runlengthviolation[16]),
5275
            .alt_patterndetect(rx_patterndetect[16]),
5276
            .alt_runningdisp(rx_runningdisp[16]),
5277
 
5278
            //output (to PCS)
5279
            .altpcs_dataout(pcs_rx_frame_16),
5280
            .altpcs_sync(link_status[16]),
5281
            .altpcs_disperr(led_disp_err_16),
5282
            .altpcs_ctrldetect(pcs_rx_kchar_16),
5283
            .altpcs_errdetect(led_char_err_gx[16]),
5284
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[16]),
5285
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[16]),
5286
            .altpcs_carrierdetect(pcs_rx_carrierdetected[16])
5287
           ) ;
5288
                defparam
5289
                the_altera_tse_gxb_aligned_rxsync_16.DEVICE_FAMILY = DEVICE_FAMILY;
5290
 
5291
        // Altgxb in GIGE mode
5292
        // --------------------
5293
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_16
5294
          (
5295
            .cal_blk_clk (gxb_cal_blk_clk),
5296
            .gxb_powerdown (gxb_pwrdn_in_sig[16]),
5297
            .pll_inclk (ref_clk),
5298
            .rx_recovclkout(rx_recovclkout_16),
5299
            .reconfig_clk(reconfig_clk_16),
5300
            .reconfig_togxb(reconfig_togxb_16),
5301
            .reconfig_fromgxb(reconfig_fromgxb_16),
5302
            .rx_analogreset (rx_analogreset_sqcnr_16),
5303
            .rx_cruclk (ref_clk),
5304
            .rx_ctrldetect (rx_kchar_16),
5305
            .rx_clkout (rx_pcs_clk_c16),
5306
            .rx_datain (rxp_16),
5307
            .rx_dataout (rx_frame_16),
5308
            .rx_digitalreset (rx_digitalreset_sqcnr_16),
5309
            .rx_disperr (rx_disp_err[16]),
5310
            .rx_errdetect (rx_char_err_gx[16]),
5311
            .rx_patterndetect (rx_patterndetect[16]),
5312
            .rx_rlv (rx_runlengthviolation[16]),
5313
            .rx_seriallpbken (sd_loopback_16),
5314
            .rx_syncstatus (rx_syncstatus[16]),
5315
            .tx_clkout (tx_pcs_clk_c16),
5316
            .tx_ctrlenable (tx_kchar_16),
5317
            .tx_datain (tx_frame_16),
5318
            .rx_freqlocked (rx_freqlocked_16),
5319
            .tx_dataout (txp_16),
5320
            .tx_digitalreset (tx_digitalreset_sqcnr_16),
5321
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[16]),
5322
            .rx_rmfifodatainserted(rx_rmfifodatainserted[16]),
5323
            .rx_runningdisp(rx_runningdisp[16]),
5324
            .pll_powerdown(gxb_pwrdn_in_sig[16]),
5325
            .pll_locked(pll_locked_16)
5326
          );
5327
   defparam
5328
        the_altera_tse_gxb_gige_inst_16.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
5329
        the_altera_tse_gxb_gige_inst_16.ENABLE_SGMII = ENABLE_SGMII,
5330
        the_altera_tse_gxb_gige_inst_16.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 64,
5331
        the_altera_tse_gxb_gige_inst_16.DEVICE_FAMILY = DEVICE_FAMILY;
5332
    end
5333
else
5334
    begin
5335
    assign reconfig_fromgxb_16 = {17{1'b0}};
5336
    assign led_char_err_gx[16] = 1'b0;
5337
    assign link_status[16] = 1'b0;
5338
    assign led_disp_err_16 = 1'b0;
5339
    assign txp_16 = 1'b0;
5340
        assign pcs_clk_c16 = 1'b0;
5341
    end
5342
endgenerate
5343
 
5344
 
5345
 
5346
// #######################################################################
5347
// ###############       CHANNEL 17 LOGIC/COMPONENTS       ###############
5348
// #######################################################################
5349
 
5350
// Export powerdown signal or wire it internally
5351
// ---------------------------------------------
5352
reg data_in_17,gxb_pwrdn_in_sig_clk_17;
5353
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 17)
5354
    begin
5355
        always @(posedge clk or posedge gxb_pwrdn_in_17)
5356
        begin
5357
          if (gxb_pwrdn_in_17 == 1) begin
5358
              data_in_17 <= 1;
5359
              gxb_pwrdn_in_sig_clk_17 <= 1;
5360
          end else begin
5361
            data_in_17 <= 1'b0;
5362
            gxb_pwrdn_in_sig_clk_17 <= data_in_17;
5363
          end
5364
        end
5365
        assign gxb_pwrdn_in_sig[17] = gxb_pwrdn_in_17;
5366
        assign pcs_pwrdn_out_17 = pcs_pwrdn_out_sig[17];
5367
    end
5368
else
5369
    begin
5370
        assign gxb_pwrdn_in_sig[17] = pcs_pwrdn_out_sig[17];
5371
                assign pcs_pwrdn_out_17 = 1'b0;
5372
        always@(*) begin
5373
            gxb_pwrdn_in_sig_clk_17 = gxb_pwrdn_in_sig[17];
5374
        end
5375
    end
5376
endgenerate
5377
 
5378
generate if (MAX_CHANNELS > 17)
5379
    begin
5380
        wire    locked_signal_17;
5381
    // Reset logic used to reset the PMA blocks
5382
    // ----------------------------------------  
5383
    //  ALTGX Reset Sequencer
5384
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_17(
5385
            // User inputs and outputs
5386
            .clock(clk),
5387
            .reset_all(reset|gxb_pwrdn_in_sig_clk_17),
5388
            //.reset_tx_digital(reset_ref_clk),
5389
            //.reset_rx_digital(reset_ref_clk),
5390
            .powerdown_all(reset_posedge),
5391
            .tx_ready(), // output
5392
            .rx_ready(), // output
5393
            // I/O transceiver and status
5394
            .pll_powerdown(pll_powerdown_sqcnr_17),// output
5395
            .tx_digitalreset(tx_digitalreset_sqcnr_17),// output
5396
            .rx_analogreset(rx_analogreset_sqcnr_17),// output
5397
            .rx_digitalreset(rx_digitalreset_sqcnr_17),// output
5398
            .gxb_powerdown(gxb_powerdown_sqcnr_17),// output
5399
            .pll_is_locked(locked_signal_17),
5400
            .rx_is_lockedtodata(rx_freqlocked_17),
5401
            .manual_mode(1'b0),
5402
            .rx_oc_busy(reconfig_busy_17)
5403
        );
5404
        assign locked_signal_17 = (reset? 1'b0: pll_locked_17);
5405
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
5406
    // ----------------------------------------------------------------------------------- 
5407
 
5408
 
5409
        // Aligned Rx_sync from gxb
5410
        // -------------------------------
5411
        altera_tse_reset_synchronizer ch_17_reset_sync_0 (
5412
        .clk(rx_pcs_clk_c17),
5413
        .reset_in(rx_digitalreset_sqcnr_17),
5414
        .reset_out(reset_rx_pcs_clk_c17_int)
5415
        );
5416
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_17
5417
          (
5418
            .clk(rx_pcs_clk_c17),
5419
            .reset(reset_rx_pcs_clk_c17_int),
5420
            //input (from alt2gxb)
5421
            .alt_dataout(rx_frame_17),
5422
            .alt_sync(rx_syncstatus[17]),
5423
            .alt_disperr(rx_disp_err[17]),
5424
            .alt_ctrldetect(rx_kchar_17),
5425
            .alt_errdetect(rx_char_err_gx[17]),
5426
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[17]),
5427
            .alt_rmfifodatainserted(rx_rmfifodatainserted[17]),
5428
            .alt_runlengthviolation(rx_runlengthviolation[17]),
5429
            .alt_patterndetect(rx_patterndetect[17]),
5430
            .alt_runningdisp(rx_runningdisp[17]),
5431
 
5432
            //output (to PCS)
5433
            .altpcs_dataout(pcs_rx_frame_17),
5434
            .altpcs_sync(link_status[17]),
5435
            .altpcs_disperr(led_disp_err_17),
5436
            .altpcs_ctrldetect(pcs_rx_kchar_17),
5437
            .altpcs_errdetect(led_char_err_gx[17]),
5438
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[17]),
5439
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[17]),
5440
            .altpcs_carrierdetect(pcs_rx_carrierdetected[17])
5441
           ) ;
5442
                defparam
5443
                the_altera_tse_gxb_aligned_rxsync_17.DEVICE_FAMILY = DEVICE_FAMILY;
5444
 
5445
        // Altgxb in GIGE mode
5446
        // --------------------
5447
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_17
5448
          (
5449
            .cal_blk_clk (gxb_cal_blk_clk),
5450
            .gxb_powerdown (gxb_pwrdn_in_sig[17]),
5451
            .pll_inclk (ref_clk),
5452
            .rx_recovclkout(rx_recovclkout_17),
5453
            .reconfig_clk(reconfig_clk_17),
5454
            .reconfig_togxb(reconfig_togxb_17),
5455
            .reconfig_fromgxb(reconfig_fromgxb_17),
5456
            .rx_analogreset (rx_analogreset_sqcnr_17),
5457
            .rx_cruclk (ref_clk),
5458
            .rx_ctrldetect (rx_kchar_17),
5459
            .rx_clkout (rx_pcs_clk_c17),
5460
            .rx_datain (rxp_17),
5461
            .rx_dataout (rx_frame_17),
5462
            .rx_digitalreset (rx_digitalreset_sqcnr_17),
5463
            .rx_disperr (rx_disp_err[17]),
5464
            .rx_errdetect (rx_char_err_gx[17]),
5465
            .rx_patterndetect (rx_patterndetect[17]),
5466
            .rx_rlv (rx_runlengthviolation[17]),
5467
            .rx_seriallpbken (sd_loopback_17),
5468
            .rx_syncstatus (rx_syncstatus[17]),
5469
            .tx_clkout (tx_pcs_clk_c17),
5470
            .tx_ctrlenable (tx_kchar_17),
5471
            .tx_datain (tx_frame_17),
5472
            .rx_freqlocked (rx_freqlocked_17),
5473
            .tx_dataout (txp_17),
5474
            .tx_digitalreset (tx_digitalreset_sqcnr_17),
5475
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[17]),
5476
            .rx_rmfifodatainserted(rx_rmfifodatainserted[17]),
5477
            .rx_runningdisp(rx_runningdisp[17]),
5478
            .pll_powerdown(gxb_pwrdn_in_sig[17]),
5479
            .pll_locked(pll_locked_17)
5480
          );
5481
   defparam
5482
        the_altera_tse_gxb_gige_inst_17.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
5483
        the_altera_tse_gxb_gige_inst_17.ENABLE_SGMII = ENABLE_SGMII,
5484
        the_altera_tse_gxb_gige_inst_17.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 68,
5485
        the_altera_tse_gxb_gige_inst_17.DEVICE_FAMILY = DEVICE_FAMILY;
5486
    end
5487
else
5488
    begin
5489
    assign reconfig_fromgxb_17 = {17{1'b0}};
5490
    assign led_char_err_gx[17] = 1'b0;
5491
    assign link_status[17] = 1'b0;
5492
    assign led_disp_err_17 = 1'b0;
5493
    assign txp_17 = 1'b0;
5494
        assign pcs_clk_c17 = 1'b0;
5495
    end
5496
endgenerate
5497
 
5498
 
5499
 
5500
// #######################################################################
5501
// ###############       CHANNEL 18 LOGIC/COMPONENTS       ###############
5502
// #######################################################################
5503
 
5504
// Export powerdown signal or wire it internally
5505
// ---------------------------------------------
5506
reg data_in_18,gxb_pwrdn_in_sig_clk_18;
5507
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 18)
5508
    begin
5509
        always @(posedge clk or posedge gxb_pwrdn_in_18)
5510
        begin
5511
          if (gxb_pwrdn_in_18 == 1) begin
5512
              data_in_18 <= 1;
5513
              gxb_pwrdn_in_sig_clk_18 <= 1;
5514
          end else begin
5515
            data_in_18 <= 1'b0;
5516
            gxb_pwrdn_in_sig_clk_18 <= data_in_18;
5517
          end
5518
        end
5519
        assign gxb_pwrdn_in_sig[18] = gxb_pwrdn_in_18;
5520
        assign pcs_pwrdn_out_18 = pcs_pwrdn_out_sig[18];
5521
    end
5522
else
5523
    begin
5524
        assign gxb_pwrdn_in_sig[18] = pcs_pwrdn_out_sig[18];
5525
                assign pcs_pwrdn_out_18 = 1'b0;
5526
        always@(*) begin
5527
            gxb_pwrdn_in_sig_clk_18 = gxb_pwrdn_in_sig[18];
5528
        end
5529
    end
5530
endgenerate
5531
 
5532
generate if (MAX_CHANNELS > 18)
5533
    begin
5534
        wire    locked_signal_18;
5535
    // Reset logic used to reset the PMA blocks
5536
    // ----------------------------------------  
5537
    //  ALTGX Reset Sequencer
5538
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_18(
5539
            // User inputs and outputs
5540
            .clock(clk),
5541
            .reset_all(reset|gxb_pwrdn_in_sig_clk_18),
5542
            //.reset_tx_digital(reset_ref_clk),
5543
            //.reset_rx_digital(reset_ref_clk),
5544
            .powerdown_all(reset_posedge),
5545
            .tx_ready(), // output
5546
            .rx_ready(), // output
5547
            // I/O transceiver and status
5548
            .pll_powerdown(pll_powerdown_sqcnr_18),// output
5549
            .tx_digitalreset(tx_digitalreset_sqcnr_18),// output
5550
            .rx_analogreset(rx_analogreset_sqcnr_18),// output
5551
            .rx_digitalreset(rx_digitalreset_sqcnr_18),// output
5552
            .gxb_powerdown(gxb_powerdown_sqcnr_18),// output
5553
            .pll_is_locked(locked_signal_18),
5554
            .rx_is_lockedtodata(rx_freqlocked_18),
5555
            .manual_mode(1'b0),
5556
            .rx_oc_busy(reconfig_busy_18)
5557
        );
5558
        assign locked_signal_18 = (reset? 1'b0: pll_locked_18);
5559
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
5560
    // ----------------------------------------------------------------------------------- 
5561
 
5562
 
5563
        // Aligned Rx_sync from gxb
5564
        // -------------------------------
5565
        altera_tse_reset_synchronizer ch_18_reset_sync_0 (
5566
        .clk(rx_pcs_clk_c18),
5567
        .reset_in(rx_digitalreset_sqcnr_18),
5568
        .reset_out(reset_rx_pcs_clk_c18_int)
5569
        );
5570
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_18
5571
          (
5572
            .clk(rx_pcs_clk_c18),
5573
            .reset(reset_rx_pcs_clk_c18_int),
5574
            //input (from alt2gxb)
5575
            .alt_dataout(rx_frame_18),
5576
            .alt_sync(rx_syncstatus[18]),
5577
            .alt_disperr(rx_disp_err[18]),
5578
            .alt_ctrldetect(rx_kchar_18),
5579
            .alt_errdetect(rx_char_err_gx[18]),
5580
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[18]),
5581
            .alt_rmfifodatainserted(rx_rmfifodatainserted[18]),
5582
            .alt_runlengthviolation(rx_runlengthviolation[18]),
5583
            .alt_patterndetect(rx_patterndetect[18]),
5584
            .alt_runningdisp(rx_runningdisp[18]),
5585
 
5586
            //output (to PCS)
5587
            .altpcs_dataout(pcs_rx_frame_18),
5588
            .altpcs_sync(link_status[18]),
5589
            .altpcs_disperr(led_disp_err_18),
5590
            .altpcs_ctrldetect(pcs_rx_kchar_18),
5591
            .altpcs_errdetect(led_char_err_gx[18]),
5592
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[18]),
5593
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[18]),
5594
            .altpcs_carrierdetect(pcs_rx_carrierdetected[18])
5595
           ) ;
5596
                defparam
5597
                the_altera_tse_gxb_aligned_rxsync_18.DEVICE_FAMILY = DEVICE_FAMILY;
5598
 
5599
        // Altgxb in GIGE mode
5600
        // --------------------
5601
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_18
5602
          (
5603
            .cal_blk_clk (gxb_cal_blk_clk),
5604
            .gxb_powerdown (gxb_pwrdn_in_sig[18]),
5605
            .pll_inclk (ref_clk),
5606
            .rx_recovclkout(rx_recovclkout_18),
5607
            .reconfig_clk(reconfig_clk_18),
5608
            .reconfig_togxb(reconfig_togxb_18),
5609
            .reconfig_fromgxb(reconfig_fromgxb_18),
5610
            .rx_analogreset (rx_analogreset_sqcnr_18),
5611
            .rx_cruclk (ref_clk),
5612
            .rx_ctrldetect (rx_kchar_18),
5613
            .rx_clkout (rx_pcs_clk_c18),
5614
            .rx_datain (rxp_18),
5615
            .rx_dataout (rx_frame_18),
5616
            .rx_digitalreset (rx_digitalreset_sqcnr_18),
5617
            .rx_disperr (rx_disp_err[18]),
5618
            .rx_errdetect (rx_char_err_gx[18]),
5619
            .rx_patterndetect (rx_patterndetect[18]),
5620
            .rx_rlv (rx_runlengthviolation[18]),
5621
            .rx_seriallpbken (sd_loopback_18),
5622
            .rx_syncstatus (rx_syncstatus[18]),
5623
            .tx_clkout (tx_pcs_clk_c18),
5624
            .tx_ctrlenable (tx_kchar_18),
5625
            .tx_datain (tx_frame_18),
5626
            .rx_freqlocked (rx_freqlocked_18),
5627
            .tx_dataout (txp_18),
5628
            .tx_digitalreset (tx_digitalreset_sqcnr_18),
5629
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[18]),
5630
            .rx_rmfifodatainserted(rx_rmfifodatainserted[18]),
5631
            .rx_runningdisp(rx_runningdisp[18]),
5632
            .pll_powerdown(gxb_pwrdn_in_sig[18]),
5633
            .pll_locked(pll_locked_18)
5634
          );
5635
   defparam
5636
        the_altera_tse_gxb_gige_inst_18.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
5637
        the_altera_tse_gxb_gige_inst_18.ENABLE_SGMII = ENABLE_SGMII,
5638
        the_altera_tse_gxb_gige_inst_18.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 72,
5639
        the_altera_tse_gxb_gige_inst_18.DEVICE_FAMILY = DEVICE_FAMILY;
5640
    end
5641
else
5642
    begin
5643
    assign reconfig_fromgxb_18 = {17{1'b0}};
5644
    assign led_char_err_gx[18] = 1'b0;
5645
    assign link_status[18] = 1'b0;
5646
    assign led_disp_err_18 = 1'b0;
5647
    assign txp_18 = 1'b0;
5648
        assign pcs_clk_c18 = 1'b0;
5649
    end
5650
endgenerate
5651
 
5652
 
5653
 
5654
// #######################################################################
5655
// ###############       CHANNEL 19 LOGIC/COMPONENTS       ###############
5656
// #######################################################################
5657
 
5658
// Export powerdown signal or wire it internally
5659
// ---------------------------------------------
5660
reg data_in_19,gxb_pwrdn_in_sig_clk_19;
5661
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 19)
5662
    begin
5663
        always @(posedge clk or posedge gxb_pwrdn_in_19)
5664
        begin
5665
          if (gxb_pwrdn_in_19 == 1) begin
5666
              data_in_19 <= 1;
5667
              gxb_pwrdn_in_sig_clk_19 <= 1;
5668
          end else begin
5669
            data_in_19 <= 1'b0;
5670
            gxb_pwrdn_in_sig_clk_19 <= data_in_19;
5671
          end
5672
        end
5673
        assign gxb_pwrdn_in_sig[19] = gxb_pwrdn_in_19;
5674
        assign pcs_pwrdn_out_19 = pcs_pwrdn_out_sig[19];
5675
    end
5676
else
5677
    begin
5678
        assign gxb_pwrdn_in_sig[19] = pcs_pwrdn_out_sig[19];
5679
                assign pcs_pwrdn_out_19 = 1'b0;
5680
        always@(*) begin
5681
            gxb_pwrdn_in_sig_clk_19 = gxb_pwrdn_in_sig[19];
5682
        end
5683
    end
5684
endgenerate
5685
 
5686
generate if (MAX_CHANNELS > 19)
5687
    begin
5688
        wire    locked_signal_19;
5689
    // Reset logic used to reset the PMA blocks
5690
    // ----------------------------------------  
5691
    //  ALTGX Reset Sequencer
5692
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_19(
5693
            // User inputs and outputs
5694
            .clock(clk),
5695
            .reset_all(reset|gxb_pwrdn_in_sig_clk_19),
5696
            //.reset_tx_digital(reset_ref_clk),
5697
            //.reset_rx_digital(reset_ref_clk),
5698
            .powerdown_all(reset_posedge),
5699
            .tx_ready(), // output
5700
            .rx_ready(), // output
5701
            // I/O transceiver and status
5702
            .pll_powerdown(pll_powerdown_sqcnr_19),// output
5703
            .tx_digitalreset(tx_digitalreset_sqcnr_19),// output
5704
            .rx_analogreset(rx_analogreset_sqcnr_19),// output
5705
            .rx_digitalreset(rx_digitalreset_sqcnr_19),// output
5706
            .gxb_powerdown(gxb_powerdown_sqcnr_19),// output
5707
            .pll_is_locked(locked_signal_19),
5708
            .rx_is_lockedtodata(rx_freqlocked_19),
5709
            .manual_mode(1'b0),
5710
            .rx_oc_busy(reconfig_busy_19)
5711
        );
5712
        assign locked_signal_19 = (reset? 1'b0: pll_locked_19);
5713
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
5714
    // ----------------------------------------------------------------------------------- 
5715
 
5716
 
5717
        // Aligned Rx_sync from gxb
5718
        // -------------------------------
5719
        altera_tse_reset_synchronizer ch_19_reset_sync_0 (
5720
        .clk(rx_pcs_clk_c19),
5721
        .reset_in(rx_digitalreset_sqcnr_19),
5722
        .reset_out(reset_rx_pcs_clk_c19_int)
5723
        );
5724
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_19
5725
          (
5726
            .clk(rx_pcs_clk_c19),
5727
            .reset(reset_rx_pcs_clk_c19_int),
5728
            //input (from alt2gxb)
5729
            .alt_dataout(rx_frame_19),
5730
            .alt_sync(rx_syncstatus[19]),
5731
            .alt_disperr(rx_disp_err[19]),
5732
            .alt_ctrldetect(rx_kchar_19),
5733
            .alt_errdetect(rx_char_err_gx[19]),
5734
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[19]),
5735
            .alt_rmfifodatainserted(rx_rmfifodatainserted[19]),
5736
            .alt_runlengthviolation(rx_runlengthviolation[19]),
5737
            .alt_patterndetect(rx_patterndetect[19]),
5738
            .alt_runningdisp(rx_runningdisp[19]),
5739
 
5740
            //output (to PCS)
5741
            .altpcs_dataout(pcs_rx_frame_19),
5742
            .altpcs_sync(link_status[19]),
5743
            .altpcs_disperr(led_disp_err_19),
5744
            .altpcs_ctrldetect(pcs_rx_kchar_19),
5745
            .altpcs_errdetect(led_char_err_gx[19]),
5746
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[19]),
5747
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[19]),
5748
            .altpcs_carrierdetect(pcs_rx_carrierdetected[19])
5749
           ) ;
5750
                defparam
5751
                the_altera_tse_gxb_aligned_rxsync_19.DEVICE_FAMILY = DEVICE_FAMILY;
5752
 
5753
        // Altgxb in GIGE mode
5754
        // --------------------
5755
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_19
5756
          (
5757
            .cal_blk_clk (gxb_cal_blk_clk),
5758
            .gxb_powerdown (gxb_pwrdn_in_sig[19]),
5759
            .pll_inclk (ref_clk),
5760
            .rx_recovclkout(rx_recovclkout_19),
5761
            .reconfig_clk(reconfig_clk_19),
5762
            .reconfig_togxb(reconfig_togxb_19),
5763
            .reconfig_fromgxb(reconfig_fromgxb_19),
5764
            .rx_analogreset (rx_analogreset_sqcnr_19),
5765
            .rx_cruclk (ref_clk),
5766
            .rx_ctrldetect (rx_kchar_19),
5767
            .rx_clkout (rx_pcs_clk_c19),
5768
            .rx_datain (rxp_19),
5769
            .rx_dataout (rx_frame_19),
5770
            .rx_digitalreset (rx_digitalreset_sqcnr_19),
5771
            .rx_disperr (rx_disp_err[19]),
5772
            .rx_errdetect (rx_char_err_gx[19]),
5773
            .rx_patterndetect (rx_patterndetect[19]),
5774
            .rx_rlv (rx_runlengthviolation[19]),
5775
            .rx_seriallpbken (sd_loopback_19),
5776
            .rx_syncstatus (rx_syncstatus[19]),
5777
            .tx_clkout (tx_pcs_clk_c19),
5778
            .tx_ctrlenable (tx_kchar_19),
5779
            .tx_datain (tx_frame_19),
5780
            .tx_dataout (txp_19),
5781
            .rx_freqlocked (rx_freqlocked_19),
5782
            .tx_digitalreset (tx_digitalreset_sqcnr_19),
5783
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[19]),
5784
            .rx_rmfifodatainserted(rx_rmfifodatainserted[19]),
5785
            .rx_runningdisp(rx_runningdisp[19]),
5786
            .pll_powerdown(gxb_pwrdn_in_sig[19]),
5787
            .pll_locked(pll_locked_19)
5788
          );
5789
   defparam
5790
        the_altera_tse_gxb_gige_inst_19.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
5791
        the_altera_tse_gxb_gige_inst_19.ENABLE_SGMII = ENABLE_SGMII,
5792
        the_altera_tse_gxb_gige_inst_19.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 76,
5793
        the_altera_tse_gxb_gige_inst_19.DEVICE_FAMILY = DEVICE_FAMILY;
5794
    end
5795
else
5796
    begin
5797
    assign reconfig_fromgxb_19 = {17{1'b0}};
5798
    assign led_char_err_gx[19] = 1'b0;
5799
    assign link_status[19] = 1'b0;
5800
    assign led_disp_err_19 = 1'b0;
5801
    assign txp_19 = 1'b0;
5802
        assign pcs_clk_c19 = 1'b0;
5803
    end
5804
endgenerate
5805
 
5806
 
5807
 
5808
// #######################################################################
5809
// ###############       CHANNEL 20 LOGIC/COMPONENTS       ###############
5810
// #######################################################################
5811
 
5812
// Export powerdown signal or wire it internally
5813
// ---------------------------------------------
5814
reg data_in_20,gxb_pwrdn_in_sig_clk_20;
5815
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 20)
5816
    begin
5817
        always @(posedge clk or posedge gxb_pwrdn_in_20)
5818
        begin
5819
          if (gxb_pwrdn_in_20 == 1) begin
5820
              data_in_20 <= 1;
5821
              gxb_pwrdn_in_sig_clk_20 <= 1;
5822
          end else begin
5823
            data_in_20 <= 1'b0;
5824
            gxb_pwrdn_in_sig_clk_20 <= data_in_20;
5825
          end
5826
        end
5827
        assign gxb_pwrdn_in_sig[20] = gxb_pwrdn_in_20;
5828
        assign pcs_pwrdn_out_20 = pcs_pwrdn_out_sig[20];
5829
    end
5830
else
5831
    begin
5832
        assign gxb_pwrdn_in_sig[20] = pcs_pwrdn_out_sig[20];
5833
                assign pcs_pwrdn_out_20 = 1'b0;
5834
        always@(*) begin
5835
            gxb_pwrdn_in_sig_clk_20 = gxb_pwrdn_in_sig[20];
5836
        end
5837
    end
5838
endgenerate
5839
 
5840
generate if (MAX_CHANNELS > 20)
5841
    begin
5842
        wire    locked_signal_20;
5843
    // Reset logic used to reset the PMA blocks
5844
    // ----------------------------------------  
5845
    //  ALTGX Reset Sequencer
5846
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_20(
5847
            // User inputs and outputs
5848
            .clock(clk),
5849
            .reset_all(reset|gxb_pwrdn_in_sig_clk_20),
5850
            //.reset_tx_digital(reset_ref_clk),
5851
            //.reset_rx_digital(reset_ref_clk),
5852
            .powerdown_all(reset_posedge),
5853
            .tx_ready(), // output
5854
            .rx_ready(), // output
5855
            // I/O transceiver and status
5856
            .pll_powerdown(pll_powerdown_sqcnr_20),// output
5857
            .tx_digitalreset(tx_digitalreset_sqcnr_20),// output
5858
            .rx_analogreset(rx_analogreset_sqcnr_20),// output
5859
            .rx_digitalreset(rx_digitalreset_sqcnr_20),// output
5860
            .gxb_powerdown(gxb_powerdown_sqcnr_20),// output
5861
            .pll_is_locked(locked_signal_20),
5862
            .rx_is_lockedtodata(rx_freqlocked_20),
5863
            .manual_mode(1'b0),
5864
            .rx_oc_busy(reconfig_busy_20)
5865
        );
5866
        assign locked_signal_20 = (reset? 1'b0: pll_locked_20);
5867
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
5868
    // ----------------------------------------------------------------------------------- 
5869
 
5870
 
5871
        // Aligned Rx_sync from gxb
5872
        // -------------------------------
5873
        altera_tse_reset_synchronizer ch_20_reset_sync_0 (
5874
        .clk(rx_pcs_clk_c20),
5875
        .reset_in(rx_digitalreset_sqcnr_20),
5876
        .reset_out(reset_rx_pcs_clk_c20_int)
5877
        );
5878
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_20
5879
          (
5880
            .clk(rx_pcs_clk_c20),
5881
            .reset(reset_rx_pcs_clk_c20_int),
5882
            //input (from alt2gxb)
5883
            .alt_dataout(rx_frame_20),
5884
            .alt_sync(rx_syncstatus[20]),
5885
            .alt_disperr(rx_disp_err[20]),
5886
            .alt_ctrldetect(rx_kchar_20),
5887
            .alt_errdetect(rx_char_err_gx[20]),
5888
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[20]),
5889
            .alt_rmfifodatainserted(rx_rmfifodatainserted[20]),
5890
            .alt_runlengthviolation(rx_runlengthviolation[20]),
5891
            .alt_patterndetect(rx_patterndetect[20]),
5892
            .alt_runningdisp(rx_runningdisp[20]),
5893
 
5894
            //output (to PCS)
5895
            .altpcs_dataout(pcs_rx_frame_20),
5896
            .altpcs_sync(link_status[20]),
5897
            .altpcs_disperr(led_disp_err_20),
5898
            .altpcs_ctrldetect(pcs_rx_kchar_20),
5899
            .altpcs_errdetect(led_char_err_gx[20]),
5900
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[20]),
5901
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[20]),
5902
            .altpcs_carrierdetect(pcs_rx_carrierdetected[20])
5903
           ) ;
5904
                defparam
5905
                the_altera_tse_gxb_aligned_rxsync_20.DEVICE_FAMILY = DEVICE_FAMILY;
5906
 
5907
        // Altgxb in GIGE mode
5908
        // --------------------
5909
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_20
5910
          (
5911
            .cal_blk_clk (gxb_cal_blk_clk),
5912
            .gxb_powerdown (gxb_pwrdn_in_sig[20]),
5913
            .pll_inclk (ref_clk),
5914
            .rx_recovclkout(rx_recovclkout_20),
5915
            .reconfig_clk(reconfig_clk_20),
5916
            .reconfig_togxb(reconfig_togxb_20),
5917
            .reconfig_fromgxb(reconfig_fromgxb_20),
5918
            .rx_analogreset (rx_analogreset_sqcnr_20),
5919
            .rx_cruclk (ref_clk),
5920
            .rx_ctrldetect (rx_kchar_20),
5921
            .rx_clkout (rx_pcs_clk_c20),
5922
            .rx_datain (rxp_20),
5923
            .rx_dataout (rx_frame_20),
5924
            .rx_digitalreset (rx_digitalreset_sqcnr_20),
5925
            .rx_disperr (rx_disp_err[20]),
5926
            .rx_errdetect (rx_char_err_gx[20]),
5927
            .rx_patterndetect (rx_patterndetect[20]),
5928
            .rx_rlv (rx_runlengthviolation[20]),
5929
            .rx_seriallpbken (sd_loopback_20),
5930
            .rx_syncstatus (rx_syncstatus[20]),
5931
            .tx_clkout (tx_pcs_clk_c20),
5932
            .tx_ctrlenable (tx_kchar_20),
5933
            .tx_datain (tx_frame_20),
5934
            .rx_freqlocked (rx_freqlocked_20),
5935
            .tx_dataout (txp_20),
5936
            .tx_digitalreset (tx_digitalreset_sqcnr_20),
5937
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[20]),
5938
            .rx_rmfifodatainserted(rx_rmfifodatainserted[20]),
5939
            .rx_runningdisp(rx_runningdisp[20]),
5940
            .pll_powerdown(gxb_pwrdn_in_sig[20]),
5941
            .pll_locked(pll_locked_20)
5942
          );
5943
   defparam
5944
        the_altera_tse_gxb_gige_inst_20.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
5945
        the_altera_tse_gxb_gige_inst_20.ENABLE_SGMII = ENABLE_SGMII,
5946
        the_altera_tse_gxb_gige_inst_20.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 80,
5947
        the_altera_tse_gxb_gige_inst_20.DEVICE_FAMILY = DEVICE_FAMILY;
5948
    end
5949
else
5950
    begin
5951
    assign reconfig_fromgxb_20 = {17{1'b0}};
5952
    assign led_char_err_gx[20] = 1'b0;
5953
    assign link_status[20] = 1'b0;
5954
    assign led_disp_err_20 = 1'b0;
5955
    assign txp_20 = 1'b0;
5956
        assign pcs_clk_c20 = 1'b0;
5957
    end
5958
endgenerate
5959
 
5960
 
5961
 
5962
// #######################################################################
5963
// ###############       CHANNEL 21 LOGIC/COMPONENTS       ###############
5964
// #######################################################################
5965
 
5966
// Export powerdown signal or wire it internally
5967
// ---------------------------------------------
5968
reg data_in_21,gxb_pwrdn_in_sig_clk_21;
5969
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 21)
5970
    begin
5971
        always @(posedge clk or posedge gxb_pwrdn_in_21)
5972
        begin
5973
          if (gxb_pwrdn_in_21 == 1) begin
5974
              data_in_21 <= 1;
5975
              gxb_pwrdn_in_sig_clk_21 <= 1;
5976
          end else begin
5977
            data_in_21 <= 1'b0;
5978
            gxb_pwrdn_in_sig_clk_21 <= data_in_21;
5979
          end
5980
        end
5981
        assign gxb_pwrdn_in_sig[21] = gxb_pwrdn_in_21;
5982
        assign pcs_pwrdn_out_21 = pcs_pwrdn_out_sig[21];
5983
    end
5984
else
5985
    begin
5986
        assign gxb_pwrdn_in_sig[21] = pcs_pwrdn_out_sig[21];
5987
                assign pcs_pwrdn_out_21 = 1'b0;
5988
        always@(*) begin
5989
            gxb_pwrdn_in_sig_clk_21 = gxb_pwrdn_in_sig[21];
5990
        end
5991
    end
5992
endgenerate
5993
 
5994
generate if (MAX_CHANNELS > 21)
5995
    begin
5996
        wire    locked_signal_21;
5997
    // Reset logic used to reset the PMA blocks
5998
    // ----------------------------------------  
5999
    //  ALTGX Reset Sequencer
6000
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_21(
6001
            // User inputs and outputs
6002
            .clock(clk),
6003
            .reset_all(reset|gxb_pwrdn_in_sig_clk_21),
6004
            //.reset_tx_digital(reset_ref_clk),
6005
            //.reset_rx_digital(reset_ref_clk),
6006
            .powerdown_all(reset_posedge),
6007
            .tx_ready(), // output
6008
            .rx_ready(), // output
6009
            // I/O transceiver and status
6010
            .pll_powerdown(pll_powerdown_sqcnr_21),// output
6011
            .tx_digitalreset(tx_digitalreset_sqcnr_21),// output
6012
            .rx_analogreset(rx_analogreset_sqcnr_21),// output
6013
            .rx_digitalreset(rx_digitalreset_sqcnr_21),// output
6014
            .gxb_powerdown(gxb_powerdown_sqcnr_21),// output
6015
            .pll_is_locked(pll_locked_21),
6016
            .rx_is_lockedtodata(rx_freqlocked_21),
6017
            .manual_mode(1'b0),
6018
            .rx_oc_busy(reconfig_busy_21)
6019
        );
6020
        assign locked_signal_21 = (reset? 1'b0: pll_locked_21);
6021
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
6022
    // ----------------------------------------------------------------------------------- 
6023
 
6024
 
6025
        // Aligned Rx_sync from gxb
6026
        // -------------------------------
6027
        altera_tse_reset_synchronizer ch_21_reset_sync_0 (
6028
        .clk(rx_pcs_clk_c21),
6029
        .reset_in(rx_digitalreset_sqcnr_21),
6030
        .reset_out(reset_rx_pcs_clk_c21_int)
6031
        );
6032
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_21
6033
          (
6034
            .clk(rx_pcs_clk_c21),
6035
            .reset(reset_rx_pcs_clk_c21_int),
6036
            //input (from alt2gxb)
6037
            .alt_dataout(rx_frame_21),
6038
            .alt_sync(rx_syncstatus[21]),
6039
            .alt_disperr(rx_disp_err[21]),
6040
            .alt_ctrldetect(rx_kchar_21),
6041
            .alt_errdetect(rx_char_err_gx[21]),
6042
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[21]),
6043
            .alt_rmfifodatainserted(rx_rmfifodatainserted[21]),
6044
            .alt_runlengthviolation(rx_runlengthviolation[21]),
6045
            .alt_patterndetect(rx_patterndetect[21]),
6046
            .alt_runningdisp(rx_runningdisp[21]),
6047
 
6048
            //output (to PCS)
6049
            .altpcs_dataout(pcs_rx_frame_21),
6050
            .altpcs_sync(link_status[21]),
6051
            .altpcs_disperr(led_disp_err_21),
6052
            .altpcs_ctrldetect(pcs_rx_kchar_21),
6053
            .altpcs_errdetect(led_char_err_gx[21]),
6054
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[21]),
6055
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[21]),
6056
            .altpcs_carrierdetect(pcs_rx_carrierdetected[21])
6057
           ) ;
6058
                defparam
6059
                the_altera_tse_gxb_aligned_rxsync_21.DEVICE_FAMILY = DEVICE_FAMILY;
6060
 
6061
        // Altgxb in GIGE mode
6062
        // --------------------
6063
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_21
6064
          (
6065
            .cal_blk_clk (gxb_cal_blk_clk),
6066
            .gxb_powerdown (gxb_pwrdn_in_sig[21]),
6067
            .pll_inclk (ref_clk),
6068
            .rx_recovclkout(rx_recovclkout_21),
6069
            .reconfig_clk(reconfig_clk_21),
6070
            .reconfig_togxb(reconfig_togxb_21),
6071
            .reconfig_fromgxb(reconfig_fromgxb_21),
6072
            .rx_analogreset (rx_analogreset_sqcnr_21),
6073
            .rx_cruclk (ref_clk),
6074
            .rx_ctrldetect (rx_kchar_21),
6075
            .rx_clkout (rx_pcs_clk_c21),
6076
            .rx_datain (rxp_21),
6077
            .rx_dataout (rx_frame_21),
6078
            .rx_digitalreset (rx_digitalreset_sqcnr_21),
6079
            .rx_disperr (rx_disp_err[21]),
6080
            .rx_errdetect (rx_char_err_gx[21]),
6081
            .rx_patterndetect (rx_patterndetect[21]),
6082
            .rx_rlv (rx_runlengthviolation[21]),
6083
            .rx_seriallpbken (sd_loopback_21),
6084
            .rx_syncstatus (rx_syncstatus[21]),
6085
            .tx_clkout (tx_pcs_clk_c21),
6086
            .tx_ctrlenable (tx_kchar_21),
6087
            .tx_datain (tx_frame_21),
6088
            .rx_freqlocked (rx_freqlocked_21),
6089
            .tx_dataout (txp_21),
6090
            .tx_digitalreset (tx_digitalreset_sqcnr_21),
6091
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[21]),
6092
            .rx_rmfifodatainserted(rx_rmfifodatainserted[21]),
6093
            .rx_runningdisp(rx_runningdisp[21]),
6094
            .pll_powerdown(gxb_pwrdn_in_sig[21]),
6095
            .pll_locked(pll_locked_21)
6096
          );
6097
   defparam
6098
        the_altera_tse_gxb_gige_inst_21.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
6099
        the_altera_tse_gxb_gige_inst_21.ENABLE_SGMII = ENABLE_SGMII,
6100
        the_altera_tse_gxb_gige_inst_21.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 84,
6101
        the_altera_tse_gxb_gige_inst_21.DEVICE_FAMILY = DEVICE_FAMILY;
6102
    end
6103
else
6104
    begin
6105
    assign reconfig_fromgxb_21 = {17{1'b0}};
6106
    assign led_char_err_gx[21] = 1'b0;
6107
    assign link_status[21] = 1'b0;
6108
    assign led_disp_err_21 = 1'b0;
6109
    assign txp_21 = 1'b0;
6110
        assign pcs_clk_c21 = 1'b0;
6111
    end
6112
endgenerate
6113
 
6114
 
6115
 
6116
// #######################################################################
6117
// ###############       CHANNEL 22 LOGIC/COMPONENTS       ###############
6118
// #######################################################################
6119
 
6120
// Export powerdown signal or wire it internally
6121
// ---------------------------------------------
6122
reg data_in_22,gxb_pwrdn_in_sig_clk_22;
6123
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 22)
6124
    begin
6125
        always @(posedge clk or posedge gxb_pwrdn_in_22)
6126
        begin
6127
          if (gxb_pwrdn_in_22 == 1) begin
6128
              data_in_22 <= 1;
6129
              gxb_pwrdn_in_sig_clk_22 <= 1;
6130
          end else begin
6131
            data_in_22 <= 1'b0;
6132
            gxb_pwrdn_in_sig_clk_22 <= data_in_22;
6133
          end
6134
        end
6135
        assign gxb_pwrdn_in_sig[22] = gxb_pwrdn_in_22;
6136
        assign pcs_pwrdn_out_22 = pcs_pwrdn_out_sig[22];
6137
    end
6138
else
6139
    begin
6140
        assign gxb_pwrdn_in_sig[22] = pcs_pwrdn_out_sig[22];
6141
                assign pcs_pwrdn_out_22 = 1'b0;
6142
        always@(*) begin
6143
            gxb_pwrdn_in_sig_clk_22 = gxb_pwrdn_in_sig[22];
6144
        end
6145
    end
6146
endgenerate
6147
 
6148
generate if (MAX_CHANNELS > 22)
6149
    begin
6150
        wire    locked_signal_22;
6151
    // Reset logic used to reset the PMA blocks
6152
    // ----------------------------------------  
6153
    //  ALTGX Reset Sequencer
6154
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_22(
6155
            // User inputs and outputs
6156
            .clock(clk),
6157
            .reset_all(reset|gxb_pwrdn_in_sig_clk_22),
6158
            //.reset_tx_digital(reset_ref_clk),
6159
            //.reset_rx_digital(reset_ref_clk),
6160
            .powerdown_all(reset_posedge),
6161
            .tx_ready(), // output
6162
            .rx_ready(), // output
6163
            // I/O transceiver and status
6164
            .pll_powerdown(pll_powerdown_sqcnr_22),// output
6165
            .tx_digitalreset(tx_digitalreset_sqcnr_22),// output
6166
            .rx_analogreset(rx_analogreset_sqcnr_22),// output
6167
            .rx_digitalreset(rx_digitalreset_sqcnr_22),// output
6168
            .gxb_powerdown(gxb_powerdown_sqcnr_22),// output
6169
            .pll_is_locked(pll_locked_22),
6170
            .rx_is_lockedtodata(rx_freqlocked_22),
6171
            .manual_mode(1'b0),
6172
            .rx_oc_busy(reconfig_busy_22)
6173
        );
6174
        assign locked_signal_22 = (reset? 1'b0: pll_locked_22);
6175
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
6176
    // ----------------------------------------------------------------------------------- 
6177
 
6178
 
6179
        // Aligned Rx_sync from gxb
6180
        // -------------------------------
6181
        altera_tse_reset_synchronizer ch_22_reset_sync_0 (
6182
        .clk(rx_pcs_clk_c22),
6183
        .reset_in(rx_digitalreset_sqcnr_22),
6184
        .reset_out(reset_rx_pcs_clk_c22_int)
6185
        );
6186
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_22
6187
          (
6188
            .clk(rx_pcs_clk_c22),
6189
            .reset(reset_rx_pcs_clk_c22_int),
6190
            //input (from alt2gxb)
6191
            .alt_dataout(rx_frame_22),
6192
            .alt_sync(rx_syncstatus[22]),
6193
            .alt_disperr(rx_disp_err[22]),
6194
            .alt_ctrldetect(rx_kchar_22),
6195
            .alt_errdetect(rx_char_err_gx[22]),
6196
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[22]),
6197
            .alt_rmfifodatainserted(rx_rmfifodatainserted[22]),
6198
            .alt_runlengthviolation(rx_runlengthviolation[22]),
6199
            .alt_patterndetect(rx_patterndetect[22]),
6200
            .alt_runningdisp(rx_runningdisp[22]),
6201
 
6202
            //output (to PCS)
6203
            .altpcs_dataout(pcs_rx_frame_22),
6204
            .altpcs_sync(link_status[22]),
6205
            .altpcs_disperr(led_disp_err_22),
6206
            .altpcs_ctrldetect(pcs_rx_kchar_22),
6207
            .altpcs_errdetect(led_char_err_gx[22]),
6208
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[22]),
6209
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[22]),
6210
            .altpcs_carrierdetect(pcs_rx_carrierdetected[22])
6211
           ) ;
6212
                defparam
6213
                the_altera_tse_gxb_aligned_rxsync_22.DEVICE_FAMILY = DEVICE_FAMILY;
6214
 
6215
        // Altgxb in GIGE mode
6216
        // --------------------
6217
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_22
6218
          (
6219
            .cal_blk_clk (gxb_cal_blk_clk),
6220
            .gxb_powerdown (gxb_pwrdn_in_sig[22]),
6221
            .pll_inclk (ref_clk),
6222
            .rx_recovclkout(rx_recovclkout_22),
6223
            .reconfig_clk(reconfig_clk_22),
6224
            .reconfig_togxb(reconfig_togxb_22),
6225
            .reconfig_fromgxb(reconfig_fromgxb_22),
6226
            .rx_analogreset (rx_analogreset_sqcnr_22),
6227
            .rx_cruclk (ref_clk),
6228
            .rx_ctrldetect (rx_kchar_22),
6229
            .rx_clkout (rx_pcs_clk_c22),
6230
            .rx_datain (rxp_22),
6231
            .rx_dataout (rx_frame_22),
6232
            .rx_digitalreset (rx_digitalreset_sqcnr_22),
6233
            .rx_disperr (rx_disp_err[22]),
6234
            .rx_errdetect (rx_char_err_gx[22]),
6235
            .rx_patterndetect (rx_patterndetect[22]),
6236
            .rx_rlv (rx_runlengthviolation[22]),
6237
            .rx_seriallpbken (sd_loopback_22),
6238
            .rx_syncstatus (rx_syncstatus[22]),
6239
            .tx_clkout (tx_pcs_clk_c22),
6240
            .tx_ctrlenable (tx_kchar_22),
6241
            .tx_datain (tx_frame_22),
6242
            .rx_freqlocked (rx_freqlocked_22),
6243
            .tx_dataout (txp_22),
6244
            .tx_digitalreset (tx_digitalreset_sqcnr_22),
6245
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[22]),
6246
            .rx_rmfifodatainserted(rx_rmfifodatainserted[22]),
6247
            .rx_runningdisp(rx_runningdisp[22]),
6248
            .pll_powerdown(gxb_pwrdn_in_sig[22]),
6249
            .pll_locked(pll_locked_22)
6250
          );
6251
   defparam
6252
        the_altera_tse_gxb_gige_inst_22.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
6253
        the_altera_tse_gxb_gige_inst_22.ENABLE_SGMII = ENABLE_SGMII,
6254
        the_altera_tse_gxb_gige_inst_22.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 88,
6255
        the_altera_tse_gxb_gige_inst_22.DEVICE_FAMILY = DEVICE_FAMILY;
6256
    end
6257
else
6258
    begin
6259
    assign reconfig_fromgxb_22 = {17{1'b0}};
6260
    assign led_char_err_gx[22] = 1'b0;
6261
    assign link_status[22] = 1'b0;
6262
    assign led_disp_err_22 = 1'b0;
6263
    assign txp_22 = 1'b0;
6264
        assign pcs_clk_c22 = 1'b0;
6265
    end
6266
endgenerate
6267
 
6268
 
6269
 
6270
// #######################################################################
6271
// ###############       CHANNEL 23 LOGIC/COMPONENTS       ###############
6272
// #######################################################################
6273
 
6274
// Export powerdown signal or wire it internally
6275
// ---------------------------------------------
6276
reg data_in_23,gxb_pwrdn_in_sig_clk_23;
6277
generate if (EXPORT_PWRDN == 1 && MAX_CHANNELS > 23)
6278
    begin
6279
        always @(posedge clk or posedge gxb_pwrdn_in_23)
6280
        begin
6281
          if (gxb_pwrdn_in_23 == 1) begin
6282
              data_in_23 <= 1;
6283
              gxb_pwrdn_in_sig_clk_23 <= 1;
6284
          end else begin
6285
            data_in_23 <= 1'b0;
6286
            gxb_pwrdn_in_sig_clk_23 <= data_in_23;
6287
          end
6288
        end
6289
        assign gxb_pwrdn_in_sig[23] = gxb_pwrdn_in_23;
6290
        assign pcs_pwrdn_out_23 = pcs_pwrdn_out_sig[23];
6291
    end
6292
else
6293
    begin
6294
        assign gxb_pwrdn_in_sig[23] = pcs_pwrdn_out_sig[23];
6295
                assign pcs_pwrdn_out_23 = 1'b0;
6296
        always@(*) begin
6297
            gxb_pwrdn_in_sig_clk_23 = gxb_pwrdn_in_sig[23];
6298
        end
6299
    end
6300
endgenerate
6301
 
6302
generate if (MAX_CHANNELS > 23)
6303
    begin
6304
        wire    locked_signal_23;
6305
    // Reset logic used to reset the PMA blocks
6306
    // ----------------------------------------  
6307
    //  ALTGX Reset Sequencer
6308
        altera_tse_reset_sequencer altera_tse_reset_sequencer_inst_23(
6309
            // User inputs and outputs
6310
            .clock(clk),
6311
            .reset_all(reset|gxb_pwrdn_in_sig_clk_23),
6312
            //.reset_tx_digital(reset_ref_clk),
6313
            //.reset_rx_digital(reset_ref_clk),
6314
            .powerdown_all(reset_posedge),
6315
            .tx_ready(), // output
6316
            .rx_ready(), // output
6317
            // I/O transceiver and status
6318
            .pll_powerdown(pll_powerdown_sqcnr_23),// output
6319
            .tx_digitalreset(tx_digitalreset_sqcnr_23),// output
6320
            .rx_analogreset(rx_analogreset_sqcnr_23),// output
6321
            .rx_digitalreset(rx_digitalreset_sqcnr_23),// output
6322
            .gxb_powerdown(gxb_powerdown_sqcnr_23),// output
6323
            .pll_is_locked(locked_signal_23),
6324
            .rx_is_lockedtodata(rx_freqlocked_23),
6325
            .manual_mode(1'b0),
6326
            .rx_oc_busy(reconfig_busy_23)
6327
        );
6328
        assign locked_signal_23 = (reset? 1'b0: pll_locked_23);
6329
    // Instantiation of the Alt2gxb and Alt4gxb block as the PMA for Stratix_II_GX ,ArriaGX and Stratix IV devices
6330
    // ----------------------------------------------------------------------------------- 
6331
 
6332
 
6333
        // Aligned Rx_sync from gxb
6334
        // -------------------------------
6335
        altera_tse_reset_synchronizer ch_23_reset_sync_0 (
6336
        .clk(rx_pcs_clk_c23),
6337
        .reset_in(rx_digitalreset_sqcnr_23),
6338
        .reset_out(reset_rx_pcs_clk_c23_int)
6339
        );
6340
        altera_tse_gxb_aligned_rxsync the_altera_tse_gxb_aligned_rxsync_23
6341
          (
6342
            .clk(rx_pcs_clk_c23),
6343
            .reset(reset_rx_pcs_clk_c23_int),
6344
            //input (from alt2gxb)
6345
            .alt_dataout(rx_frame_23),
6346
            .alt_sync(rx_syncstatus[23]),
6347
            .alt_disperr(rx_disp_err[23]),
6348
            .alt_ctrldetect(rx_kchar_23),
6349
            .alt_errdetect(rx_char_err_gx[23]),
6350
            .alt_rmfifodatadeleted(rx_rmfifodatadeleted[23]),
6351
            .alt_rmfifodatainserted(rx_rmfifodatainserted[23]),
6352
            .alt_runlengthviolation(rx_runlengthviolation[23]),
6353
            .alt_patterndetect(rx_patterndetect[23]),
6354
            .alt_runningdisp(rx_runningdisp[23]),
6355
 
6356
            //output (to PCS)
6357
            .altpcs_dataout(pcs_rx_frame_23),
6358
            .altpcs_sync(link_status[23]),
6359
            .altpcs_disperr(led_disp_err_23),
6360
            .altpcs_ctrldetect(pcs_rx_kchar_23),
6361
            .altpcs_errdetect(led_char_err_gx[23]),
6362
            .altpcs_rmfifodatadeleted(pcs_rx_rmfifodatadeleted[23]),
6363
            .altpcs_rmfifodatainserted(pcs_rx_rmfifodatainserted[23]),
6364
            .altpcs_carrierdetect(pcs_rx_carrierdetected[23])
6365
           ) ;
6366
                defparam
6367
                the_altera_tse_gxb_aligned_rxsync_23.DEVICE_FAMILY = DEVICE_FAMILY;
6368
 
6369
        // Altgxb in GIGE mode
6370
        // --------------------
6371
        altera_tse_gxb_gige_inst the_altera_tse_gxb_gige_inst_23
6372
          (
6373
            .cal_blk_clk (gxb_cal_blk_clk),
6374
            .gxb_powerdown (gxb_pwrdn_in_sig[23]),
6375
            .pll_inclk (ref_clk),
6376
            .rx_recovclkout(rx_recovclkout_23),
6377
            .reconfig_clk(reconfig_clk_23),
6378
            .reconfig_togxb(reconfig_togxb_23),
6379
            .reconfig_fromgxb(reconfig_fromgxb_23),
6380
            .rx_analogreset (rx_analogreset_sqcnr_23),
6381
            .rx_cruclk (ref_clk),
6382
            .rx_ctrldetect (rx_kchar_23),
6383
            .rx_clkout (rx_pcs_clk_c23),
6384
            .rx_datain (rxp_23),
6385
            .rx_dataout (rx_frame_23),
6386
            .rx_digitalreset (rx_digitalreset_sqcnr_23),
6387
            .rx_disperr (rx_disp_err[23]),
6388
            .rx_errdetect (rx_char_err_gx[23]),
6389
            .rx_patterndetect (rx_patterndetect[23]),
6390
            .rx_rlv (rx_runlengthviolation[23]),
6391
            .rx_seriallpbken (sd_loopback_23),
6392
            .rx_syncstatus (rx_syncstatus[23]),
6393
            .tx_clkout (tx_pcs_clk_c23),
6394
            .tx_ctrlenable (tx_kchar_23),
6395
            .tx_datain (tx_frame_23),
6396
            .rx_freqlocked (rx_freqlocked_23),
6397
            .tx_dataout (txp_23),
6398
            .tx_digitalreset (tx_digitalreset_sqcnr_23),
6399
            .rx_rmfifodatadeleted(rx_rmfifodatadeleted[23]),
6400
            .rx_rmfifodatainserted(rx_rmfifodatainserted[23]),
6401
            .rx_runningdisp(rx_runningdisp[23]),
6402
            .pll_powerdown(gxb_pwrdn_in_sig[23]),
6403
            .pll_locked(pll_locked_23)
6404
          );
6405
   defparam
6406
        the_altera_tse_gxb_gige_inst_23.ENABLE_ALT_RECONFIG = ENABLE_ALT_RECONFIG,
6407
        the_altera_tse_gxb_gige_inst_23.ENABLE_SGMII = ENABLE_SGMII,
6408
        the_altera_tse_gxb_gige_inst_23.STARTING_CHANNEL_NUMBER = STARTING_CHANNEL_NUMBER + 92,
6409
        the_altera_tse_gxb_gige_inst_23.DEVICE_FAMILY = DEVICE_FAMILY;
6410
    end
6411
else
6412
    begin
6413
    assign reconfig_fromgxb_23 = {17{1'b0}};
6414
    assign led_char_err_gx[23] = 1'b0;
6415
    assign link_status[23] = 1'b0;
6416
    assign led_disp_err_23 = 1'b0;
6417
    assign txp_23 = 1'b0;
6418
        assign pcs_clk_c23 = 1'b0;
6419
    end
6420
endgenerate
6421
 
6422
 
6423
 
6424
    endmodule // module altera_tse_multi_mac_pcs_pma_gige

powered by: WebSVN 2.1.0

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