x393  1.0
FPGAcodeforElphelNC393camera
gtxe2_channel_wrapper.v
Go to the documentation of this file.
1 
77  // This file may be used to define same pre-processor macros to be included into each parsed file
78 `ifndef SYSTEM_DEFINES
79  `define SYSTEM_DEFINES
80  // TODO: Later compare instantiate/infer
81  `define INSTANTIATE_DSP48E1
82  `define DEBUG_DCT1D// undefine after debugging is over // `define USE_OLD_DCT
83 
84 // Parameters from x393_sata project
85  `define USE_DRP
86  `define ALIGN_CLOCKS
87 // `define STRAIGHT_XCLK
88  `define USE_DATASCOPE
89 // `define DATASCOPE_INCOMING_RAW
90  `define PRELOAD_BRAMS
91 // `define AHCI_SATA 1
92 // `define DEBUG_ELASTIC
93 // End of parameters from x393_sata project
94 
95  `define PRELOAD_BRAMS
96  `define DISPLAY_COMPRESSED_DATA // if HISPI is not defined, parallel sensor interface is used for all channels
97  `define HISPI /*************** CHANGE here and x393_hispi/x393_parallel in bitstream tool settings ****************/// `define USE_OLD_XDCT393
98 // `define USE_PCLK2X
99 // `define USE_XCLK2X
100  `define REVERSE_LANES 1 `define DEBUG_RING 1 `define USE_HARD_CURPARAMS// Adjustment of actual hardware may break simulation // `define DEBUG_SENS_MEM_PAGES 1
101 // `define MCLK_VCO_MULT 16
102 // DDR3 memory speed grade and density
103  `define sg25 1// `define sg15E 1
104 // `define sg187E 1
105  `define den4096Mb 1
106  `define MCLK_VCO_MULT 16// `define MCLK_VCO_MULT 18
107 // `define MCLK_VCO_MULT 20
108 
109  `define MEMBRIDGE_DEBUG_WRITE 1// Enviroment-dependent options
110  `ifdef IVERILOG
111  `define SIMULATION
112  `define OPEN_SOURCE_ONLY
113  `endif
114 
115  `ifdef COCOTB
116  `define SIMULATION
117  `define OPEN_SOURCE_ONLY
118  `endif
119 
120  `ifdef CVC
121  `define SIMULATION
122  `define OPEN_SOURCE_ONLY
123  `endif // CVC
124 
125 // will not use simultaneous reset in shift registers, just and input data with ~rst
126  `define SHREG_SEQUENTIAL_RESET 1// synthesis does to recognize global clock as G input of the primitive latch
127  `undef INFER_LATCHES
128  // define when using CDC - it does not support them
129  `undef IGNORE_ATTR
130 //`define MEMBRIDGE_DEBUG_READ 1
131  `define use200Mhz 1 `define USE_CMD_ENCOD_TILED_32_RD 1 // chn 0 is read from memory and write to memory
132  `define def_enable_mem_chn0
133  `define def_read_mem_chn0
134  `define def_write_mem_chn0
135  `undef def_scanline_chn0
136  `undef def_tiled_chn0
137 
138  // chn 1 is scanline r+w
139  `define def_enable_mem_chn1
140  `define def_read_mem_chn1
141  `define def_write_mem_chn1
142  `define def_scanline_chn1
143  `undef def_tiled_chn1
144 
145  // chn 2 is tiled r+w
146  `define def_enable_mem_chn2
147  `define def_read_mem_chn2
148  `define def_write_mem_chn2
149  `undef def_scanline_chn2
150  `define def_tiled_chn2
151 
152  // chn 3 is scanline r+w (reuse later)
153  `define def_enable_mem_chn3
154  `define def_read_mem_chn3
155  `define def_write_mem_chn3
156  `define def_scanline_chn3
157  `undef def_tiled_chn3
159  // chn 4 is tiled r+w (reuse later)
160  `define def_enable_mem_chn4
161  `define def_read_mem_chn4
162  `define def_write_mem_chn4
163  `undef def_scanline_chn4
164  `define def_tiled_chn4
165 
166  // chn 5 is disabled
167  `undef def_enable_mem_chn5
169  // chn 6 is disabled
170  `undef def_enable_mem_chn6
171 
172  // chn 7 is disabled
173  `undef def_enable_mem_chn7
174 
175  // chn 8 is scanline w (sensor channel 0)
176  `define def_enable_mem_chn8
177  `undef def_read_mem_chn8
178  `define def_write_mem_chn8
179  `define def_scanline_chn8
180  `undef def_tiled_chn8
182  // chn 9 is scanline w (sensor channel 1)
183  `define def_enable_mem_chn9
184  `undef def_read_mem_chn9
185  `define def_write_mem_chn9
186  `define def_scanline_chn9
187  `undef def_tiled_chn9
189  // chn 10 is scanline w (sensor channel 2)
190  `define def_enable_mem_chn10
191  `undef def_read_mem_chn10
192  `define def_write_mem_chn10
193  `define def_scanline_chn10
194  `undef def_tiled_chn10
196  // chn 11 is scanline w (sensor channel 3)
197  `define def_enable_mem_chn11
198  `undef def_read_mem_chn11
199  `define def_write_mem_chn11
200  `define def_scanline_chn11
201  `undef def_tiled_chn11
203  // chn 12 is tiled read (compressor channel 0)
204  `define def_enable_mem_chn12
205  `define def_read_mem_chn12
206  `undef def_write_mem_chn12
207  `undef def_scanline_chn12
208  `define def_tiled_chn12
209 
210  // chn 12 is tiled read (compressor channel 1)
211  `define def_enable_mem_chn13
212  `define def_read_mem_chn13
213  `undef def_write_mem_chn13
214  `undef def_scanline_chn13
215  `define def_tiled_chn13
216 
217  // chn 12 is tiled read (compressor channel 2)
218  `define def_enable_mem_chn14
219  `define def_read_mem_chn14
220  `undef def_write_mem_chn14
221  `undef def_scanline_chn14
222  `define def_tiled_chn14
223 
224  // chn 12 is tiled read (compressor channel 3)
225  `define def_enable_mem_chn15
226  `define def_read_mem_chn15
227  `undef def_write_mem_chn15
228  `undef def_scanline_chn15
229  `define def_tiled_chn15
230 `endif
231 
233 // clocking ports, UG476 p.37
234  input [2:0] CPLLREFCLKSEL,
235  input GTGREFCLK,
236  input GTNORTHREFCLK0,
238  input GTREFCLK0,
239  input GTREFCLK1,
242  input [1:0] RXSYSCLKSEL,
243  input [1:0] TXSYSCLKSEL,
245 // CPLL Ports, UG476 p.48
247  input CPLLLOCKEN,
248  input CPLLPD,
249  input CPLLRESET,
251  output CPLLLOCK,
253  output [9:0] TSTOUT,
254  input [15:0] GTRSVD,
255  input [15:0] PCSRSVDIN,
256  input [4:0] PCSRSVDIN2,
257  input [4:0] PMARSVDIN,
258  input [4:0] PMARSVDIN2,
259  input [19:0] TSTIN,
260 // Reset Mode ports, ug476 p.62
261  input GTRESETSEL,
262  input RESETOVRD,
263 // TX Reset ports, ug476 p.65
264  input CFGRESET,
265  input GTTXRESET,
266  input TXPCSRESET,
267  input TXPMARESET,
268  output TXRESETDONE,
269  input TXUSERRDY,
270  output [15:0] PCSRSVDOUT,
271 // RX Reset ports, UG476 p.73
272  input GTRXRESET,
273  input RXPMARESET,
274  input RXCDRRESET,
278  input RXPCSRESET,
279  input RXBUFRESET,
280  input RXUSERRDY,
281  output RXRESETDONE,
282  input RXOOBRESET,
283 // Power Down ports, ug476 p.88
284  input [1:0] RXPD,
285  input [1:0] TXPD,
287  input TXPHDLYPD,
288  input RXPHDLYPD,
289 // Loopback ports, ug476 p.91
290  input [2:0] LOOPBACK,
291 // Dynamic Reconfiguration Port, ug476 p.92
292  input [8:0] DRPADDR,
293  input DRPCLK,
294  input [15:0] DRPDI,
295  output [15:0] DRPDO,
296  input DRPEN,
297  output DRPRDY,
298  input DRPWE,
299 // Digital Monitor Ports, ug476 p.95
300  input [3:0] CLKRSVD,
301  output [7:0] DMONITOROUT,
302 // TX Interface Ports, ug476 p.110
303  input [7:0] TXCHARDISPMODE,
304  input [7:0] TXCHARDISPVAL,
305  input [63:0] TXDATA,
306  input TXUSRCLK,
307  input TXUSRCLK2,
308 // TX 8B/10B encoder ports, ug476 p.118
309  input [7:0] TX8B10BBYPASS,
310  input TX8B10BEN,
311  input [7:0] TXCHARISK,
312 // TX Gearbox ports, ug476 p.122
314  input [2:0] TXHEADER,
315  input [6:0] TXSEQUENCE,
316  input TXSTARTSEQ,
317 // TX BUffer Ports, ug476 p.134
318  output [1:0] TXBUFSTATUS,
319 // TX Buffer Bypass Ports, ug476 p.136
320  input TXDLYSRESET,
321  input TXPHALIGN,
322  input TXPHALIGNEN,
323  input TXPHINIT,
324  input TXPHOVRDEN,
326  input TXDLYBYPASS,
327  input TXDLYEN,
328  input TXDLYOVRDEN,
330  input TXDLYHOLD,
331  input TXDLYUPDOWN,
332  output TXPHALIGNDONE,
333  output TXPHINITDONE,
335 /* input TXSYNCMODE,
336  input TXSYNCALLIN,
337  input TXSYNCIN,
338  output TXSYNCOUT,
339  output TXSYNCDONE,**/
340 // TX Pattern Generator, ug476 p.147
341  input [2:0] TXPRBSSEL,
343 // TX Polarity Control Ports, ug476 p.149
344  input TXPOLARITY,
345 // TX Fabric Clock Output Control Ports, ug476 p.152
346  input [2:0] TXOUTCLKSEL,
347  input [2:0] TXRATE,
349  output TXOUTCLK,
350  output TXOUTCLKPCS,
351  output TXRATEDONE,
352 // TX Phase Interpolator PPM Controller Ports, ug476 p.154
353 // GTH only
354 /* input TXPIPPMEN,
355  input TXPIPPMOVRDEN,
356  input TXPIPPMSEL,
357  input TXPIPPMPD,
358  input [4:0] TXPIPPMSTEPSIZE,**/
359 // TX Configurable Driver Ports, ug476 p.156
360  input [2:0] TXBUFDIFFCTRL,
361  input TXDEEMPH,
362  input [3:0] TXDIFFCTRL,
363  input TXELECIDLE,
364  input TXINHIBIT,
365  input [6:0] TXMAINCURSOR,
366  input [2:0] TXMARGIN,
367  input TXQPIBIASEN,
368  output TXQPISENN,
369  output TXQPISENP,
371  input TXQPIWEAKPUP,
372  input [4:0] TXPOSTCURSOR,
374  input [4:0] TXPRECURSOR,
376  input TXSWING,
377  input TXDIFFPD,
378  input TXPISOPD,
379 // TX Receiver Detection Ports, ug476 p.165
380  input TXDETECTRX,
381  output PHYSTATUS,
382  output [2:0] RXSTATUS,
383 // TX OOB Signaling Ports, ug476 p.166
384  output TXCOMFINISH,
385  input TXCOMINIT,
386  input TXCOMSAS,
387  input TXCOMWAKE,
388 // RX AFE Ports, ug476 p.171
389  output RXQPISENN,
390  output RXQPISENP,
391  input RXQPIEN,
392 // RX OOB Signaling Ports, ug476 p.178
393  input [1:0] RXELECIDLEMODE,
394  output RXELECIDLE,
395  output RXCOMINITDET,
396  output RXCOMSASDET,
397  output RXCOMWAKEDET,
398 // RX Equalizer Ports, ug476 p.189
399  input RXLPMEN,
400  input RXOSHOLD,
401  input RXOSOVRDEN,
402  input RXLPMLFHOLD,
404  input RXLPMHFHOLD,
408  input RXDFELFHOLD,
410  input RXDFEUTHOLD,
412  input RXDFEVPHOLD,
414  input RXDFETAP2HOLD,
417  input RXDFETAP3OVRDEN,
419  input RXDFETAP4OVRDEN,
422  input RXDFECM1EN,
424  input RXDFEXYDOVRDEN,
425  input RXDFEXYDEN,
426  input [1:0] RXMONITORSEL,
427  output [6:0] RXMONITOROUT,
428 // CDR Ports, ug476 p.202
429  input RXCDRHOLD,
430  input RXCDROVRDEN,
432  input [2:0] RXRATE,
433  output RXCDRLOCK,
434 // RX Fabric Clock Output Control Ports, ug476 p.213
435  input [2:0] RXOUTCLKSEL,
437  output RXOUTCLK,
438  output RXOUTCLKPCS,
439  output RXRATEDONE,
440  input RXDLYBYPASS,
441 // RX Margin Analysis Ports, ug476 p.220
444  input EYESCANMODE,
445 // RX Polarity Control Ports, ug476 p.224
446  input RXPOLARITY,
447 // Pattern Checker Ports, ug476 p.225
449  input [2:0] RXPRBSSEL,
450  output RXPRBSERR,
451 // RX Byte and Word Alignment Ports, ug476 p.233
454  output RXCOMMADET,
458  input RXSLIDE,
459 // RX 8B/10B Decoder Ports, ug476 p.241
460  input RX8B10BEN,
461  output [7:0] RXCHARISCOMMA,
462  output [7:0] RXCHARISK,
463  output [7:0] RXDISPERR,
464  output [7:0] RXNOTINTABLE,
466 // RX Buffer Bypass Ports, ug476 p.244
468  input RXPHALIGN,
469  input RXPHALIGNEN,
470  input RXPHOVRDEN,
471  input RXDLYSRESET,
472  input RXDLYEN,
473  input RXDLYOVRDEN,
474  input RXDDIEN,
476  output [4:0] RXPHMONITOR,
477  output [4:0] RXPHSLIPMONITOR,
479 // RX Buffer Ports, ug476 p.259
480  output [2:0] RXBUFSTATUS,
481 // RX Clock Correction Ports, ug476 p.263
482  output [1:0] RXCLKCORCNT,
483 // RX Channel Bonding Ports, ug476 p.274
487  input [4:0] RXCHBONDI,
488  output [4:0] RXCHBONDO,
489  input [2:0] RXCHBONDLEVEL,
492  input RXCHBONDEN,
493 // RX Gearbox Ports, ug476 p.285
494  output RXDATAVALID,
496  output [2:0] RXHEADER,
498  output RXSTARTOFSEQ,
499 // FPGA RX Interface Ports, ug476 p.299
500  output [63:0] RXDATA,
501  input RXUSRCLK,
502  input RXUSRCLK2,
504 // ug476, p.323
505  output RXVALID,
506 // for correct clocking scheme in case of multilane structure
507  input QPLLCLK,
508  input QPLLREFCLK,
510 // Diffpairs
511  input GTXRXP,
512  input GTXRXN,
513  output GTXTXN,
514  output GTXTXP
515 );
516 // simulation common attributes, UG476 p.28
517 parameter SIM_RESET_SPEEDUP = "TRUE";
518 parameter SIM_CPLLREFCLK_SEL = 3'b001;
519 parameter SIM_RECEIVER_DETECT_PASS = "TRUE";
520 parameter SIM_TX_EIDLE_DRIVE_LEVEL = "X";
521 parameter SIM_VERSION = "1.0";
522 // Clocking Atributes, UG476 p.38
523 parameter OUTREFCLK_SEL_INV = 1'b0;
524 // CPLL Attributes, UG476 p.49
525 parameter CPLL_CFG = 24'h0;
526 parameter CPLL_FBDIV = 4;
527 parameter CPLL_FBDIV_45 = 5;
528 parameter CPLL_INIT_CFG = 24'h0;
529 parameter CPLL_LOCK_CFG = 16'h0;
530 parameter CPLL_REFCLK_DIV = 1;
531 parameter RXOUT_DIV = 2;
532 parameter TXOUT_DIV = 2;
533 parameter SATA_CPLL_CFG = "VCO_3000MHZ";
534 parameter PMA_RSV3 = 2'b00;
535 // TX Initialization and Reset Attributes, ug476 p.66
536 parameter TXPCSRESET_TIME = 5'b00001;
537 parameter TXPMARESET_TIME = 5'b00001;
538 // RX Initialization and Reset Attributes, UG476 p.75
539 parameter RXPMARESET_TIME = 5'h0;
540 parameter RXCDRPHRESET_TIME = 5'h0;
541 parameter RXCDRFREQRESET_TIME = 5'h0;
542 parameter RXDFELPMRESET_TIME = 7'h0;
543 parameter RXISCANRESET_TIME = 7'h0;
544 parameter RXPCSRESET_TIME = 5'h0;
545 parameter RXBUFRESET_TIME = 5'h0;
546 // Power Down attributes, ug476 p.88
547 parameter PD_TRANS_TIME_FROM_P2 = 12'h0;
548 parameter PD_TRANS_TIME_NONE_P2 = 8'h0;
549 parameter PD_TRANS_TIME_TO_P2 = 8'h0;
550 parameter TRANS_TIME_RATE = 8'h0;
551 parameter RX_CLKMUX_PD = 1'b0;
552 parameter TX_CLKMUX_PD = 1'b0;
553 // GTX Digital Monitor Attributes, ug476 p.96
554 parameter DMONITOR_CFG = 24'h008101;
555 // TX Interface attributes, ug476 p.111
556 parameter TX_DATA_WIDTH = 20;
557 parameter TX_INT_DATAWIDTH = 0;
558 // TX Gearbox Attributes, ug476 p.121
559 parameter GEARBOX_MODE = 3'h0;
560 parameter TXGEARBOX_EN = "FALSE";
561 // TX BUffer Attributes, ug476 p.134
562 parameter TXBUF_EN = "TRUE";
563 // TX Bypass buffer, ug476 p.138
564 parameter TX_XCLK_SEL = "TXOUT";
565 parameter TXPH_CFG = 16'h0;
566 parameter TXPH_MONITOR_SEL = 5'h0;
567 parameter TXPHDLY_CFG = 24'h0;
568 parameter TXDLY_CFG = 16'h0;
569 parameter TXDLY_LCFG = 9'h0;
570 parameter TXDLY_TAP_CFG = 16'h0;
571 //parameter TXSYNC_MULTILANE = 1'b0;
572 //parameter TXSYNC_SKIP_DA = 1'b0;
573 //parameter TXSYNC_OVRD = 1'b1;
574 //parameter LOOPBACK_CFG = 1'b0;
575 // TX Pattern Generator, ug476 p.147
576 parameter RXPRBS_ERR_LOOPBACK = 1'b0;
577 // TX Fabric Clock Output Control Attributes, ug476 p. 153
578 parameter TXBUF_RESET_ON_RATE_CHANGE = "TRUE";
579 // TX Phase Interpolator PPM Controller Attributes, ug476 p.155
580 // GTH only
581 /*parameter TXPI_SYNCFREQ_PPM = 3'b001;
582 parameter TXPI_PPM_CFG = 8'd0;
583 parameter TXPI_INVSTROBE_SEL = 1'b0;
584 parameter TXPI_GREY_SEL = 1'b0;
585 parameter TXPI_PPMCLK_SEL = "12345";**/
586 // TX Configurable Driver Attributes, ug476 p.162
587 parameter TX_DEEMPH0 = 5'b10100;
588 parameter TX_DEEMPH1 = 5'b01101;
589 parameter TX_DRIVE_MODE = "DIRECT";
590 parameter TX_MAINCURSOR_SEL = 1'b0;
591 parameter TX_MARGIN_FULL_0 = 7'b0;
592 parameter TX_MARGIN_FULL_1 = 7'b0;
593 parameter TX_MARGIN_FULL_2 = 7'b0;
594 parameter TX_MARGIN_FULL_3 = 7'b0;
595 parameter TX_MARGIN_FULL_4 = 7'b0;
596 parameter TX_MARGIN_LOW_0 = 7'b0;
597 parameter TX_MARGIN_LOW_1 = 7'b0;
598 parameter TX_MARGIN_LOW_2 = 7'b0;
599 parameter TX_MARGIN_LOW_3 = 7'b0;
600 parameter TX_MARGIN_LOW_4 = 7'b0;
601 parameter TX_PREDRIVER_MODE = 1'b0;
602 parameter TX_QPI_STATUS_EN = 1'b0;
603 parameter TX_EIDLE_ASSERT_DELAY = 3'b110;
604 parameter TX_EIDLE_DEASSERT_DELAY = 3'b100;
605 parameter TX_LOOPBACK_DRIVE_HIZ = "FALSE";
606 // TX Receiver Detection Attributes, ug476 p.165
607 parameter TX_RXDETECT_CFG = 14'h0;
608 parameter TX_RXDETECT_REF = 3'h0;
609 // TX OOB Signaling Attributes
610 parameter SATA_BURST_SEQ_LEN = 4'b0101;
611 // RX AFE Attributes, ug476 p.171
612 parameter RX_CM_SEL = 2'b11;
613 parameter TERM_RCAL_CFG = 5'b0;
614 parameter TERM_RCAL_OVRD = 1'b0;
615 parameter RX_CM_TRIM = 3'b010;
616 // RX OOB Signaling Attributes, ug476 p.179
617 parameter PCS_RSVD_ATTR = 48'h0100; // oob is up
618 parameter RXOOB_CFG = 7'b0000110;
619 parameter SATA_BURST_VAL = 3'b110;
620 parameter SATA_EIDLE_VAL = 3'b110;
621 parameter SAS_MIN_COM = 36;
622 parameter SATA_MIN_INIT = 12;
623 parameter SATA_MIN_WAKE = 4;
624 parameter SATA_MAX_BURST = 8;
625 parameter SATA_MIN_BURST = 4;
626 parameter SAS_MAX_COM = 64;
627 parameter SATA_MAX_INIT = 21;
628 parameter SATA_MAX_WAKE = 7;
629 // RX Equalizer Attributes, ug476 p.193
630 parameter RX_OS_CFG = 13'h0080;
631 parameter RXLPM_LF_CFG = 14'h00f0;
632 parameter RXLPM_HF_CFG = 14'h00f0;
633 parameter RX_DFE_LPM_CFG = 16'h0;
634 parameter RX_DFE_GAIN_CFG = 23'h020FEA;
635 parameter RX_DFE_H2_CFG = 12'h0;
636 parameter RX_DFE_H3_CFG = 12'h040;
637 parameter RX_DFE_H4_CFG = 11'h0e0;
638 parameter RX_DFE_H5_CFG = 11'h0e0;
639 parameter PMA_RSV = 32'h00018480;
640 parameter RX_DFE_LPM_HOLD_DURING_EIDLE = 1'b0;
641 parameter RX_DFE_XYD_CFG = 13'h0;
642 parameter PMA_RSV4 = 32'h0;
643 parameter PMA_RSV2 = 16'h0;
644 parameter RX_BIAS_CFG = 12'h040;
645 parameter RX_DEBUG_CFG = 12'h0;
646 parameter RX_DFE_KL_CFG = 13'h0;
647 parameter RX_DFE_KL_CFG2 = 32'h0;
648 parameter RX_DFE_UT_CFG = 17'h11e00;
649 parameter RX_DFE_VP_CFG = 17'h03f03;
650 // CDR Attributes, ug476 p.203
651 parameter RXCDR_CFG = 72'h0;
652 parameter RXCDR_LOCK_CFG = 6'h0;
653 parameter RXCDR_HOLD_DURING_EIDLE = 1'b0;
654 parameter RXCDR_FR_RESET_ON_EIDLE = 1'b0;
655 parameter RXCDR_PH_RESET_ON_EIDLE = 1'b0;
656 // RX Fabric Clock Output Control Attributes
657 parameter RXBUF_RESET_ON_RATE_CHANGE = "TRUE";
658 // RX Margin Analysis Attributes
659 parameter ES_VERT_OFFSET = 9'h0;
660 parameter ES_HORZ_OFFSET = 12'h0;
661 parameter ES_PRESCALE = 5'h0;
662 parameter ES_SDATA_MASK = 80'h0;
663 parameter ES_QUALIFIER = 80'h0;
664 parameter ES_QUAL_MASK = 80'h0;
665 parameter ES_EYE_SCAN_EN = 1'b1;
666 parameter ES_ERRDET_EN = 1'b0;
667 parameter ES_CONTROL = 6'h0;
668 parameter RX_DATA_WIDTH = 20;
669 parameter RX_INT_DATAWIDTH = 0;
670 parameter ES_PMA_CFG = 10'h0;
671 // Pattern Checker Attributes, ug476 p.226
672 //parameter RX_PRBS_ERR_CNT = 16'h15c;
673 // RX Byte and Word Alignment Attributes, ug476 p.235
674 parameter ALIGN_COMMA_WORD = 1;
675 parameter ALIGN_COMMA_ENABLE = 10'b1111111111;
676 parameter ALIGN_COMMA_DOUBLE = "FALSE";
677 parameter ALIGN_MCOMMA_DET = "TRUE";
678 parameter ALIGN_MCOMMA_VALUE = 10'b1010000011;
679 parameter ALIGN_PCOMMA_DET = "TRUE";
680 parameter ALIGN_PCOMMA_VALUE = 10'b0101111100;
681 parameter SHOW_REALIGN_COMMA = "TRUE";
682 parameter RXSLIDE_MODE = "OFF";
683 parameter RXSLIDE_AUTO_WAIT = 7;
684 parameter RX_SIG_VALID_DLY = 10;
685 //parameter COMMA_ALIGN_LATENCY = 9'h14e;
686 // RX 8B/10B Decoder Attributes, ug476 p.242
687 parameter RX_DISPERR_SEQ_MATCH = "TRUE";
688 parameter DEC_MCOMMA_DETECT = "TRUE";
689 parameter DEC_PCOMMA_DETECT = "TRUE";
690 parameter DEC_VALID_COMMA_ONLY = "FALSE";
691 parameter UCODEER_CLR = 1'b0;
692 // RX Buffer Bypass Attributes, ug476 p.247
693 parameter RXBUF_EN = "TRUE";
694 parameter RX_XCLK_SEL = "RXREC";
695 parameter RXPH_CFG = 24'h0;
696 parameter RXPH_MONITOR_SEL = 5'h0;
697 parameter RXPHDLY_CFG = 24'h0;
698 parameter RXDLY_CFG = 16'h0;
699 parameter RXDLY_LCFG = 9'h0;
700 parameter RXDLY_TAP_CFG = 16'h0;
701 parameter RX_DDI_SEL = 6'h0;
702 parameter TST_RSV = 32'h0;
703 // RX Buffer Attributes, ug476 p.259
704 parameter RX_BUFFER_CFG = 6'b0;
705 parameter RX_DEFER_RESET_BUF_EN = "TRUE";
706 parameter RXBUF_ADDR_MODE = "FAST";
707 parameter RXBUF_EIDLE_HI_CNT = 4'b0;
708 parameter RXBUF_EIDLE_LO_CNT = 4'b0;
709 parameter RXBUF_RESET_ON_CB_CHANGE = "TRUE";
710 parameter RXBUF_RESET_ON_COMMAALIGN = "FALSE";
711 parameter RXBUF_RESET_ON_EIDLE = "FALSE";
712 parameter RXBUF_THRESH_OVFLW = 0;
713 parameter RXBUF_THRESH_OVRD = "FALSE";
714 parameter RXBUF_THRESH_UNDFLW = 0;
715 // RX Clock Correction Attributes, ug476 p.265
716 parameter CBCC_DATA_SOURCE_SEL = "DECODED";
717 parameter CLK_CORRECT_USE = "FALSE";
718 parameter CLK_COR_SEQ_2_USE = "FALSE";
719 parameter CLK_COR_KEEP_IDLE = "FALSE";
720 parameter CLK_COR_MAX_LAT = 9;
721 parameter CLK_COR_MIN_LAT = 7;
722 parameter CLK_COR_PRECEDENCE = "TRUE";
723 parameter CLK_COR_REPEAT_WAIT = 0;
724 parameter CLK_COR_SEQ_LEN = 1;
725 parameter CLK_COR_SEQ_1_ENABLE = 4'b1111;
726 parameter CLK_COR_SEQ_1_1 = 10'b0;
727 parameter CLK_COR_SEQ_1_2 = 10'b0;
728 parameter CLK_COR_SEQ_1_3 = 10'b0;
729 parameter CLK_COR_SEQ_1_4 = 10'b0;
730 parameter CLK_COR_SEQ_2_ENABLE = 4'b1111;
731 parameter CLK_COR_SEQ_2_1 = 10'b0;
732 parameter CLK_COR_SEQ_2_2 = 10'b0;
733 parameter CLK_COR_SEQ_2_3 = 10'b0;
734 parameter CLK_COR_SEQ_2_4 = 10'b0;
735 // RX Channel Bonding Attributes, ug476 p.276
736 parameter CHAN_BOND_MAX_SKEW = 1;
737 parameter CHAN_BOND_KEEP_ALIGN = "FALSE";
738 parameter CHAN_BOND_SEQ_LEN = 1;
739 parameter CHAN_BOND_SEQ_1_1 = 10'b0;
740 parameter CHAN_BOND_SEQ_1_2 = 10'b0;
741 parameter CHAN_BOND_SEQ_1_3 = 10'b0;
742 parameter CHAN_BOND_SEQ_1_4 = 10'b0;
743 parameter CHAN_BOND_SEQ_1_ENABLE = 4'b1111;
744 parameter CHAN_BOND_SEQ_2_1 = 10'b0;
745 parameter CHAN_BOND_SEQ_2_2 = 10'b0;
746 parameter CHAN_BOND_SEQ_2_3 = 10'b0;
747 parameter CHAN_BOND_SEQ_2_4 = 10'b0;
748 parameter CHAN_BOND_SEQ_2_ENABLE = 4'b1111;
749 parameter CHAN_BOND_SEQ_2_USE = "FALSE";
750 parameter FTS_DESKEW_SEQ_ENABLE = 4'b1111;
751 parameter FTS_LANE_DESKEW_CFG = 4'b1111;
752 parameter FTS_LANE_DESKEW_EN = "FALSE";
753 parameter PCS_PCIE_EN = "FALSE";
754 // RX Gearbox Attributes, ug476 p.287
755 parameter RXGEARBOX_EN = "FALSE";
756 
757 // ug476 table p.326 - undocumented parameters
758 parameter RX_CLK25_DIV = 6;
759 parameter TX_CLK25_DIV = 6;
760 
761 `ifdef OPEN_SOURCE_ONLY
762 GTXE2_GPL #(
763 `else // OPEN_SOURCE_ONLY
764 GTXE2_CHANNEL #(
765 `endif // OPEN_SOURCE_ONLY
766 // simulation common attributes, UG476 p.28
772 // Clocking Atributes, UG476 p.38
774 // CPLL Attributes, UG476 p.49
775  .CPLL_CFG (CPLL_CFG),
781  .RXOUT_DIV (RXOUT_DIV),
782  .TXOUT_DIV (TXOUT_DIV),
784  .PMA_RSV3 (PMA_RSV3),
785 // TX Initialization and Reset Attributes, ug476 p.66
788 // RX Initialization and Reset Attributes, UG476 p.75
796 // Power Down attributes, ug476 p.88
803 // GTX Digital Monitor Attributes, ug476 p.96
805 // TX Interface attributes, ug476 p.111
808 // TX Gearbox Attributes, ug476 p.121
811 // TX BUffer Attributes, ug476 p.134
812  .TXBUF_EN (TXBUF_EN),
813 // TX Bypass buffer, ug476 p.138
815  .TXPH_CFG (TXPH_CFG),
818  .TXDLY_CFG (TXDLY_CFG),
821 /* .TXSYNC_MULTILANE (TXSYNC_MULTILANE),
822  .TXSYNC_SKIP_DA (TXSYNC_SKIP_DA),
823  .TXSYNC_OVRD (TXSYNC_OVRD),
824  .LOOPBACK_CFG (LOOPBACK_CFG),**/
825 // TX Pattern Generator, ug476 p.147
827 // TX Fabric Clock Output Control Attributes, ug476 p. 153
829 // TX Phase Interpolator PPM Controller Attributes, ug476 p.155
830 // GTH only
831 /* .TXPI_SYNCFREQ_PPM (TXPI_SYNCFREQ_PPM),
832  .TXPI_PPM_CFG (TXPI_PPM_CFG),
833  .TXPI_INVSTROBE_SEL (TXPI_INVSTROBE_SEL),
834  .TXPI_GREY_SEL (TXPI_GREY_SEL),
835  .TXPI_PPMCLK_SEL (TXPI_PPMCLK_SEL),**/
836 // TX Configurable Driver Attributes, ug476 p.162
856 // TX Receiver Detection Attributes, ug476 p.165
859 // TX OOB Signaling Attributes
861 // RX AFE Attributes, ug476 p.171
862  .RX_CM_SEL (RX_CM_SEL),
866 // RX OOB Signaling Attributes, ug476 p.179
868  .RXOOB_CFG (RXOOB_CFG),
879 // RX Equalizer Attributes, ug476 p.193
880  .RX_OS_CFG (RX_OS_CFG),
889  .PMA_RSV (PMA_RSV),
892  .PMA_RSV4 (PMA_RSV4),
893  .PMA_RSV2 (PMA_RSV2),
900 // CDR Attributes, ug476 p.203
901  .RXCDR_CFG (RXCDR_CFG),
906 // RX Fabric Clock Output Control Attributes
908 // RX Margin Analysis Attributes
918 /* .es_control_status (es_control_status),
919  .es_rdata (es_rdata),
920  .es_sdata (es_sdata),
921  .es_error_count (es_error_count),
922  .es_sample_count (es_sample_count),**/
926 // Pattern Checker Attributes, ug476 p.226
927  //.RX_PRBS_ERR_CNT (RX_PRBS_ERR_CNT),
928 // RX Byte and Word Alignment Attributes, ug476 p.235
940  //.COMMA_ALIGN_LATENCY (COMMA_ALIGN_LATENCY),
941 // RX 8B/10B Decoder Attributes, ug476 p.242
947 // RX Buffer Bypass Attributes, ug476 p.247
948  .RXBUF_EN (RXBUF_EN),
950  .RXPH_CFG (RXPH_CFG),
953  .RXDLY_CFG (RXDLY_CFG),
957  .TST_RSV (TST_RSV),
958 // RX Buffer Attributes, ug476 p.259
970 // RX Clock Correction Attributes, ug476 p.265
990 // RX Channel Bonding Attributes, ug476 p.276
1009 // RX Gearbox Attributes, ug476 p.287
1011 
1012 // ug476 table p.326 - undocumented parameters
1015 )
1016 `ifdef OPEN_SOURCE_ONLY
1017 gtx_gpl(
1018 `else // OPEN_SOURCE_ONLY
1019 gtx_unisims(
1020 `endif // OPEN_SOURCE_ONLY
1021 // clocking ports, UG476 p.37
1022  .CPLLREFCLKSEL (CPLLREFCLKSEL),
1023  .GTGREFCLK (GTGREFCLK),
1024  .GTNORTHREFCLK0 (GTNORTHREFCLK0),
1025  .GTNORTHREFCLK1 (GTNORTHREFCLK1),
1026  .GTREFCLK0 (GTREFCLK0),
1027  .GTREFCLK1 (GTREFCLK1),
1028  .GTSOUTHREFCLK0 (GTSOUTHREFCLK0),
1029  .GTSOUTHREFCLK1 (GTSOUTHREFCLK1),
1030  .RXSYSCLKSEL (RXSYSCLKSEL),
1031  .TXSYSCLKSEL (TXSYSCLKSEL),
1032  .GTREFCLKMONITOR (GTREFCLKMONITOR),
1033 // CPLL Ports, UG476 p.48
1034  .CPLLLOCKDETCLK (CPLLLOCKDETCLK),
1035  .CPLLLOCKEN (CPLLLOCKEN),
1036  .CPLLPD (CPLLPD),
1037  .CPLLRESET (CPLLRESET),
1038  .CPLLFBCLKLOST (CPLLFBCLKLOST),
1039  .CPLLLOCK (CPLLLOCK),
1040  .CPLLREFCLKLOST (CPLLREFCLKLOST),
1041  .TSTOUT (TSTOUT),
1042  .GTRSVD (GTRSVD),
1043  .PCSRSVDIN (PCSRSVDIN),
1044  .PCSRSVDIN2 (PCSRSVDIN2),
1045  .PMARSVDIN (PMARSVDIN),
1046  .PMARSVDIN2 (PMARSVDIN2),
1047  .TSTIN (TSTIN),
1048 // Reset Mode ports, ug476 p.62
1049  .GTRESETSEL (GTRESETSEL),
1050  .RESETOVRD (RESETOVRD),
1051 // TX Reset ports, ug476 p.65
1052  .CFGRESET (CFGRESET),
1053  .GTTXRESET (GTTXRESET),
1054  .TXPCSRESET (TXPCSRESET),
1055  .TXPMARESET (TXPMARESET),
1056  .TXRESETDONE (TXRESETDONE),
1057  .TXUSERRDY (TXUSERRDY),
1058  .PCSRSVDOUT (PCSRSVDOUT),
1059 // RX Reset ports, UG476 p.73
1060  .GTRXRESET (GTRXRESET),
1061  .RXPMARESET (RXPMARESET),
1062  .RXCDRRESET (RXCDRRESET),
1063  .RXCDRFREQRESET (RXCDRFREQRESET),
1064  .RXDFELPMRESET (RXDFELPMRESET),
1065  .EYESCANRESET (EYESCANRESET),
1066  .RXPCSRESET (RXPCSRESET),
1067  .RXBUFRESET (RXBUFRESET),
1068  .RXUSERRDY (RXUSERRDY),
1069  .RXRESETDONE (RXRESETDONE),
1070  .RXOOBRESET (RXOOBRESET),
1071 // Power Down ports, ug476 p.88
1072  .RXPD (RXPD),
1073  .TXPD (TXPD),
1074  .TXPDELECIDLEMODE (TXPDELECIDLEMODE),
1075  .TXPHDLYPD (TXPHDLYPD),
1076  .RXPHDLYPD (RXPHDLYPD),
1077 // Loopback ports, ug476 p.91
1078  .LOOPBACK (LOOPBACK),
1079 // Dynamic Reconfiguration Port, ug476 p.92
1080  .DRPADDR (DRPADDR),
1081  .DRPCLK (DRPCLK),
1082  .DRPDI (DRPDI),
1083  .DRPDO (DRPDO),
1084  .DRPEN (DRPEN),
1085  .DRPRDY (DRPRDY),
1086  .DRPWE (DRPWE),
1087 // Digital Monitor Ports, ug476 p.95
1088  .CLKRSVD (CLKRSVD),
1089  .DMONITOROUT (DMONITOROUT),
1090 // TX Interface Ports, ug476 p.110
1091  .TXCHARDISPMODE (TXCHARDISPMODE),
1092  .TXCHARDISPVAL (TXCHARDISPVAL),
1093  .TXDATA (TXDATA),
1094  .TXUSRCLK (TXUSRCLK),
1095  .TXUSRCLK2 (TXUSRCLK2),
1096 // TX 8B/10B encoder ports, ug476 p.118
1097  .TX8B10BBYPASS (TX8B10BBYPASS),
1098  .TX8B10BEN (TX8B10BEN),
1099  .TXCHARISK (TXCHARISK),
1100 // TX Gearbox ports, ug476 p.122
1101  .TXGEARBOXREADY (TXGEARBOXREADY),
1102  .TXHEADER (TXHEADER),
1103  .TXSEQUENCE (TXSEQUENCE),
1104  .TXSTARTSEQ (TXSTARTSEQ),
1105 // TX BUffer Ports, ug476 p.134
1106  .TXBUFSTATUS (TXBUFSTATUS),
1107 // TX Buffer Bypass Ports, ug476 p.136
1108  .TXDLYSRESET (TXDLYSRESET),
1109  .TXPHALIGN (TXPHALIGN),
1110  .TXPHALIGNEN (TXPHALIGNEN),
1111  .TXPHINIT (TXPHINIT),
1112  .TXPHOVRDEN (TXPHOVRDEN),
1113  .TXPHDLYRESET (TXPHDLYRESET),
1114  .TXDLYBYPASS (TXDLYBYPASS),
1115  .TXDLYEN (TXDLYEN),
1116  .TXDLYOVRDEN (TXDLYOVRDEN),
1117  .TXPHDLYTSTCLK (TXPHDLYTSTCLK),
1118  .TXDLYHOLD (TXDLYHOLD),
1119  .TXDLYUPDOWN (TXDLYUPDOWN),
1120  .TXPHALIGNDONE (TXPHALIGNDONE),
1121  .TXPHINITDONE (TXPHINITDONE),
1122  .TXDLYSRESETDONE (TXDLYSRESETDONE),
1123 /* .TXSYNCMODE (TXSYNCMODE),
1124  .TXSYNCALLIN (TXSYNCALLIN),
1125  .TXSYNCIN (TXSYNCIN),
1126  .TXSYNCOUT (TXSYNCOUT),
1127  .TXSYNCDONE (TXSYNCDONE),**/
1128 // TX Pattern Generator, ug476 p.147
1129  .TXPRBSSEL (TXPRBSSEL),
1130  .TXPRBSFORCEERR (TXPRBSFORCEERR),
1131 // TX Polarity Control Ports, ug476 p.149
1132  .TXPOLARITY (TXPOLARITY),
1133 // TX Fabric Clock Output Control Ports, ug476 p.152
1134  .TXOUTCLKSEL (TXOUTCLKSEL),
1135  .TXRATE (TXRATE),
1136  .TXOUTCLKFABRIC (TXOUTCLKFABRIC),
1137  .TXOUTCLK (TXOUTCLK),
1138  .TXOUTCLKPCS (TXOUTCLKPCS),
1139  .TXRATEDONE (TXRATEDONE),
1140 // TX Phase Interpolator PPM Controller Ports, ug476 p.154
1141 // GTH only
1142 /* input TXPIPPMEN,
1143  .TXPIPPMOVRDEN (TXPIPPMOVRDEN),
1144  .TXPIPPMSEL (TXPIPPMSEL),
1145  .TXPIPPMPD (TXPIPPMPD),
1146  .TXPIPPMSTEPSIZE (TXPIPPMSTEPSIZE),**/
1147 // TX Configurable Driver Ports, ug476 p.156
1148  .TXBUFDIFFCTRL (TXBUFDIFFCTRL),
1149  .TXDEEMPH (TXDEEMPH),
1150  .TXDIFFCTRL (TXDIFFCTRL),
1151  .TXELECIDLE (TXELECIDLE),
1152  .TXINHIBIT (TXINHIBIT),
1153  .TXMAINCURSOR (TXMAINCURSOR),
1154  .TXMARGIN (TXMARGIN),
1155  .TXQPIBIASEN (TXQPIBIASEN),
1156  .TXQPISENN (TXQPISENN),
1157  .TXQPISENP (TXQPISENP),
1158  .TXQPISTRONGPDOWN (TXQPISTRONGPDOWN),
1159  .TXQPIWEAKPUP (TXQPIWEAKPUP),
1160  .TXPOSTCURSOR (TXPOSTCURSOR),
1161  .TXPOSTCURSORINV (TXPOSTCURSORINV),
1162  .TXPRECURSOR (TXPRECURSOR),
1163  .TXPRECURSORINV (TXPRECURSORINV),
1164  .TXSWING (TXSWING),
1165  .TXDIFFPD (TXDIFFPD),
1166  .TXPISOPD (TXPISOPD),
1167 // TX Receiver Detection Ports, ug476 p.165
1168  .TXDETECTRX (TXDETECTRX),
1169  .PHYSTATUS (PHYSTATUS),
1170  .RXSTATUS (RXSTATUS),
1171 // TX OOB Signaling Ports, ug476 p.166
1172  .TXCOMFINISH (TXCOMFINISH),
1173  .TXCOMINIT (TXCOMINIT),
1174  .TXCOMSAS (TXCOMSAS),
1175  .TXCOMWAKE (TXCOMWAKE),
1176 // RX AFE Ports, ug476 p.171
1177  .RXQPISENN (RXQPISENN),
1178  .RXQPISENP (RXQPISENP),
1179  .RXQPIEN (RXQPIEN),
1180 // RX OOB Signaling Ports, ug476 p.178
1181  .RXELECIDLEMODE (RXELECIDLEMODE),
1182  .RXELECIDLE (RXELECIDLE),
1183  .RXCOMINITDET (RXCOMINITDET),
1184  .RXCOMSASDET (RXCOMSASDET),
1185  .RXCOMWAKEDET (RXCOMWAKEDET),
1186 // RX Equalizer Ports, ug476 p.189
1187  .RXLPMEN (RXLPMEN),
1188  .RXOSHOLD (RXOSHOLD),
1189  .RXOSOVRDEN (RXOSOVRDEN),
1190  .RXLPMLFHOLD (RXLPMLFHOLD),
1191  .RXLPMLFKLOVRDEN (RXLPMLFKLOVRDEN),
1192  .RXLPMHFHOLD (RXLPMHFHOLD),
1193  .RXLPMHFOVRDEN (RXLPMHFOVRDEN),
1194  .RXDFEAGCHOLD (RXDFEAGCHOLD),
1195  .RXDFEAGCOVRDEN (RXDFEAGCOVRDEN),
1196  .RXDFELFHOLD (RXDFELFHOLD),
1197  .RXDFELFOVRDEN (RXDFELFOVRDEN),
1198  .RXDFEUTHOLD (RXDFEUTHOLD),
1199  .RXDFEUTOVRDEN (RXDFEUTOVRDEN),
1200  // this signal shall be present only in GTH, but for some reason it's included in unisims gtxe2
1201  .RXDFEVSEN (1'b0),
1202  .RXDFEVPHOLD (RXDFEVPHOLD),
1203  .RXDFEVPOVRDEN (RXDFEVPOVRDEN),
1204  .RXDFETAP2HOLD (RXDFETAP2HOLD),
1205  .RXDFETAP2OVRDEN (RXDFETAP2OVRDEN),
1206  .RXDFETAP3HOLD (RXDFETAP3HOLD),
1207  .RXDFETAP3OVRDEN (RXDFETAP3OVRDEN),
1208  .RXDFETAP4HOLD (RXDFETAP4HOLD),
1209  .RXDFETAP4OVRDEN (RXDFETAP4OVRDEN),
1210  .RXDFETAP5HOLD (RXDFETAP5HOLD),
1211  .RXDFETAP5OVRDEN (RXDFETAP5OVRDEN),
1212  .RXDFECM1EN (RXDFECM1EN),
1213  .RXDFEXYDHOLD (RXDFEXYDHOLD),
1214  .RXDFEXYDOVRDEN (RXDFEXYDOVRDEN),
1215  .RXDFEXYDEN (RXDFEXYDEN),
1216  .RXMONITORSEL (RXMONITORSEL),
1217  .RXMONITOROUT (RXMONITOROUT),
1218 // CDR Ports, ug476 p.202
1219  .RXCDRHOLD (RXCDRHOLD),
1220  .RXCDROVRDEN (RXCDROVRDEN),
1221  .RXCDRRESETRSV (RXCDRRESETRSV),
1222  .RXRATE (RXRATE),
1223  .RXCDRLOCK (RXCDRLOCK),
1224 // RX Fabric Clock Output Control Ports, ug476 p.213
1225  .RXOUTCLKSEL (RXOUTCLKSEL),
1226  .RXOUTCLKFABRIC (RXOUTCLKFABRIC),
1227  .RXOUTCLK (RXOUTCLK),
1228  .RXOUTCLKPCS (RXOUTCLKPCS),
1229  .RXRATEDONE (RXRATEDONE),
1230  .RXDLYBYPASS (RXDLYBYPASS),
1231 // RX Margin Analysis Ports, ug476 p.220
1232  .EYESCANDATAERROR (EYESCANDATAERROR),
1233  .EYESCANTRIGGER (EYESCANTRIGGER),
1234  .EYESCANMODE (EYESCANMODE),
1235 // RX Polarity Control Ports, ug476 p.224
1236  .RXPOLARITY (RXPOLARITY),
1237 // Pattern Checker Ports, ug476 p.225
1238  .RXPRBSCNTRESET (RXPRBSCNTRESET),
1239  .RXPRBSSEL (RXPRBSSEL),
1240  .RXPRBSERR (RXPRBSERR),
1241 // RX Byte and Word Alignment Ports, ug476 p.233
1242  .RXBYTEISALIGNED (RXBYTEISALIGNED),
1243  .RXBYTEREALIGN (RXBYTEREALIGN),
1244  .RXCOMMADET (RXCOMMADET),
1245  .RXCOMMADETEN (RXCOMMADETEN),
1246  .RXPCOMMAALIGNEN (RXPCOMMAALIGNEN),
1247  .RXMCOMMAALIGNEN (RXMCOMMAALIGNEN),
1248  .RXSLIDE (RXSLIDE),
1249 // RX 8B/10B Decoder Ports, ug476 p.24
1250  .RX8B10BEN (RX8B10BEN),
1251  .RXCHARISCOMMA (RXCHARISCOMMA),
1252  .RXCHARISK (RXCHARISK),
1253  .RXDISPERR (RXDISPERR),
1254  .RXNOTINTABLE (RXNOTINTABLE),
1255  .SETERRSTATUS (SETERRSTATUS),
1256 // RX Buffer Bypass Ports, ug476 p.244
1257  .RXPHDLYRESET (RXPHDLYRESET),
1258  .RXPHALIGN (RXPHALIGN),
1259  .RXPHALIGNEN (RXPHALIGNEN),
1260  .RXPHOVRDEN (RXPHOVRDEN),
1261  .RXDLYSRESET (RXDLYSRESET),
1262  .RXDLYEN (RXDLYEN),
1263  .RXDLYOVRDEN (RXDLYOVRDEN),
1264  .RXDDIEN (RXDDIEN),
1265  .RXPHALIGNDONE (RXPHALIGNDONE),
1266  .RXPHMONITOR (RXPHMONITOR),
1267  .RXPHSLIPMONITOR (RXPHSLIPMONITOR),
1268  .RXDLYSRESETDONE (RXDLYSRESETDONE),
1269 // RX Buffer Ports, ug476 p.259
1270  .RXBUFSTATUS (RXBUFSTATUS),
1271 // RX Clock Correction Ports, ug476 p.263
1272  .RXCLKCORCNT (RXCLKCORCNT),
1273 // RX Channel Bonding Ports, ug476 p.274
1274  .RXCHANBONDSEQ (RXCHANBONDSEQ),
1275  .RXCHANISALIGNED (RXCHANISALIGNED),
1276  .RXCHANREALIGN (RXCHANREALIGN),
1277  .RXCHBONDI (RXCHBONDI),
1278  .RXCHBONDO (RXCHBONDO),
1279  .RXCHBONDLEVEL (RXCHBONDLEVEL),
1280  .RXCHBONDMASTER (RXCHBONDMASTER),
1281  .RXCHBONDSLAVE (RXCHBONDSLAVE),
1282  .RXCHBONDEN (RXCHBONDEN),
1283 // RX Gearbox Ports, ug476 p.285
1284  .RXDATAVALID (RXDATAVALID),
1285  .RXGEARBOXSLIP (RXGEARBOXSLIP),
1286  .RXHEADER (RXHEADER),
1287  .RXHEADERVALID (RXHEADERVALID),
1288  .RXSTARTOFSEQ (RXSTARTOFSEQ),
1289 // FPGA RX Interface Ports, ug476 p.299
1290  .RXDATA (RXDATA),
1291  .RXUSRCLK (RXUSRCLK),
1292  .RXUSRCLK2 (RXUSRCLK2),
1293 
1294 // ug476, p.323
1295  .RXVALID (RXVALID),
1296 // for correct clocking scheme in case of multilane structure
1297  .QPLLCLK (QPLLCLK),
1298  .QPLLREFCLK (QPLLREFCLK),
1299 
1300 // Diffpairs
1301  .GTXRXP (GTXRXP),
1302  .GTXRXN (GTXRXN),
1303  .GTXTXN (GTXTXN),
1304  .GTXTXP (GTXTXP)
1305 );
1306 
1307 endmodule
1308 
15962ALIGN_PCOMMA_VALUE10'b0101111100
15960ALIGN_MCOMMA_VALUE10'b1010000011
15957ALIGN_COMMA_ENABLE10'b1111111111