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 20

Details | Compare with Previous | View Log

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