1 -------------------------------------------------------------------------------
7 -------------------------------------------------------------------------------
10 use ieee.std_logic_1164.
all;
11 use ieee.std_logic_misc.
all;
14 use UNISIM.VCOMPONENTS.
ALL;
33 --GTXRXRESET_IN : in std_logic;
34 RXN_IN : in ((num_GTX_per_group*num_GTX_groups)-1 downto 0);
35 RXP_IN : in ((num_GTX_per_group*num_GTX_groups)-1 downto 0);
36 TXN_OUT : out ((num_GTX_per_group*num_GTX_groups)-1 downto 0);
37 TXP_OUT : out ((num_GTX_per_group*num_GTX_groups)-1 downto 0);
41 send_align : in ((num_GTX_per_group*num_GTX_groups)-1 downto 0);
43 --TXUSRCLK2_IN_bufferedG_out : out std_logic_vector((num_GTX_groups)-1 downto 0);
44 --RXUSRCLK2_IN_out : out std_logic_vector((num_GTX_groups*num_GTX_per_group)-1 downto 0);
45 --RX_ERROR_OUT : out std_logic;
46 --RX_COMMA_RECEIVED : out std_logic_vector ((num_GTX_per_group*num_GTX_groups)-1 downto 0);
47 --ila_trigger_held20_out : out std_logic;
48 indata : in (TX_indata_length-1 downto 0);
72 ----------------------------- Reference Clocks ----------------------------
79 -- signals for the fifos crossing from system to MGT clock domains
80 -- signal wr_en : std_logic_vector(num_GTX_groups - 1 downto 0);
81 -- signal rd_en : std_logic_vector(num_GTX_groups*num_fifos_per_group - 1 downto 0);
82 -- signal full : std_logic_vector(num_GTX_groups*num_fifos_per_group - 1 downto 0);
83 -- signal overflow : std_logic_vector(num_GTX_groups*num_fifos_per_group - 1 downto 0);
84 -- signal underflow : std_logic_vector(num_GTX_groups*num_fifos_per_group - 1 downto 0);
85 -- signal almost_full : std_logic_vector(num_GTX_groups*num_fifos_per_group - 1 downto 0);
86 -- signal empty : std_logic_vector(num_GTX_groups*num_fifos_per_group - 1 downto 0);
87 -- signal almost_empty : std_logic_vector(num_GTX_groups*num_fifos_per_group - 1 downto 0);
88 -- signal rd_data_count: arr_rd_data_count(num_GTX_groups*num_fifos_per_group - 1 downto 0);
89 -- signal wr_data_count: arr_wr_data_count(num_GTX_groups*num_fifos_per_group - 1 downto 0);
90 signal fifo_dout: (num_GTX_groups*num_GTX_per_group*(GTX_data_word_width+2)-1 downto 0);
96 signal subtick_counter : arr_ctr_3bit(num_GTX_groups*num_fifos_per_group - 1 downto 0);
111 signal rx_error_crc : (num_GTX_groups*num_fifos_per_group - 1 downto 0);
113 signal rx_error_any : (num_GTX_groups*num_fifos_per_group - 1 downto 0);
123 --signal RX_ERROR_OUT_sig : std_logic;
125 --signals for GTX ports IN OUT designates input/output to/from the GTX
127 ---------------- Transmit Ports - 8b10b Encoder Control Ports --------------
128 signal TXCHARISK_IN : arr_2((num_GTX_per_group*num_GTX_groups)-1 downto 0);
129 signal TXKERR_OUT : arr_2((num_GTX_per_group*num_GTX_groups)-1 downto 0);
131 ------------------ Transmit Ports - TX Data Path interface -----------------
135 ---------------- Transmit Ports - TX Driver and OOB signaling --------------
136 signal TXDIFFCTRL_IN : arr_4((num_GTX_per_group*num_GTX_groups)-1 downto 0);
138 --------------- Transmit Ports - TX Driver and OOB signalling --------------
140 -------- Transmit Ports - TX Elastic Buffer and Phase Alignment Ports ------
147 ----------------------- Transmit Ports - TX PLL Ports ----------------------
148 --signal GTXTXRESET_IN : std_logic_vector((num_GTX_per_group*num_GTX_groups)-1 downto 0);
154 ----------------------- Receive Ports - 8b10b Decoder ----------------------
156 signal RXCHARISK_OUT : arr_2((num_GTX_per_group*num_GTX_groups)-1 downto 0);
157 signal RXDISPERR_OUT : arr_2((num_GTX_per_group*num_GTX_groups)-1 downto 0);
159 --------------- Receive Ports - Comma Detection and Alignment --------------
166 ------------------- Receive Ports - RX Data Path interface -----------------
172 ------------ Receive Ports - RX Decision Feedback Equalizer(DFE) -----------
173 signal DFECLKDLYADJ : arr_6((num_GTX_per_group*num_GTX_groups)-1 downto 0);
175 signal DFEDLYOVRD : ((num_GTX_per_group*num_GTX_groups)-1 downto 0);
176 signal DFEEYEDACMON : arr_5((num_GTX_per_group*num_GTX_groups)-1 downto 0);
177 signal DFESENSCAL : arr_3((num_GTX_per_group*num_GTX_groups)-1 downto 0);
178 signal DFETAP1 : arr_5((num_GTX_per_group*num_GTX_groups)-1 downto 0);
180 signal DFETAP2 : arr_5((num_GTX_per_group*num_GTX_groups)-1 downto 0);
182 signal DFETAP3 : arr_4((num_GTX_per_group*num_GTX_groups)-1 downto 0);
184 signal DFETAP4 : arr_4((num_GTX_per_group*num_GTX_groups)-1 downto 0);
186 signal DFETAPOVRD : ((num_GTX_per_group*num_GTX_groups)-1 downto 0);
188 ------- Receive Ports - RX Driver,OOB signalling,Coupling and Eq.,CDR ------
189 signal RXEQMIX_IN : arr_3((num_GTX_per_group*num_GTX_groups)-1 downto 0);
191 -------- Receive Ports - RX Elastic Buffer and Phase Alignment Ports -------
200 ------------------------ Receive Ports - RX PLL Ports ----------------------
213 -- output signals to be left floating
228 -- ground and tied_to_vcc_i signals
232 --signal tied_to_vcc_vec_i : std_logic_vector(7 downto 0);
239 --signals for the phase syncronization FSMs
249 signal long_counter : long_unsigned_array( (num_GTX_per_group*num_GTX_groups)-1 downto 0);
253 signal wait_done : ( (num_GTX_per_group*num_GTX_groups)-1 downto 0);
257 --signal GTX_TX_READY_OUT_sig: std_logic;
258 --signal cGTX_TX_READY_OUT_sig: std_logic;
266 --this will be used as a reset for
267 --wr_en; hold for 20 cycles to avoid
270 -- same as above registered in the
272 -- signal wr_en_delay : arr_4(num_GTX_groups-1 downto 0);
276 -- --these two sync the signal to the system domain
277 -- signal c_tx_sync_done_grp_r_held20_r_clk320 : std_logic_vector(num_GTX_groups-1 downto 0);
278 -- signal c_tx_sync_done_grp_r_held20_rr_clk320 : std_logic_vector(num_GTX_groups-1 downto 0);
280 -- --this delays once more so that there is the same delay in the system and gtx
282 -- signal c_tx_sync_done_grp_r_held20_rrr_clk320 : std_logic_vector(num_GTX_groups-1 downto 0);
284 -- --synchronise the signal back into the gtx domain
285 -- signal c_tx_sync_done_grp_r_held20_r_clk320_r_clkgtx : std_logic_vector(num_GTX_groups-1 downto 0);
289 --ATTRIBUTE buffer_type OF cGTX_TX_READY_OUT_sig : SIGNAL IS "none";
343 rand :
out (
23 downto 0));
359 DATA_in :
in (
17 downto 0);
360 DATA_out :
out (
17 downto 0);
362 subtick_counter :
in (
2 downto 0));
375 numbits : := TX_fifo_indata_length);
385 -- component block_mem
387 -- clka : IN STD_LOGIC;
388 -- ena : IN STD_LOGIC;
389 -- wea : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
390 -- addra : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
391 -- dina : IN STD_LOGIC_VECTOR(17 DOWNTO 0);
392 -- clkb : IN STD_LOGIC;
393 -- enb : IN STD_LOGIC;
394 -- addrb : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
395 -- doutb : OUT STD_LOGIC_VECTOR(17 DOWNTO 0));
398 -- component TopoTX_fifo
400 -- rst : IN STD_LOGIC;
401 -- wr_clk : IN STD_LOGIC;
402 -- rd_clk : IN STD_LOGIC;
403 -- din : IN STD_LOGIC_VECTOR(TX_fifo_indata_length-1 DOWNTO 0);
404 -- wr_en : IN STD_LOGIC;
405 -- rd_en : IN STD_LOGIC;
406 -- dout : OUT STD_LOGIC_VECTOR(TX_fifo_indata_length-1 DOWNTO 0);
407 -- full : OUT STD_LOGIC;
408 -- empty : OUT STD_LOGIC);
411 -- COMPONENT TopoTX_fifo
413 -- rst : IN STD_LOGIC;
414 -- wr_clk : IN STD_LOGIC;
415 -- rd_clk : IN STD_LOGIC;
416 -- din : IN STD_LOGIC_VECTOR( TX_fifo_indata_length-1 DOWNTO 0);
417 -- wr_en : IN STD_LOGIC;
418 -- rd_en : IN STD_LOGIC;
419 -- dout : OUT STD_LOGIC_VECTOR( TX_fifo_odata_length-1 DOWNTO 0);
420 -- full : OUT STD_LOGIC;
421 -- almost_full : OUT STD_LOGIC;
422 -- overflow : OUT STD_LOGIC;
423 -- empty : OUT STD_LOGIC;
424 -- almost_empty : OUT STD_LOGIC;
425 -- underflow : OUT STD_LOGIC;
426 -- rd_data_count : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);
427 -- wr_data_count : OUT STD_LOGIC_VECTOR(4 DOWNTO 0)
438 BCID :
in (
11 downto 0);
480 signal rand: arr_24((num_GTX_per_group*num_GTX_groups)-1 downto 0);
487 --attribute keep of TXDATA_IN, RXDATA_OUT, RXCHARISK_OUT, TXCHARISK_IN, RXCHARISCOMMA_OUT : signal is "TRUE";
491 -----------------------------------------------------------------------
493 ---- ICON component declaration
495 -----------------------------------------------------------------------
497 --component chipscope_icon_Topo_Data_TX
499 -- CONTROL0 : inout std_logic_vector(35 downto 0)
504 -----------------------------------------------------------------------
506 ---- ILA component declaration
508 -----------------------------------------------------------------------
510 --component chipscope_ila_Topo_Data_TX
512 -- CONTROL : inout std_logic_vector(35 downto 0);
513 -- CLK : in std_logic;
514 -- DATA : in std_logic_vector(46 downto 0);
515 -- TRIG0 : in std_logic_vector(15 downto 0);
516 -- TRIG_OUT : OUT STD_LOGIC
520 --signal CONTROL0 : std_logic_vector(35 downto 0);
521 --signal TRIG_OUT : std_logic;
523 --attribute keep of TRIG_OUT : signal is "TRUE";
524 --attribute keep of full, almost_full, overflow, almost_empty, underflow, rd_data_count, wr_data_count : signal is "TRUE";
527 --------------------------------------------------------------------------------
528 -- New ICON/ILA cores
529 --------------------------------------------------------------------------------
531 --WTF NO CS 20141112 -- component chipscope_icon_TopoTXRX_u3_15
532 --WTF NO CS 20141112 -- port (
533 --WTF NO CS 20141112 -- CONTROL0 : inout std_logic_vector(35 downto 0);
534 --WTF NO CS 20141112 -- CONTROL1 : inout std_logic_vector(35 downto 0);
535 --WTF NO CS 20141112 -- CONTROL2 : inout std_logic_vector(35 downto 0);
536 --WTF NO CS 20141112 -- CONTROL3 : inout std_logic_vector(35 downto 0);
537 --WTF NO CS 20141112 -- CONTROL4 : inout std_logic_vector(35 downto 0);
538 --WTF NO CS 20141112 -- CONTROL5 : inout std_logic_vector(35 downto 0);
539 --WTF NO CS 20141112 -- CONTROL6 : inout std_logic_vector(35 downto 0);
540 --WTF NO CS 20141112 -- CONTROL7 : inout std_logic_vector(35 downto 0);
541 --WTF NO CS 20141112 -- CONTROL8 : inout std_logic_vector(35 downto 0);
542 --WTF NO CS 20141112 -- CONTROL9 : inout std_logic_vector(35 downto 0);
543 --WTF NO CS 20141112 -- CONTROL10 : inout std_logic_vector(35 downto 0);
544 --WTF NO CS 20141112 -- CONTROL11 : inout std_logic_vector(35 downto 0);
545 --WTF NO CS 20141112 -- CONTROL12 : inout std_logic_vector(35 downto 0);
546 --WTF NO CS 20141112 -- CONTROL13 : inout std_logic_vector(35 downto 0);
547 --WTF NO CS 20141112 -- CONTROL14 : inout std_logic_vector(35 downto 0));
548 --WTF NO CS 20141112 -- end component;
549 --WTF NO CS 20141112 --
550 --WTF NO CS 20141112 -- component chipscope_icon_TopoTXRX_u2_15
551 --WTF NO CS 20141112 -- port (
552 --WTF NO CS 20141112 -- CONTROL0 : inout std_logic_vector(35 downto 0);
553 --WTF NO CS 20141112 -- CONTROL1 : inout std_logic_vector(35 downto 0);
554 --WTF NO CS 20141112 -- CONTROL2 : inout std_logic_vector(35 downto 0);
555 --WTF NO CS 20141112 -- CONTROL3 : inout std_logic_vector(35 downto 0);
556 --WTF NO CS 20141112 -- CONTROL4 : inout std_logic_vector(35 downto 0);
557 --WTF NO CS 20141112 -- CONTROL5 : inout std_logic_vector(35 downto 0);
558 --WTF NO CS 20141112 -- CONTROL6 : inout std_logic_vector(35 downto 0);
559 --WTF NO CS 20141112 -- CONTROL7 : inout std_logic_vector(35 downto 0);
560 --WTF NO CS 20141112 -- CONTROL8 : inout std_logic_vector(35 downto 0);
561 --WTF NO CS 20141112 -- CONTROL9 : inout std_logic_vector(35 downto 0);
562 --WTF NO CS 20141112 -- CONTROL10 : inout std_logic_vector(35 downto 0);
563 --WTF NO CS 20141112 -- CONTROL11 : inout std_logic_vector(35 downto 0);
564 --WTF NO CS 20141112 -- CONTROL12 : inout std_logic_vector(35 downto 0);
565 --WTF NO CS 20141112 -- CONTROL13 : inout std_logic_vector(35 downto 0);
566 --WTF NO CS 20141112 -- CONTROL14 : inout std_logic_vector(35 downto 0));
567 --WTF NO CS 20141112 -- end component;
568 --WTF NO CS 20141112 --
569 --WTF NO CS 20141112 -- component chipscope_icon_TopoTXRX_u4_14
570 --WTF NO CS 20141112 -- port (
571 --WTF NO CS 20141112 -- CONTROL0 : inout std_logic_vector(35 downto 0);
572 --WTF NO CS 20141112 -- CONTROL1 : inout std_logic_vector(35 downto 0);
573 --WTF NO CS 20141112 -- CONTROL2 : inout std_logic_vector(35 downto 0);
574 --WTF NO CS 20141112 -- CONTROL3 : inout std_logic_vector(35 downto 0);
575 --WTF NO CS 20141112 -- CONTROL4 : inout std_logic_vector(35 downto 0);
576 --WTF NO CS 20141112 -- CONTROL5 : inout std_logic_vector(35 downto 0);
577 --WTF NO CS 20141112 -- CONTROL6 : inout std_logic_vector(35 downto 0);
578 --WTF NO CS 20141112 -- CONTROL7 : inout std_logic_vector(35 downto 0);
579 --WTF NO CS 20141112 -- CONTROL8 : inout std_logic_vector(35 downto 0);
580 --WTF NO CS 20141112 -- CONTROL9 : inout std_logic_vector(35 downto 0);
581 --WTF NO CS 20141112 -- CONTROL10 : inout std_logic_vector(35 downto 0);
582 --WTF NO CS 20141112 -- CONTROL11 : inout std_logic_vector(35 downto 0);
583 --WTF NO CS 20141112 -- CONTROL12 : inout std_logic_vector(35 downto 0);
584 --WTF NO CS 20141112 -- CONTROL13 : inout std_logic_vector(35 downto 0));
585 --WTF NO CS 20141112 -- end component;
586 --WTF NO CS 20141112 --
587 --WTF NO CS 20141112 --
588 --WTF NO CS 20141112 -- component chipscope_icon_TopoTXRX_u3_6
589 --WTF NO CS 20141112 -- port (
590 --WTF NO CS 20141112 -- CONTROL0 : inout std_logic_vector(35 downto 0);
591 --WTF NO CS 20141112 -- CONTROL1 : inout std_logic_vector(35 downto 0);
592 --WTF NO CS 20141112 -- CONTROL2 : inout std_logic_vector(35 downto 0);
593 --WTF NO CS 20141112 -- CONTROL3 : inout std_logic_vector(35 downto 0);
594 --WTF NO CS 20141112 -- CONTROL4 : inout std_logic_vector(35 downto 0);
595 --WTF NO CS 20141112 -- CONTROL5 : inout std_logic_vector(35 downto 0));
596 --WTF NO CS 20141112 -- end component;
599 --- component chipscope_icon_TopoTXRX
601 --- CONTROL0 : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
602 --- CONTROL1 : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
603 --- CONTROL2 : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
604 --- CONTROL3 : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
605 --- CONTROL4 : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
606 --- CONTROL5 : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
607 --- CONTROL6 : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
608 --- CONTROL7 : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
609 --- CONTROL8 : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
610 --- CONTROL9 : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
611 --- CONTROL10 : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
612 --- CONTROL11 : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0));
615 --WTF NO CS 20141112 -- signal CONTROLBUS : arr_36(2+num_vio_groups+(num_GTX_groups*num_GTX_per_group) -1 downto 0);
616 --WTF NO CS 20141112 --
619 ---component chipscope_ila_TopoTXRX_40sys
621 --- CONTROL : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
622 --- CLK : IN STD_LOGIC;
623 --- DATA : IN STD_LOGIC_VECTOR(789 DOWNTO 0);
624 --- TRIG0 : IN STD_LOGIC_VECTOR(1 DOWNTO 0));
627 --WTF NO CS 20141112 -- component chipscope_ila_TopoTXRX_40sys
628 --WTF NO CS 20141112 -- port (
629 --WTF NO CS 20141112 -- CONTROL : inout std_logic_vector(35 downto 0);
630 --WTF NO CS 20141112 -- CLK : in std_logic;
631 --WTF NO CS 20141112 -- DATA : in std_logic_vector(3109 downto 0);
632 --WTF NO CS 20141112 -- TRIG0 : in std_logic_vector(1 downto 0));
633 --WTF NO CS 20141112 -- end component;
634 --WTF NO CS 20141112 --
635 --WTF NO CS 20141112 -- component chipscope_ila_320sys
636 --WTF NO CS 20141112 -- port (
637 --WTF NO CS 20141112 -- CONTROL : inout std_logic_vector(35 downto 0);
638 --WTF NO CS 20141112 -- CLK : in std_logic;
639 --WTF NO CS 20141112 -- DATA : in std_logic_vector(997 downto 0);
640 --WTF NO CS 20141112 -- TRIG0 : in std_logic_vector(1 downto 0));
641 --WTF NO CS 20141112 -- end component;
642 ---component chipscope_ila_320sys
644 --- CONTROL : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
645 --- CLK : IN STD_LOGIC;
646 --- DATA : IN STD_LOGIC_VECTOR(1109 DOWNTO 0);
647 --- TRIG0 : IN STD_LOGIC_VECTOR(1 DOWNTO 0));
650 --WTF NO CS 20141112 -- signal DATA_ila_320sys : STD_LOGIC_VECTOR(997 DOWNTO 0);
651 --WTF NO CS 20141112 -- --signal DATA_ila_320sys : STD_LOGIC_VECTOR(1109 DOWNTO 0);
652 --WTF NO CS 20141112 --
653 --WTF NO CS 20141112 --
654 --WTF NO CS 20141112 -- component chipscope_ila_320tx is
655 --WTF NO CS 20141112 -- port (
656 --WTF NO CS 20141112 -- CONTROL : inout std_logic_vector(35 downto 0);
657 --WTF NO CS 20141112 -- CLK : in std_logic;
658 --WTF NO CS 20141112 -- DATA : in std_logic_vector(314 downto 0);
659 --WTF NO CS 20141112 -- TRIG0 : in std_logic_vector(98 downto 0));
660 --WTF NO CS 20141112 -- end component chipscope_ila_320tx;
662 --component chipscope_ila_320tx
664 -- CONTROL : inout std_logic_vector(35 downto 0);
665 -- CLK : in std_logic;
666 -- DATA : in std_logic_vector(457 downto 0);
667 -- TRIG0 : in std_logic_vector(1 downto 0));
670 ---component chipscope_ila_320tx
672 --- CONTROL : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
673 --- CLK : IN STD_LOGIC;
674 --- DATA : IN STD_LOGIC_VECTOR(153 DOWNTO 0);
675 --- TRIG0 : IN STD_LOGIC_VECTOR(1 DOWNTO 0));
678 --WTF NO CS 20141112 -- signal TRIG0_ila_320tx : arr_99(num_GTX_groups-1 DOWNTO 0);
679 --WTF NO CS 20141112 -- signal DATA_ila_320tx : arr_315(num_GTX_groups-1 DOWNTO 0);
680 --WTF NO CS 20141112 -- --signal DATA_ila_320tx : STD_LOGIC_VECTOR(457 DOWNTO 0);
681 --WTF NO CS 20141112 -- --signal DATA_ila_320tx : STD_LOGIC_VECTOR(153 DOWNTO 0);
682 --WTF NO CS 20141112 --
683 --WTF NO CS 20141112 -- component chipscope_ila_320rx
684 --WTF NO CS 20141112 -- PORT (
685 --WTF NO CS 20141112 -- CONTROL : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
686 --WTF NO CS 20141112 -- CLK : IN STD_LOGIC;
687 --WTF NO CS 20141112 -- DATA : IN STD_LOGIC_VECTOR(34 DOWNTO 0);
688 --WTF NO CS 20141112 -- TRIG0 : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
689 --WTF NO CS 20141112 -- TRIG_OUT : OUT STD_LOGIC);
690 --WTF NO CS 20141112 -- end component;
691 --WTF NO CS 20141112 --
692 --WTF NO CS 20141112 -- signal DATA_ila_320rx : arr_35((num_GTX_per_group*num_GTX_groups)-1 downto 0);
693 --WTF NO CS 20141112 --
694 --WTF NO CS 20141112 -- signal ila_trigger : STD_LOGIC_VECTOR((num_GTX_per_group*num_GTX_groups)-1 downto 0);
695 --WTF NO CS 20141112 --
696 --WTF NO CS 20141112 --
697 --WTF NO CS 20141112 -- component chipscope_TopoTXRX_vio
698 --WTF NO CS 20141112 -- PORT (
699 --WTF NO CS 20141112 -- CONTROL : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
700 --WTF NO CS 20141112 -- CLK : IN STD_LOGIC;
701 --WTF NO CS 20141112 -- ASYNC_OUT : OUT STD_LOGIC_VECTOR(143 DOWNTO 0);
702 --WTF NO CS 20141112 -- SYNC_IN : IN STD_LOGIC_VECTOR(255 DOWNTO 0);
703 --WTF NO CS 20141112 -- SYNC_OUT : OUT STD_LOGIC_VECTOR(207 DOWNTO 0));
704 --WTF NO CS 20141112 -- end component;
705 --WTF NO CS 20141112 --
706 --WTF NO CS 20141112 -- signal vio_async_out : std_logic_vector( ((num_vio_groups * 144)-1) DOWNTO 0);
707 --WTF NO CS 20141112 -- signal vio_sync_in : std_logic_vector( ((num_vio_groups * 256)-1) DOWNTO 0);
708 --WTF NO CS 20141112 -- signal vio_sync_out : std_logic_vector( ((num_vio_groups * 208)-1) DOWNTO 0);
712 --component chipscope_ila_TopoTXRX_40sys
714 -- CONTROL : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
715 -- CLK : IN STD_LOGIC;
716 -- DATA : IN STD_LOGIC_VECTOR(94 DOWNTO 0);
717 -- TRIG0 : IN STD_LOGIC_VECTOR(1 DOWNTO 0));
721 --component chipscope_ila_320sys
723 -- CONTROL : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
724 -- CLK : IN STD_LOGIC;
725 -- DATA : IN STD_LOGIC_VECTOR(134 DOWNTO 0);
726 -- TRIG0 : IN STD_LOGIC_VECTOR(1 DOWNTO 0));
729 --signal DATA_ila_320sys : STD_LOGIC_VECTOR(134 DOWNTO 0);
731 --component chipscope_ila_320tx
733 -- CONTROL : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
734 -- CLK : IN STD_LOGIC;
735 -- DATA : IN STD_LOGIC_VECTOR(20 DOWNTO 0);
736 -- TRIG0 : IN STD_LOGIC_VECTOR(1 DOWNTO 0));
739 --signal DATA_ila_320tx : STD_LOGIC_VECTOR(20 DOWNTO 0);
741 --component chipscope_ila_320rx
743 -- CONTROL : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
744 -- CLK : IN STD_LOGIC;
745 -- DATA : IN STD_LOGIC_VECTOR(35 DOWNTO 0);
746 -- TRIG0 : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
747 -- TRIG_OUT : OUT STD_LOGIC);
750 --signal DATA_ila_320rx : STD_LOGIC_VECTOR(35 DOWNTO 0);
752 --signal ila_trigger : STD_LOGIC;
754 --component chipscope_TopoTXRX_vio
756 -- CONTROL : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
757 -- CLK : IN STD_LOGIC;
758 -- ASYNC_OUT : OUT STD_LOGIC_VECTOR(17 DOWNTO 0);
759 -- SYNC_IN : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
760 -- SYNC_OUT : OUT STD_LOGIC_VECTOR(25 DOWNTO 0));
763 --signal vio_async_out : STD_LOGIC_VECTOR(17 DOWNTO 0);
764 --signal vio_sync_out : STD_LOGIC_VECTOR(25 DOWNTO 0);
765 --signal vio_sync_in : STD_LOGIC_VECTOR(31 DOWNTO 0);
767 signal GTXRXRESET : ((num_GTX_per_group*num_GTX_groups)-1 downto 0);
768 signal GTXTXRESET : ((num_GTX_per_group*num_GTX_groups)-1 downto 0);
776 --WTF NO CS 20141112 --
777 --WTF NO CS 20141112 -- ila_trigger<=(others=>'0');
778 --for the purpose of debugging in ML605
779 --TXUSRCLK2_IN_bufferedG_out<=TXUSRCLK2_IN_bufferedG;
793 --tied_to_vcc_vec_i <= x"ff";
795 --chipscope_icon_1: chipscope_icon_Topo_Data_TX
797 -- CONTROL0 => CONTROL0);
799 --chipscope_ila_Topo_Data_TX_inst: chipscope_ila_Topo_Data_TX
801 -- CONTROL => CONTROL0,
802 -- CLK => RXUSRCLK2_IN_bufferedR(0),
803 -- DATA(0) => GTXTXRESET_IN,
804 -- DATA(1) => GTXRXRESET_IN,
805 -- DATA(2) => TXRESETDONE_OUT(0),
806 -- DATA(3) => RXRESETDONE_OUT(0),
807 -- DATA(4) => GTX_TX_READY_OUT_sig,
808 -- DATA(5) => GTX_RX_READY_OUT_sig,
809 -- DATA(7 downto 6) => TXCHARISK_IN(0),
810 -- DATA(9 downto 8) => RXCHARISK_OUT(0),
811 -- DATA(11 downto 10) => RXCHARISCOMMA_OUT(0),
812 -- DATA(12) => RXENMCOMMAALIGN_IN(0),
813 -- DATA(13) => RXENPCOMMAALIGN_IN(0),
814 -- DATA(14) => RXBYTEREALIGN_OUT(0),
815 -- DATA(30 downto 15) => TXDATA_IN(0),
816 -- DATA(46 downto 31) => RXDATA_OUT(0),
817 -- TRIG0(0) => GTXTXRESET_IN,
818 -- TRIG0(1) => GTXRXRESET_IN,
819 -- TRIG0(2) => TXRESETDONE_OUT(0),
820 -- TRIG0(3) => RXRESETDONE_OUT(0),
821 -- TRIG0(4) => GTX_TX_READY_OUT_sig,
822 -- TRIG0(5) => GTX_RX_READY_OUT_sig,
823 -- TRIG0(7 downto 6) => TXCHARISK_IN(0),
824 -- TRIG0(9 downto 8) => RXCHARISK_OUT(0),
825 -- TRIG0(11 downto 10)=> RXCHARISCOMMA_OUT(0),
826 -- TRIG0(12) => RXENMCOMMAALIGN_IN(0),
827 -- TRIG0(13) => RXENPCOMMAALIGN_IN(0),
828 -- TRIG0(14) => RXBYTEREALIGN_OUT(0),
829 -- TRIG0(15) => RXPLLLKDET_OUT(0),
830 -- TRIG_OUT => TRIG_OUT
833 --WTF NO CS 20141112 -- gen_Topo_TX_chipscope_icon_ila_vio: if gen_Topo_TX_chipscope='1' generate
834 --WTF NO CS 20141112 --
835 --WTF NO CS 20141112 -- gen_icon_RX_on: if gen_RX='1' generate
836 --WTF NO CS 20141112 -- -- chipscope_icon_TopoTXRX_u3_15_inst: chipscope_icon_TopoTXRX_u3_15
837 --WTF NO CS 20141112 -- -- port map (
838 --WTF NO CS 20141112 -- -- CONTROL0 => CONTROLBUS(0),
839 --WTF NO CS 20141112 -- -- CONTROL1 => CONTROLBUS(1),
840 --WTF NO CS 20141112 -- -- CONTROL2 => CONTROLBUS(2),
841 --WTF NO CS 20141112 -- -- CONTROL3 => CONTROLBUS(3),
842 --WTF NO CS 20141112 -- -- CONTROL4 => CONTROLBUS(4),
843 --WTF NO CS 20141112 -- -- CONTROL5 => CONTROLBUS(5),
844 --WTF NO CS 20141112 -- -- CONTROL6 => CONTROLBUS(6),
845 --WTF NO CS 20141112 -- -- CONTROL7 => CONTROLBUS(7),
846 --WTF NO CS 20141112 -- -- CONTROL8 => CONTROLBUS(8),
847 --WTF NO CS 20141112 -- -- CONTROL9 => CONTROLBUS(9),
848 --WTF NO CS 20141112 -- -- CONTROL10 => CONTROLBUS(10),
849 --WTF NO CS 20141112 -- -- CONTROL11 => CONTROLBUS(11),
850 --WTF NO CS 20141112 -- -- CONTROL12 => CONTROLBUS(12),
851 --WTF NO CS 20141112 -- -- CONTROL13 => CONTROLBUS(13),
852 --WTF NO CS 20141112 -- -- CONTROL14 => CONTROLBUS(14));
853 --WTF NO CS 20141112 -- --
854 --WTF NO CS 20141112 -- --
855 --WTF NO CS 20141112 --
856 --WTF NO CS 20141112 -- -- chipscope_icon_TopoTXRX_u2_15_inst: chipscope_icon_TopoTXRX_u2_15
857 --WTF NO CS 20141112 -- -- port map (
858 --WTF NO CS 20141112 -- -- CONTROL0 => CONTROLBUS(15),
859 --WTF NO CS 20141112 -- -- CONTROL1 => CONTROLBUS(16),
860 --WTF NO CS 20141112 -- -- CONTROL2 => CONTROLBUS(17),
861 --WTF NO CS 20141112 -- -- CONTROL3 => CONTROLBUS(18),
862 --WTF NO CS 20141112 -- -- CONTROL4 => CONTROLBUS(19),
863 --WTF NO CS 20141112 -- -- CONTROL5 => CONTROLBUS(20),
864 --WTF NO CS 20141112 -- -- CONTROL6 => CONTROLBUS(21),
865 --WTF NO CS 20141112 -- -- CONTROL7 => CONTROLBUS(22),
866 --WTF NO CS 20141112 -- -- CONTROL8 => CONTROLBUS(23),
867 --WTF NO CS 20141112 -- -- CONTROL9 => CONTROLBUS(24),
868 --WTF NO CS 20141112 -- -- CONTROL10 => CONTROLBUS(25),
869 --WTF NO CS 20141112 -- -- CONTROL11 => CONTROLBUS(26),
870 --WTF NO CS 20141112 -- -- CONTROL12 => CONTROLBUS(27),
871 --WTF NO CS 20141112 -- -- CONTROL13 => CONTROLBUS(28),
872 --WTF NO CS 20141112 -- -- CONTROL14 => CONTROLBUS(29));
873 --WTF NO CS 20141112 --
874 --WTF NO CS 20141112 -- -- chipscope_icon_TopoTXRX_u4_14_inst: chipscope_icon_TopoTXRX_u4_14
875 --WTF NO CS 20141112 -- -- port map (
876 --WTF NO CS 20141112 -- -- CONTROL0 => CONTROLBUS(15),
877 --WTF NO CS 20141112 -- -- CONTROL1 => CONTROLBUS(16),
878 --WTF NO CS 20141112 -- -- CONTROL2 => CONTROLBUS(17),
879 --WTF NO CS 20141112 -- -- CONTROL3 => CONTROLBUS(18),
880 --WTF NO CS 20141112 -- -- CONTROL4 => CONTROLBUS(19),
881 --WTF NO CS 20141112 -- -- CONTROL5 => CONTROLBUS(20),
882 --WTF NO CS 20141112 -- -- CONTROL6 => CONTROLBUS(21),
883 --WTF NO CS 20141112 -- -- CONTROL7 => CONTROLBUS(22),
884 --WTF NO CS 20141112 -- -- CONTROL8 => CONTROLBUS(23),
885 --WTF NO CS 20141112 -- -- CONTROL9 => CONTROLBUS(24),
886 --WTF NO CS 20141112 -- -- CONTROL10 => CONTROLBUS(25),
887 --WTF NO CS 20141112 -- -- CONTROL11 => CONTROLBUS(26),
888 --WTF NO CS 20141112 -- -- CONTROL12 => CONTROLBUS(27),
889 --WTF NO CS 20141112 -- -- CONTROL13 => CONTROLBUS(28));
890 --WTF NO CS 20141112 --
891 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- chipscope_icon_TopoTXRX_u3_6_inst: chipscope_icon_TopoTXRX_u3_6
892 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- port map (
893 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL0 => CONTROLBUS(0),
894 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL1 => CONTROLBUS(1),
895 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL2 => CONTROLBUS(2),
896 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL3 => CONTROLBUS(3),
897 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL4 => CONTROLBUS(4),
898 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL5 => CONTROLBUS(5));
899 --WTF NO CS 20141112 --
900 --WTF NO CS 20141112 --
901 --WTF NO CS 20141112 -- end generate gen_icon_RX_on;
902 --WTF NO CS 20141112 --
903 --WTF NO CS 20141112 -- gen_icon_RX_off: if gen_RX='0' generate
904 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- chipscope_icon_TopoTXRX_u3_6_inst: chipscope_icon_TopoTXRX_u3_6
905 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- port map (
906 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL0 => CONTROLBUS(0),
907 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL1 => CONTROLBUS(1),
908 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL2 => CONTROLBUS(2),
909 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL3 => CONTROLBUS(3),
910 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL4 => CONTROLBUS(4),
911 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL5 => CONTROLBUS(5));
912 --WTF NO CS 20141112 -- end generate gen_icon_RX_off;
913 --WTF NO CS 20141112 --
914 --WTF NO CS 20141112 --
915 --WTF NO CS 20141112 --
916 --WTF NO CS 20141112 -- --- chipscope_icon_TopoTXRX_inst: chipscope_icon_TopoTXRX
917 --WTF NO CS 20141112 -- --- port map (
918 --WTF NO CS 20141112 -- --- CONTROL0=> CONTROLBUS(0),
919 --WTF NO CS 20141112 -- --- CONTROL1=> CONTROLBUS(1),
920 --WTF NO CS 20141112 -- --- CONTROL2=> CONTROLBUS(2),
921 --WTF NO CS 20141112 -- --- CONTROL3=> CONTROLBUS(3),
922 --WTF NO CS 20141112 -- --- CONTROL4=> CONTROLBUS(4),
923 --WTF NO CS 20141112 -- --- CONTROL5=> CONTROLBUS(5),
924 --WTF NO CS 20141112 -- --- CONTROL6=> CONTROLBUS(6),
925 --WTF NO CS 20141112 -- --- CONTROL7=> CONTROLBUS(7),
926 --WTF NO CS 20141112 -- --- CONTROL8=> CONTROLBUS(8),
927 --WTF NO CS 20141112 -- --- CONTROL9=> CONTROLBUS(9),
928 --WTF NO CS 20141112 -- --- CONTROL10=> CONTROLBUS(10),
929 --WTF NO CS 20141112 -- --- CONTROL11=> CONTROLBUS(11));
930 --WTF NO CS 20141112 --
931 --WTF NO CS 20141112 --
932 --WTF NO CS 20141112 -- -- 24 channel
933 --WTF NO CS 20141112 -- chipscope_ila_TopoTXRX_40sys_inst: chipscope_ila_TopoTXRX_40sys
934 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- port map (
935 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL => CONTROLBUS(0),
936 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CLK => clk40,
937 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA(0) => ila_trigger_held20_all,--RX_ERROR_OUT_sig,
938 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA(1) => GTX_RX_READY_OUT_sig,
939 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA(13 downto 2) => BCID,
940 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA(37 downto 14) => send_align,
941 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA(3109 downto 38) => indata,
942 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0(0) => ila_trigger_held20_all,
943 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0(1) => GTX_RX_READY_OUT_sig);
944 --WTF NO CS 20141112 --
945 --WTF NO CS 20141112 -- --1 channel
946 --WTF NO CS 20141112 -- --chipscope_ila_TopoTXRX_40sys_inst: chipscope_ila_TopoTXRX_40sys
947 --WTF NO CS 20141112 -- -- port map (
948 --WTF NO CS 20141112 -- -- CONTROL => CONTROL0,
949 --WTF NO CS 20141112 -- -- CLK => clk40,
950 --WTF NO CS 20141112 -- -- DATA(0) => RX_ERROR_OUT_sig,
951 --WTF NO CS 20141112 -- -- DATA(1) => GTX_RX_READY_OUT_sig,
952 --WTF NO CS 20141112 -- -- DATA(13 downto 2) => BCID,
953 --WTF NO CS 20141112 -- -- DATA(14 downto 14) => send_align,
954 --WTF NO CS 20141112 -- -- DATA(94 downto 15) => indata,
955 --WTF NO CS 20141112 -- -- TRIG0(0) => ila_trigger_held20,
956 --WTF NO CS 20141112 -- -- TRIG0(1) => GTX_RX_READY_OUT_sig);
957 --WTF NO CS 20141112 --
958 --WTF NO CS 20141112 --
959 --WTF NO CS 20141112 --
960 --WTF NO CS 20141112 -- --chipscope_ila_320sys_inst: chipscope_ila_320sys
961 --WTF NO CS 20141112 -- -- port map (
962 --WTF NO CS 20141112 -- -- CONTROL => CONTROLBUS(1),
963 --WTF NO CS 20141112 -- -- CLK => clk320,
964 --WTF NO CS 20141112 -- -- DATA => DATA_ila_320sys,
965 --WTF NO CS 20141112 -- -- TRIG0(0) => ila_trigger_held20_all,
966 --WTF NO CS 20141112 -- -- TRIG0(1) => GTX_RX_READY_OUT_sig);
967 --WTF NO CS 20141112 --
968 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- ila_320tx_gen_grp: for group_i in 0 to num_GTX_groups-1 generate
969 --WTF NO CS 20141112 ----WTF NO CS 20141112 --
970 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- chipscope_ila_320tx_inst: chipscope_ila_320tx
971 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- port map (
972 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL => CONTROLBUS(1+group_i),
973 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CLK => TXUSRCLK2_IN_bufferedG(group_i),
974 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA => DATA_ila_320tx(group_i),
975 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0 => TRIG0_ila_320tx(group_i));
976 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- --TRIG0(0) => ila_trigger_held20_all or ext_trigger,
977 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- --TRIG0(1) => GTX_RX_READY_OUT_sig);
978 --WTF NO CS 20141112 ----WTF NO CS 20141112 --
979 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320tx(group_i)(0)<=ext_trigger;
980 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320tx(group_i)(1)<=set_mem_ctr_o(group_i);
981 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320tx(group_i)(2)<=c_tx_sync_done_grp_r_held20(group_i);
982 --WTF NO CS 20141112 ----WTF NO CS 20141112 --
983 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0_ila_320tx(group_i)(0)<=ext_trigger;
984 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0_ila_320tx(group_i)(1)<=set_mem_ctr_o(group_i);
985 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0_ila_320tx(group_i)(2)<=c_tx_sync_done_grp_r_held20(group_i);
986 --WTF NO CS 20141112 ----WTF NO CS 20141112 --
987 --WTF NO CS 20141112 ----WTF NO CS 20141112 --
988 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- ila_320tx_gen_gtx: for gtx_i in 0 to num_GTX_per_group-1 generate
989 --WTF NO CS 20141112 ----WTF NO CS 20141112 --
990 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320tx(group_i)(gtx_i*26 +3) <= TXENPMAPHASEALIGN_IN(group_i*num_GTX_per_group+gtx_i);
991 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320tx(group_i)(gtx_i*26 +4) <= TXPMASETPHASE_IN(group_i*num_GTX_per_group+gtx_i);
992 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320tx(group_i)(gtx_i*26 +5) <= TXDLYALIGNDISABLE_IN(group_i*num_GTX_per_group+gtx_i);
993 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320tx(group_i)(gtx_i*26 +6) <= TXDLYALIGNRESET_IN(group_i*num_GTX_per_group+gtx_i);
994 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320tx(group_i)(gtx_i*26 +7) <= tx_sync_done(group_i*num_GTX_per_group+gtx_i);
995 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320tx(group_i)(gtx_i*26 +8) <= reset_tx_sync(group_i*num_GTX_per_group+gtx_i);
996 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320tx(group_i)(gtx_i*26 +9) <= TXPLLLKDET_OUT((group_i*num_GTX_per_group)+gtx_i);
997 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320tx(group_i)(gtx_i*26 +10) <= TXRESETDONE_OUT((group_i*num_GTX_per_group)+gtx_i);
998 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320tx(group_i)(gtx_i*26 + 11 + 17 downto gtx_i*26 + 11) <= fifo_dout(18*(gtx_i+1)-1 downto 18*gtx_i);
999 --WTF NO CS 20141112 ----WTF NO CS 20141112 --
1000 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0_ila_320tx(group_i)(gtx_i*8 +3) <= TXENPMAPHASEALIGN_IN(group_i*num_GTX_per_group+gtx_i);
1001 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0_ila_320tx(group_i)(gtx_i*8 +4) <= TXPMASETPHASE_IN(group_i*num_GTX_per_group+gtx_i);
1002 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0_ila_320tx(group_i)(gtx_i*8 +5) <= TXDLYALIGNDISABLE_IN(group_i*num_GTX_per_group+gtx_i);
1003 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0_ila_320tx(group_i)(gtx_i*8 +6) <= TXDLYALIGNRESET_IN(group_i*num_GTX_per_group+gtx_i);
1004 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0_ila_320tx(group_i)(gtx_i*8 +7) <= tx_sync_done(group_i*num_GTX_per_group+gtx_i);
1005 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0_ila_320tx(group_i)(gtx_i*8 +8) <= reset_tx_sync(group_i*num_GTX_per_group+gtx_i);
1006 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0_ila_320tx(group_i)(gtx_i*8 +9) <= TXPLLLKDET_OUT((group_i*num_GTX_per_group)+gtx_i);
1007 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- TRIG0_ila_320tx(group_i)(gtx_i*8 +10) <= TXRESETDONE_OUT((group_i*num_GTX_per_group)+gtx_i);
1008 --WTF NO CS 20141112 ----WTF NO CS 20141112 --
1009 --WTF NO CS 20141112 --
1010 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- end generate ila_320tx_gen_gtx;
1011 --WTF NO CS 20141112 ----WTF NO CS 20141112 --
1012 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- end generate ila_320tx_gen_grp;
1013 --WTF NO CS 20141112 --
1014 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- vio_gen: for vio_i in 0 to num_vio_groups-1 generate
1015 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- chipscope_TopoTXRX_vio_inst: chipscope_TopoTXRX_vio
1016 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- port map (
1017 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CONTROL => CONTROLBUS(3+vio_i),
1018 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- CLK => clk40,--RXUSRCLK2_IN(vio_i*(num_GTX_groups*num_GTX_per_group)/num_vio_groups),
1019 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- ASYNC_OUT => vio_async_out( (144*(vio_i+1))-1 downto (144*vio_i) ),
1020 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- SYNC_OUT => vio_sync_out( (208*(vio_i+1))-1 downto (208*vio_i) ),
1021 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- SYNC_IN => vio_sync_in( (256*(vio_i+1))-1 downto (256*vio_i) ) );
1022 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- end generate vio_gen;
1023 --WTF NO CS 20141112 --
1024 --WTF NO CS 20141112 --
1025 --WTF NO CS 20141112 -- --we ensure that the trigger pulse generated is at least 20 cycles (320MHz RX)
1026 --WTF NO CS 20141112 -- --long so that the other cores have to pick it up
1027 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- ila_trigger_held20_gen: for gtx_i in 0 to num_GTX_groups*num_GTX_per_group - 1 generate
1028 --WTF NO CS 20141112 ----WTF NO CS 20141112 --
1029 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- ila_trigger_shiftreg(gtx_i)(0)<=ila_trigger(gtx_i);
1030 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- shiftreggen_ila_trigger: for bit_i in 19 downto 1 generate
1031 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- process(RXUSRCLK2_IN(gtx_i))
1032 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- begin
1033 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- if rising_edge(RXUSRCLK2_IN(gtx_i)) then
1034 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- ila_trigger_shiftreg(gtx_i)(bit_i)<=ila_trigger_shiftreg(gtx_i)(bit_i-1);
1035 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- end if;
1036 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- end process;
1037 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- end generate shiftreggen_ila_trigger;
1038 --WTF NO CS 20141112 ----WTF NO CS 20141112 --
1039 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- or_all_ila_trigger_shiftreg: or_all
1040 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- generic map (
1041 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- numbits => 20)
1042 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- port map (
1043 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA => ila_trigger_shiftreg(gtx_i),
1044 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- or_all => ila_trigger_held20(gtx_i)
1045 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- );
1046 --WTF NO CS 20141112 ----WTF NO CS 20141112 --
1047 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- end generate ila_trigger_held20_gen;
1048 --WTF NO CS 20141112 ----WTF NO CS 20141112 --
1049 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- or_all_ila_trigger_held20: or_all
1050 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- generic map (
1051 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- numbits => num_GTX_per_group*num_GTX_groups)
1052 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- port map (
1053 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA => ila_trigger_held20,
1054 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- or_all => ila_trigger_held20_all
1055 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- );
1056 --WTF NO CS 20141112 --
1057 --WTF NO CS 20141112 --
1058 --WTF NO CS 20141112 ---- ila_trigger_held20_out<=ila_trigger_held20_all;
1059 --WTF NO CS 20141112 --
1060 --WTF NO CS 20141112 --
1061 --WTF NO CS 20141112 -- --DATA_ila_320sys(0)<=ila_trigger_held20_all;--RX_ERROR_OUT_sig;
1062 --WTF NO CS 20141112 -- --DATA_ila_320sys(1)<=GTX_RX_READY_OUT_sig;
1063 --WTF NO CS 20141112 -- --DATA_ila_320sys(13 downto 2) <= BCID;
1064 --WTF NO CS 20141112 --
1065 --WTF NO CS 20141112 -- -- DATA_ila_320tx(0)<=ila_trigger_held20_all or ext_trigger;--RX_ERROR_OUT_sig;
1066 --WTF NO CS 20141112 -- -- DATA_ila_320tx(1)<=GTX_RX_READY_OUT_sig;
1067 --WTF NO CS 20141112 --
1068 --WTF NO CS 20141112 --
1069 --WTF NO CS 20141112 -- DATA_ila_RX_gen: for gtx_i in 0 to num_GTX_groups*num_GTX_per_group - 1 generate
1070 --WTF NO CS 20141112 --
1071 --WTF NO CS 20141112 --
1072 --WTF NO CS 20141112 --
1073 --WTF NO CS 20141112 --
1074 --WTF NO CS 20141112 -- --DATA_ila_320sys(16 + gtx_i*41 downto 14 + gtx_i*41) <= std_logic_vector(subtick_counter(gtx_i));
1075 --WTF NO CS 20141112 -- --DATA_ila_320sys(17 + gtx_i*41) <= send_align(gtx_i);
1076 --WTF NO CS 20141112 -- ----DATA_ila_320sys(12+85+16 + gtx_i*41 downto 12+6 + gtx_i*41) <= time_multiplex_data_in(gtx_i);
1077 --WTF NO CS 20141112 -- --DATA_ila_320sys(35 + gtx_i*41 downto 18 + gtx_i*41) <= time_multiplex_data_out(gtx_i);
1078 --WTF NO CS 20141112 -- --DATA_ila_320sys(53 + gtx_i*41 downto 36 + gtx_i*41) <= time_multiplex_data_out_CRC(gtx_i);
1079 --WTF NO CS 20141112 -- --DATA_ila_320sys(54 + gtx_i*41) <= set_mem_ctr_i(0);
1080 --WTF NO CS 20141112 --
1081 --WTF NO CS 20141112 --
1082 --WTF NO CS 20141112 -- --DATA_ila_320tx(19 + gtx_i*19 downto 2 + gtx_i*19) <= fifo_dout(18*(gtx_i+1)-1 downto 18*gtx_i);
1083 --WTF NO CS 20141112 -- --DATA_ila_320tx(20 + gtx_i*19) <= set_mem_ctr_o(0);
1084 --WTF NO CS 20141112 --
1085 --WTF NO CS 20141112 --
1086 --WTF NO CS 20141112 --
1087 --WTF NO CS 20141112 -- ila_RX_gen: if gen_RX='1' generate
1088 --WTF NO CS 20141112 --
1089 --WTF NO CS 20141112 -- -- chipscope_ila_320rx_inst: chipscope_ila_320rx
1090 --WTF NO CS 20141112 -- -- port map (
1091 --WTF NO CS 20141112 -- -- CONTROL => CONTROLBUS(3+num_vio_groups+gtx_i),
1092 --WTF NO CS 20141112 -- -- CLK => RXUSRCLK2_IN(gtx_i),
1093 --WTF NO CS 20141112 -- -- DATA => DATA_ila_320rx(gtx_i),
1094 --WTF NO CS 20141112 -- -- TRIG0(0) => rx_error_any(gtx_i),
1095 --WTF NO CS 20141112 -- -- TRIG0(1) => RXBYTEREALIGN_OUT(gtx_i),
1096 --WTF NO CS 20141112 -- -- TRIG_OUT => ila_trigger(gtx_i));
1097 --WTF NO CS 20141112 --
1098 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(0) <=rx_error_any(gtx_i);--rx_error_eventrealign(gtx_i) or rx_error_crc(gtx_i) or RXNOTINTABLE_OUT(gtx_i)(0) or RXNOTINTABLE_OUT(gtx_i)(1) or RXDISPERR_OUT(gtx_i)(0) or RXDISPERR_OUT(gtx_i)(1) or RXBYTEREALIGN_OUT(gtx_i); --rx_error_any(gtx_i);
1099 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(1) <= ila_trigger(gtx_i);
1100 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(2) <= ila_trigger_held20(gtx_i);
1101 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(3) <= RXBYTEISALIGNED_OUT_r(gtx_i);
1102 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(5 downto 4) <= RXNOTINTABLE_OUT(gtx_i);
1103 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(6) <= RXBYTEREALIGN_OUT(gtx_i);
1104 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(8 downto 7) <= RXDISPERR_OUT(gtx_i);
1105 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(10 downto 9) <= RXCHARISK_OUT(gtx_i);
1106 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(12 downto 11) <= RXCHARISCOMMA_OUT(gtx_i);
1107 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(13) <= rx_error_crc(gtx_i);
1108 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(14) <= rx_error_eventrealign(gtx_i);
1109 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(15) <= subtick_counter_rx_started(gtx_i);
1110 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(18 downto 16) <= std_logic_vector(subtick_counter_rx(gtx_i));
1111 --WTF NO CS 20141112 ----WTF NO CS 20141112 -- DATA_ila_320rx(gtx_i)(34 downto 19) <= RXDATA_OUT(gtx_i);
1112 --WTF NO CS 20141112 --
1113 --WTF NO CS 20141112 -- end generate ila_RX_gen;
1114 --WTF NO CS 20141112 --
1115 --WTF NO CS 20141112 -- end generate DATA_ila_RX_gen;
1116 --WTF NO CS 20141112 --
1117 --WTF NO CS 20141112 -- end generate gen_Topo_TX_chipscope_icon_ila_vio;
1120 wait_for_cdr_gen: if gen_RX='1' generate
1121 wait_for_cdr_gen_gtx: for gtx_i in (num_GTX_groups*num_GTX_per_group-1) downto 0 generate
1137 end generate wait_for_cdr_gen_gtx;
1138 end generate wait_for_cdr_gen;
1140 --just a hack for now
1141 txdatagen_grp: for group_i in (num_GTX_groups-1) downto 0 generate
1144 --process(TXUSRCLK2_IN_bufferedG(group_i),GTX_TX_READY_OUT_sig) --tx_sync_done_grp_r(group_i)) --GTX_TX_READY_OUT_sig)
1146 -- if GTX_TX_READY_OUT_sig='0' then --tx_sync_done_grp_r(group_i)='0' then --GTX_TX_READY_OUT_sig='0' then
1147 -- short_counter(group_i)<=(others=>'0');
1149 -- if rising_edge(TXUSRCLK2_IN_bufferedG(group_i)) then
1150 -- short_counter(group_i)<=short_counter_next(group_i);
1155 --process(TXUSRCLK2_IN_bufferedG(group_i),tx_sync_done_grp_r(group_i))
1156 ----GTX_TX_READY_OUT_sig) --oops wrong sensitivity list
1158 -- if rising_edge(TXUSRCLK2_IN_bufferedG(group_i)) then
1159 -- if tx_sync_done_grp_r(group_i)='0' then --GTX_TX_READY_OUT_sig='0' then
1160 -- short_counter(group_i)<=(others=>'0');
1162 -- short_counter(group_i)<=short_counter_next(group_i);
1168 --we ensure that the reset pulse generated is at least 20 cycles (320 MHz)
1171 shiftreggen_c_tx_sync_done_grp: for bit_i in 19 downto 1 generate
1178 end generate shiftreggen_c_tx_sync_done_grp;
1195 -- --this delays setting of wr_en 4 clock (clk40) cycles after the reset is cleared
1196 -- process(clk40, c_tx_sync_done_grp_r_held20(group_i))
1198 -- if c_tx_sync_done_grp_r_held20(group_i)='1' then
1199 -- wr_en(group_i)<='0';
1200 -- wr_en_delay(group_i)<=(others => '0');
1202 -- if rising_edge(clk40) then
1203 -- wr_en_delay(group_i)(0)<='1';
1204 -- wr_en_delay(group_i)(1)<=wr_en_delay(group_i)(0);
1205 -- wr_en_delay(group_i)(2)<=wr_en_delay(group_i)(1);
1206 -- wr_en_delay(group_i)(3)<=wr_en_delay(group_i)(2);
1207 -- wr_en(group_i)<=wr_en_delay(group_i)(3);
1220 txdatagen_fifo: for fifo_i in (num_fifos_per_group-1) downto 0 generate
1223 indata((group_i*num_fifos_per_group+fifo_i+1)*TX_time_multiplex_indata_length - 1
1225 (group_i*num_fifos_per_group+fifo_i)*TX_time_multiplex_indata_length);
1243 subtick_counter =>
subtick_counter(group_i*num_fifos_per_group+fifo_i
) );
1248 DATA_out =>
fifo_dout((group_i*num_fifos_per_group+fifo_i+1
)*TX_fifo_odata_length -
1
1250 (group_i*num_fifos_per_group+fifo_i
)*TX_fifo_odata_length
),
1256 --- fifo_dout((group_i*num_fifos_per_group+fifo_i+1)*TX_fifo_odata_length - 1
1258 --- (group_i*num_fifos_per_group+fifo_i)*TX_fifo_odata_length)
1259 --- <= time_multiplex_data_out(group_i*num_fifos_per_group+fifo_i);
1261 -- rd_en(group_i*num_fifos_per_group+fifo_i)<=not empty(group_i*num_fifos_per_group+fifo_i);
1263 -- TopoTX_fifo_i : TopoTX_fifo
1265 -- rst => c_tx_sync_done_grp_r_held20(group_i),
1266 -- wr_clk => clk320,
1267 -- rd_clk => TXUSRCLK2_IN_bufferedG(group_i),
1268 -- --din => indata(group_i*num_GTX_per_group * (GTX_data_word_width+2) * 8 + (fifo_i+1)*(TX_indata_length/(num_fifos_per_group*num_GTX_groups)) - 1
1270 -- -- group_i*num_GTX_per_group * (GTX_data_word_width+2) * 8 + fifo_i*(TX_indata_length/(num_fifos_per_group*num_GTX_groups)) )
1272 -- din => time_multiplex_data_out(group_i*num_fifos_per_group+fifo_i),
1273 -- wr_en => wr_en(group_i),
1274 -- rd_en => rd_en(group_i*num_fifos_per_group+fifo_i),
1275 -- dout => fifo_dout((group_i*num_fifos_per_group+fifo_i+1)*TX_fifo_odata_length - 1
1277 -- (group_i*num_fifos_per_group+fifo_i)*TX_fifo_odata_length),
1278 -- full => full(group_i*num_fifos_per_group+fifo_i),
1279 -- --almost_full => almost_full(group_i*num_fifos_per_group+fifo_i),
1280 -- --overflow => overflow(group_i*num_fifos_per_group+fifo_i),
1281 -- empty => empty(group_i*num_fifos_per_group+fifo_i)
1282 -- --almost_empty => almost_empty(group_i*num_fifos_per_group+fifo_i),
1283 -- --underflow => underflow(group_i*num_fifos_per_group+fifo_i),
1284 -- --rd_data_count => rd_data_count(group_i*num_fifos_per_group+fifo_i),
1285 -- --wr_data_count => wr_data_count(group_i*num_fifos_per_group+fifo_i)
1288 txdatagen_gtx: for gtx_i in (num_GTX_per_fifo-1) downto 0 generate
1290 --TXDATA_IN((group_i*num_GTX_per_group)+gtx_i)<="0000000010111100";
1291 --TXCHARISK_IN((group_i*num_GTX_per_group)+gtx_i) <= "01";
1292 TXDATA_IN(((group_i*num_fifos_per_group)+fifo_i)*num_GTX_per_fifo+gtx_i)<=
1293 fifo_dout( (((group_i*num_fifos_per_group)+fifo_i)*num_GTX_per_fifo+gtx_i+1)*(GTX_data_word_width+2)-1-2
1295 (((group_i*num_fifos_per_group)+fifo_i)*num_GTX_per_fifo+gtx_i)*(GTX_data_word_width+2) );
1296 TXCHARISK_IN(((group_i*num_fifos_per_group)+fifo_i)*num_GTX_per_fifo+gtx_i)<=
1297 fifo_dout( (((group_i*num_fifos_per_group)+fifo_i)*num_GTX_per_fifo+gtx_i+1)*(GTX_data_word_width+2)-1
1299 (((group_i*num_fifos_per_group)+fifo_i)*num_GTX_per_fifo+gtx_i)*(GTX_data_word_width+2)+GTX_data_word_width );
1302 end generate txdatagen_gtx;
1303 end generate txdatagen_fifo;
1304 end generate txdatagen_grp;
1306 txparamgen_grp: for group_i in (num_GTX_groups-1) downto 0 generate
1307 txparamgen_gtx: for gtx_i in (num_GTX_per_group-1) downto 0 generate
1308 --TXPREEMPHASIS_IN((group_i*num_GTX_per_group)+gtx_i) <= "0000";
1309 --TXPOSTEMPHASIS_IN((group_i*num_GTX_per_group)+gtx_i) <= "00001";
1310 --TXDIFFCTRL_IN((group_i*num_GTX_per_group)+gtx_i) <= "1010";
1312 --TXPREEMPHASIS_IN((group_i*num_GTX_per_group)+gtx_i) <= "0000";
1313 --TXPOSTEMPHASIS_IN((group_i*num_GTX_per_group)+gtx_i) <= "00000";
1314 --TXDIFFCTRL_IN((group_i*num_GTX_per_group)+gtx_i) <= "1010";
1316 TXDIFFCTRL_IN((group_i*num_GTX_per_group)+gtx_i) <= "0110";
--WTF NO CS 20141112 --vio_async_out(3 + 18*((group_i*num_GTX_per_group)+gtx_i) downto 0 + 18*((group_i*num_GTX_per_group)+gtx_i) );
1317 TXPREEMPHASIS_IN((group_i*num_GTX_per_group)+gtx_i) <= "0000";
--WTF NO CS 20141112 --vio_async_out(7 + 18*((group_i*num_GTX_per_group)+gtx_i) downto 4 + 18*((group_i*num_GTX_per_group)+gtx_i) );
1318 TXPOSTEMPHASIS_IN((group_i*num_GTX_per_group)+gtx_i) <= "00000";
--WTF NO CS 20141112 --vio_async_out(12 + 18*((group_i*num_GTX_per_group)+gtx_i) downto 8 + 18*((group_i*num_GTX_per_group)+gtx_i) );
1322 GTXTXRESET((group_i*num_GTX_per_group)+gtx_i) <= GTXTXRESET_IN;
--WTF NO CS 20141112 -- or vio_async_out(17 + 18*((group_i*num_GTX_per_group)+gtx_i) );
1323 --WTF NO CS 20141112 --
1332 end generate txparamgen_gtx;
1333 end generate txparamgen_grp;
1336 --rx_param_data_gen: if gen_RX='1' generate
1337 rx_param_data_gen_grp: for group_i in (num_GTX_groups-1) downto 0 generate
1338 rx_param_data_gen_gtx: for gtx_i in (num_GTX_per_group-1) downto 0 generate
1340 GTXRXRESET((group_i*num_GTX_per_group)+gtx_i) <= GTXRXRESET_IN;
--WTF NO CS 20141112 --or vio_async_out(16 + 18*((group_i*num_GTX_per_group)+gtx_i) );
1341 RXEQMIX_IN((group_i*num_GTX_per_group)+gtx_i) <="000";
--WTF NO CS 20141112 -- vio_async_out(15 + 18*((group_i*num_GTX_per_group)+gtx_i) downto 13 + 18*((group_i*num_GTX_per_group)+gtx_i) );
1342 --RXEQMIX_IN((group_i*num_GTX_per_group)+gtx_i) <= "001";
1343 RXDATA_OUT((group_i*num_GTX_per_group)+gtx_i)<=rxdata_i((group_i*num_GTX_per_group)+gtx_i)(15 downto 0);
1345 --WTF NO CS 20141112 --vio_sync_in(5+32*((group_i*num_GTX_per_group)+gtx_i) downto 0+32*((group_i*num_GTX_per_group)+gtx_i)) <= DFECLKDLYADJMON((group_i*num_GTX_per_group)+gtx_i); --[5:0]
1346 --WTF NO CS 20141112 --vio_sync_in(10+32*((group_i*num_GTX_per_group)+gtx_i) downto 6+32*((group_i*num_GTX_per_group)+gtx_i)) <= DFEEYEDACMON((group_i*num_GTX_per_group)+gtx_i); --[4:0]
1347 --WTF NO CS 20141112 --vio_sync_in(13+32*((group_i*num_GTX_per_group)+gtx_i) downto 11+32*((group_i*num_GTX_per_group)+gtx_i)) <= DFESENSCAL((group_i*num_GTX_per_group)+gtx_i); --[2:0]
1348 --WTF NO CS 20141112 --vio_sync_in(18+32*((group_i*num_GTX_per_group)+gtx_i) downto 14+32*((group_i*num_GTX_per_group)+gtx_i)) <= DFETAP1MONITOR((group_i*num_GTX_per_group)+gtx_i); --[4:0]
1349 --WTF NO CS 20141112 --vio_sync_in(23+32*((group_i*num_GTX_per_group)+gtx_i) downto 19+32*((group_i*num_GTX_per_group)+gtx_i)) <= DFETAP2MONITOR((group_i*num_GTX_per_group)+gtx_i); --[4:0]
1350 --WTF NO CS 20141112 --vio_sync_in(27+32*((group_i*num_GTX_per_group)+gtx_i) downto 24+32*((group_i*num_GTX_per_group)+gtx_i)) <= DFETAP3MONITOR((group_i*num_GTX_per_group)+gtx_i); --[3:0]
1351 --WTF NO CS 20141112 --vio_sync_in(31+32*((group_i*num_GTX_per_group)+gtx_i) downto 28+32*((group_i*num_GTX_per_group)+gtx_i)) <= DFETAP4MONITOR((group_i*num_GTX_per_group)+gtx_i); --[3:0]
1354 DFEDLYOVRD((group_i*num_GTX_per_group)+gtx_i) <= '0';
--WTF NO CS 20141112 --vio_sync_out( 0+26*((group_i*num_GTX_per_group)+gtx_i));
1355 DFECLKDLYADJ((group_i*num_GTX_per_group)+gtx_i) <= (others=>'0');
--WTF NO CS 20141112 --vio_sync_out( 6+26*((group_i*num_GTX_per_group)+gtx_i) downto 1+26*((group_i*num_GTX_per_group)+gtx_i)); -- [5:0]
1356 DFETAPOVRD((group_i*num_GTX_per_group)+gtx_i) <= '1';
--WTF NO CS 20141112 --vio_sync_out( 7+26*((group_i*num_GTX_per_group)+gtx_i));
1357 DFETAP1((group_i*num_GTX_per_group)+gtx_i) <= (others=>'0');
--WTF NO CS 20141112 --vio_sync_out( 12+26*((group_i*num_GTX_per_group)+gtx_i) downto 8+26*((group_i*num_GTX_per_group)+gtx_i)); -- [4:0]
1358 DFETAP2((group_i*num_GTX_per_group)+gtx_i) <= (others=>'0');
--WTF NO CS 20141112 --vio_sync_out( 17+26*((group_i*num_GTX_per_group)+gtx_i) downto 13+26*((group_i*num_GTX_per_group)+gtx_i)); -- [4:0]
1359 DFETAP3((group_i*num_GTX_per_group)+gtx_i) <= (others=>'0');
--WTF NO CS 20141112 --vio_sync_out( 21+26*((group_i*num_GTX_per_group)+gtx_i) downto 18+26*((group_i*num_GTX_per_group)+gtx_i)); -- [3:0]
1360 DFETAP4((group_i*num_GTX_per_group)+gtx_i) <= (others=>'0');
--WTF NO CS 20141112 --vio_sync_out( 25+26*((group_i*num_GTX_per_group)+gtx_i) downto 22+26*((group_i*num_GTX_per_group)+gtx_i)); -- [3:0]
1362 end generate rx_param_data_gen_gtx;
1363 end generate rx_param_data_gen_grp;
1364 --end generate rx_param_data_gen;
1368 ibufds_gtxe1_gen: for group_i in (num_GTX_groups-1) downto 0 generate
1378 end generate ibufds_gtxe1_gen;
1380 --- --- q1_clk0_refclk_ibufds_i : IBUFDS_GTXE1
1383 --- --- O => q1_clk0_refclk_i,
1384 --- --- ODIV2 => open,
1385 --- --- CEB => tied_to_ground_i,
1386 --- --- I => Q1_CLK0_MGTREFCLK_PAD_P_IN,
1387 --- --- IB => Q1_CLK0_MGTREFCLK_PAD_N_IN
1391 --- --- q4_clk0_refclk_ibufds_i : IBUFDS_GTXE1
1394 --- --- O => q4_clk0_refclk_i,
1395 --- --- ODIV2 => open,
1396 --- --- CEB => tied_to_ground_i,
1397 --- --- I => Q4_CLK0_MGTREFCLK_PAD_P_IN,
1398 --- --- IB => Q4_CLK0_MGTREFCLK_PAD_N_IN
1401 --- --- refclk_i(0)<=q1_clk0_refclk_i;
1402 --- --- refclk_i(1)<=q4_clk0_refclk_i;
1404 --rx_clk_nets_gen: if gen_RX='1' generate
1405 -- rx_clk_nets_gen_gtx: for gtx_i in (num_GTX_groups*num_GTX_per_group-1) downto 0 generate
1407 -- RXUSRCLK2_IN(gtx_i)<=RXRECCLK_OUT(gtx_i); --this seems to automatically
1410 -- --not enough BUFRs per region
1411 -- --rxrecclk_bufr_i : BUFR
1414 -- -- BUFR_DIVIDE => "BYPASS",
1415 -- -- SIM_DEVICE => "VIRTEX6"
1421 -- -- I => RXRECCLK_OUT(gtx_i),
1422 -- -- O => RXUSRCLK2_IN_bufferedR(gtx_i)
1426 -- --BUFHs can not be driven by the
1427 -- --rxrecclk_bufh_i : BUFH
1430 -- -- I => RXRECCLK_OUT(gtx_i),
1431 -- -- O => RXUSRCLK2_IN_bufferedR(gtx_i)
1435 -- --RXUSRCLK2_IN(gtx_i) <= RXUSRCLK2_IN_bufferedR(gtx_i);
1437 -- end generate rx_clk_nets_gen_gtx;
1438 --end generate rx_clk_nets_gen;
1441 clk_nets_gen: for group_i in (num_GTX_groups-1) downto 0 generate
1443 rx_bufr_gen: if gen_RX='1' generate
1447 BUFR_DIVIDE =>
"BYPASS",
1448 SIM_DEVICE =>
"VIRTEX6"
1454 I =>
RXRECCLK_OUT (group_i*num_GTX_per_group+rx_clk_source_offset
),
1457 end generate rx_bufr_gen;
1459 rx_plllk_andall_gen: if gen_RX='1' generate
1465 DATA =>
RXPLLLKDET_OUT ( ((group_i+1
)*num_GTX_per_group-
1) downto (group_i*num_GTX_per_group
)),
1469 end generate rx_plllk_andall_gen;
1476 DATA =>
TXPLLLKDET_OUT( ((group_i+1
)*num_GTX_per_group-
1) downto (group_i*num_GTX_per_group
)),
1484 COMPENSATION =>
"ZHOLD",
1485 CLKFBOUT_MULT_F => gtx_mmcm_CLKFBOUT_MULT_F ,
1486 DIVCLK_DIVIDE => gtx_mmcm_DIVCLK_DIVIDE,
1487 CLKFBOUT_PHASE =>
0.0,
1488 CLKIN1_PERIOD => gtx_mmcm_CLKIN1_PERIOD,
1489 CLKIN2_PERIOD =>
10.0,
-- Not used
1490 CLKOUT0_DIVIDE_F => gtx_mmcm_CLKOUT0_DIVIDE_F ,
1491 CLKOUT0_PHASE =>
0.0,
1492 CLKOUT1_DIVIDE =>
1,
1493 CLKOUT1_PHASE =>
0.0,
1494 CLKOUT2_DIVIDE =>
1,
1495 CLKOUT2_PHASE =>
0.0,
1496 CLKOUT3_DIVIDE =>
1,
1497 CLKOUT3_PHASE =>
0.0,
1519 CLKFBSTOPPED =>
open,
1520 CLKINSTOPPED =>
open,
1545 mgtclk_gen: for gtx_i in (num_GTX_per_group - 1) downto 0 generate
1549 rxclk_gen: if gen_RX='1' generate
1551 --RXUSRCLK2_IN_out( (group_i*num_GTX_per_group)+gtx_i )<=RXUSRCLK2_IN( (group_i*num_GTX_per_group)+gtx_i );
1553 end generate rxclk_gen;
1554 norxclk_gen: if gen_RX='0' generate
1556 MGTREFCLKRX_IN((group_i*num_GTX_per_group)+gtx_i)<=(others=>'0');
1557 end generate norxclk_gen;
1559 end generate mgtclk_gen;
1561 end generate clk_nets_gen;
1564 sync_gen_grp: for group_i in (num_GTX_groups-1) downto 0 generate
1569 TXRESETDONE_OUT_r( ((group_i+1)*num_GTX_per_group-1) downto group_i*num_GTX_per_group ) <= (others=>'0');
1570 TXRESETDONE_OUT_rr( ((group_i+1)*num_GTX_per_group-1) downto group_i*num_GTX_per_group ) <= (others=>'0');
1572 TXRESETDONE_OUT_r( ((group_i+1)*num_GTX_per_group-1) downto group_i*num_GTX_per_group )<=TXRESETDONE_OUT( ((group_i+1)*num_GTX_per_group-1) downto group_i*num_GTX_per_group );
1573 TXRESETDONE_OUT_rr( ((group_i+1)*num_GTX_per_group-1) downto group_i*num_GTX_per_group )<=TXRESETDONE_OUT_r( ((group_i+1)*num_GTX_per_group-1) downto group_i*num_GTX_per_group );
1578 rxreset_gen: if gen_RX='1' generate
1585 DATA =>
RXRESETDONE_OUT ( ((group_i+1
)*num_GTX_per_group-
1) downto (group_i*num_GTX_per_group
)),
1589 end generate rxreset_gen;
1592 sync_gen_gtx: for gtx_i in (num_GTX_per_group-1) downto 0 generate
1594 no_rxreseten_rxsync_rxalign_gen: if gen_RX='0' generate
1603 end generate no_rxreseten_rxsync_rxalign_gen;
1605 rxreseten_rxsync_rxalign_gen: if gen_RX='1' generate
1607 --I don't know why the rx reset is registered with reset in the middle two
1608 --and not the begin and end register - following the example code
1611 if rising_edge(RXUSRCLK2_IN((group_i*num_GTX_per_group)+gtx_i)) then
1619 if rising_edge(RXUSRCLK2_IN((group_i*num_GTX_per_group)+gtx_i)) then
1627 use_RX_phasealign_gen: if use_RX_elastic=FALSE generate
1642 end generate use_RX_phasealign_gen;
1644 use_RX_elastic_gen: if use_RX_elastic=TRUE generate
1652 end generate use_RX_elastic_gen;
1655 -- after the rx sync is done comma alignment must be performed
1659 if(rx_sync_done((group_i*num_GTX_per_group)+gtx_i) = '0') then
1677 --align receivers to the commas
1678 --and check if the comma is in the right place if alignment has been
1681 --also check for valid characters and realignment events
1683 --note that zeroing at cycle 6 is for ML605
1684 subtick_counter_rx_next((group_i*num_GTX_per_group)+gtx_i)<=subtick_counter_rx((group_i*num_GTX_per_group)+gtx_i)+1;
-- when subtick_counter_rx((group_i*num_GTX_per_group)+gtx_i)/=to_unsigned(5,3) else to_unsigned(0,3) ;
1686 process(
RXUSRCLK2_IN((group_i*num_GTX_per_group)+gtx_i) )
--RXUSRCLK2_IN_bufferedR(group_i) )
1688 if rising_edge(RXUSRCLK2_IN((group_i*num_GTX_per_group)+gtx_i) ) then --RXUSRCLK2_IN_bufferedR(group_i)) then
1695 if RXCHARISK_OUT((group_i*num_GTX_per_group)+gtx_i)(0)='1' and RXDATA_OUT((group_i*num_GTX_per_group)+gtx_i)(7 downto 0) = x"BC" then
1697 subtick_counter_rx((group_i*num_GTX_per_group)+gtx_i)<=to_unsigned(5,3);
--ML605 WTF thk ok for target (8 cycle)
1705 if RXCHARISK_OUT((group_i*num_GTX_per_group)+gtx_i)(0)='1' and RXDATA_OUT((group_i*num_GTX_per_group)+gtx_i)(7 downto 0) = x"BC" then
1706 if subtick_counter_rx((group_i*num_GTX_per_group)+gtx_i) /= to_unsigned(4,3) then --ML605 WTF thk ok for target (8 cycle)
1707 subtick_counter_rx((group_i*num_GTX_per_group)+gtx_i)<=to_unsigned(5,3);
--ML605 WTF thk ok for target (8 cycle)
1740 --RX_COMMA_RECEIVED((group_i*num_GTX_per_group)+gtx_i)<=RXCHARISK_OUT((group_i*num_GTX_per_group)+gtx_i)(0) or
1741 -- RXCHARISK_OUT((group_i*num_GTX_per_group)+gtx_i)(1);
1746 --delay every input by one tick so that the timing closes
1757 end generate rxreseten_rxsync_rxalign_gen;
1778 end generate sync_gen_gtx;
1779 end generate sync_gen_grp;
1781 --if RX is instantiated or all the error flags and or that to generate the
1782 --output signal RX_ERROR_OUT
1783 ---rxreseten_rxsync_rxalign_all_gen: if gen_RX='1' generate
1784 --- or_all_rx_error_not_in_table: or_all
1786 --- numbits => num_GTX_groups*num_fifos_per_group)
1788 --- DATA => rx_error_not_in_table,
1789 --- or_all => rx_error_not_in_table_all);
1791 --- or_all_rx_error_byterealign: or_all
1793 --- numbits => num_GTX_groups*num_fifos_per_group)
1795 --- DATA => rx_error_byterealign,
1796 --- or_all => rx_error_byterealign_all);
1798 --- or_all_rx_error_eventrealign: or_all
1800 --- numbits => num_GTX_groups*num_fifos_per_group)
1802 --- DATA => rx_error_eventrealign,
1803 --- or_all => rx_error_eventrealign_all);
1805 --- or_all_rx_error_crc: or_all
1807 --- numbits => num_GTX_groups*num_fifos_per_group)
1809 --- DATA => rx_error_crc,
1810 --- or_all => rx_error_crc_all);
1812 --- or_all_rx_error_disparity: or_all
1814 --- numbits => num_GTX_groups*num_fifos_per_group)
1816 --- DATA => rx_error_disparity,
1817 --- or_all => rx_error_disparity_all);
1819 --- RX_ERROR_OUT_sig<= rx_error_crc_all or rx_error_eventrealign_all or rx_error_byterealign_all or rx_error_not_in_table_all or rx_error_disparity_all;
1821 ---end generate rxreseten_rxsync_rxalign_all_gen;
1823 --rxreseten_rxsync_rxalign_all_no_gen: if gen_RX='0' generate
1824 -- RX_ERROR_OUT_sig<='0';
1825 --end generate rxreseten_rxsync_rxalign_all_no_gen;
1827 --RX_ERROR_OUT<=RX_ERROR_OUT_sig;
1829 and_all_tx_sync_done_grp_gen: for group_i in (num_GTX_groups-1) downto 0 generate
1833 numbits => num_GTX_per_group
)
1835 DATA =>
tx_sync_done ((group_i+1
)*num_GTX_per_group-
1 downto group_i*num_GTX_per_group
),
1849 end generate and_all_tx_sync_done_grp_gen;
1858 --and_all_tx_sync_done: and_all
1860 -- numbits => num_GTX_per_group*num_GTX_groups)
1862 -- DATA => tx_sync_done,
1863 -- and_all => GTX_TX_READY_OUT_sig);
1865 --GTX_TX_READY_OUT<=GTX_TX_READY_OUT_sig;
1866 --cGTX_TX_READY_OUT_sig<=not GTX_TX_READY_OUT_sig;
1871 and_all_rx_aligned_gen: if gen_RX='1' generate
1874 numbits => num_GTX_per_group*num_GTX_groups
)
1879 end generate and_all_rx_aligned_gen;
1880 gen_no_rx_rx_ready: if gen_RX='0' generate
1883 end generate gen_no_rx_rx_ready;
1888 ia_vme => ADDR_REG_RW_RX_POLARITY ,
1903 ia_vme => ADDR_REG_RW_RX_POLARITY+2 ,
1918 ia_vme => ADDR_REG_RW_RX_POLARITY+4 ,
1935 ia_vme => ADDR_REG_RW_TX_POLARITY ,
1950 ia_vme => ADDR_REG_RW_TX_POLARITY+2 ,
1965 ia_vme => ADDR_REG_RW_TX_POLARITY+4 ,
1981 MGT_gen_grp: for group_i in (num_GTX_groups-1) downto 0 generate
1983 MGT_gen_gtx: for gtx_i in (num_GTX_per_group-1) downto 0 generate
1989 --_______________________ Simulation-Only Attributes ___________________
1991 SIM_RECEIVER_DETECT_PASS =>
(TRUE
),
1995 SIM_TX_ELEC_IDLE_LEVEL =>
("X"
),
1997 SIM_VERSION =>
("2.0"
),
1998 SIM_TXREFCLK_SOURCE =>
("000"
),
1999 SIM_RXREFCLK_SOURCE =>
("000"
),
2002 ----------------------------TX PLL----------------------------
2003 TX_CLK_SOURCE =>
("TXPLL"
),
2004 TX_OVERSAMPLE_MODE =>
(FALSE
),
2005 TXPLL_COM_CFG =>
(x"21680a"
),
2006 TXPLL_CP_CFG =>
(x"0D"
),
2007 TXPLL_DIVSEL_FB =>
(gtx_PLL_DIVSEL_FB
),
2008 TXPLL_DIVSEL_OUT =>
(gtx_PLL_DIVSEL_OUT
),
2009 TXPLL_DIVSEL_REF =>
(gtx_PLL_DIVSEL_REF
),
2010 TXPLL_DIVSEL45_FB =>
(gtx_DIVSEL45_FB
),
2011 TXPLL_LKDET_CFG =>
("111"
),
2012 TX_CLK25_DIVIDER =>
(gtx_CLK25_DIVIDER
),
2013 TXPLL_SATA =>
("00"
),
2014 TX_TDCC_CFG =>
("11"
),
2015 PMA_CAS_CLK_EN =>
(FALSE
),
2016 POWER_SAVE =>
("0000110000"
),
2018 -------------------------TX Interface-------------------------
2019 GEN_TXUSRCLK =>
(TRUE
),
2020 TX_DATA_WIDTH =>
(20),
2021 TX_USRCLK_CFG =>
(x"00"
),
2022 TXOUTCLK_CTRL =>
("TXPLLREFCLK_DIV1"
),
2023 TXOUTCLK_DLY =>
("0000000000"
),
2025 --------------TX Buffering and Phase Alignment----------------
2026 TX_PMADATA_OPT =>
('1'
),
2027 PMA_TX_CFG =>
(x"80082"
),
2028 TX_BUFFER_USE =>
(FALSE
),
2029 TX_BYTECLK_CFG =>
(x"00"
),
2030 TX_EN_RATE_RESET_BUF =>
(TRUE
),
2031 TX_XCLK_SEL =>
("TXUSR"
),
2032 TX_DLYALIGN_CTRINC =>
("0100"
),
2033 TX_DLYALIGN_LPFINC =>
("0110"
),
2034 TX_DLYALIGN_MONSEL =>
("000"
),
2035 TX_DLYALIGN_OVRDSETTING =>
("10000000"
),
2037 -------------------------TX Gearbox---------------------------
2038 GEARBOX_ENDEC =>
("000"
),
2039 TXGEARBOX_USE =>
(FALSE
),
2041 ----------------TX Driver and OOB Signalling------------------
2042 TX_DRIVE_MODE =>
("DIRECT"
),
2043 TX_IDLE_ASSERT_DELAY =>
("100"
),
2044 TX_IDLE_DEASSERT_DELAY =>
("010"
),
2045 TXDRIVE_LOOPBACK_HIZ =>
(FALSE
),
2046 TXDRIVE_LOOPBACK_PD =>
(FALSE
),
2048 --------------TX Pipe Control for PCI Express/SATA------------
2049 COM_BURST_VAL =>
("1111"
),
2051 ------------------TX Attributes for PCI Express---------------
2052 TX_DEEMPH_0 =>
("11010"
),
2053 TX_DEEMPH_1 =>
("10000"
),
2054 TX_MARGIN_FULL_0 =>
("1001110"
),
2055 TX_MARGIN_FULL_1 =>
("1001001"
),
2056 TX_MARGIN_FULL_2 =>
("1000101"
),
2057 TX_MARGIN_FULL_3 =>
("1000010"
),
2058 TX_MARGIN_FULL_4 =>
("1000000"
),
2059 TX_MARGIN_LOW_0 =>
("1000110"
),
2060 TX_MARGIN_LOW_1 =>
("1000100"
),
2061 TX_MARGIN_LOW_2 =>
("1000010"
),
2062 TX_MARGIN_LOW_3 =>
("1000000"
),
2063 TX_MARGIN_LOW_4 =>
("1000000"
),
2065 ----------------------------RX PLL----------------------------
2066 RX_OVERSAMPLE_MODE =>
(FALSE
),
2067 RXPLL_COM_CFG =>
(x"21680a"
),
2068 RXPLL_CP_CFG =>
(x"0D"
),
2069 RXPLL_DIVSEL_FB =>
(gtx_PLL_DIVSEL_FB
),
2070 RXPLL_DIVSEL_OUT =>
(gtx_PLL_DIVSEL_OUT
),
2071 RXPLL_DIVSEL_REF =>
(gtx_PLL_DIVSEL_REF
),
2072 RXPLL_DIVSEL45_FB =>
(gtx_DIVSEL45_FB
),
2073 RXPLL_LKDET_CFG =>
("111"
),
2074 RX_CLK25_DIVIDER =>
(gtx_CLK25_DIVIDER
),
2076 -------------------------RX Interface-------------------------
2077 GEN_RXUSRCLK =>
(TRUE
),
2078 RX_DATA_WIDTH =>
(20),
2079 RXRECCLK_CTRL =>
("RXRECCLKPMA_DIV2"
),
2080 RXRECCLK_DLY =>
("0000000000"
),
2081 RXUSRCLK_DLY =>
(x"0000"
),
2083 ----------RX Driver,OOB signalling,Coupling and Eq.,CDR-------
2084 AC_CAP_DIS =>
(FALSE
),
2085 CDR_PH_ADJ_TIME =>
("10100"
),
2086 OOBDETECT_THRESHOLD =>
("011"
),
2087 PMA_CDR_SCAN =>
(x"640404C"
),
2088 PMA_RX_CFG =>
(x"05ce008"
),
2089 RCV_TERM_GND =>
(FALSE
),
2090 RCV_TERM_VTTRX =>
(TRUE
),
2091 RX_EN_IDLE_HOLD_CDR =>
(FALSE
),
2092 RX_EN_IDLE_RESET_FR =>
(FALSE
),
2093 RX_EN_IDLE_RESET_PH =>
(FALSE
),
2094 TX_DETECT_RX_CFG =>
(x"1832"
),
2095 TERMINATION_CTRL =>
("00000"
),
2096 TERMINATION_OVRD =>
(FALSE
),
2098 PMA_RXSYNC_CFG =>
(x"00"
),
2099 PMA_CFG =>
(x"0040000040000000003"
),
2100 BGTEST_CFG =>
("00"
),
2101 BIAS_CFG =>
(x"00000"
),
2103 --------------RX Decision Feedback Equalizer(DFE)-------------
2104 DFE_CAL_TIME =>
("01100"
),
2105 DFE_CFG =>
("00011011"
),
2106 RX_EN_IDLE_HOLD_DFE =>
(TRUE
),
2107 RX_EYE_OFFSET =>
(x"4C"
),
2108 RX_EYE_SCANMODE =>
("00"
),
2110 -------------------------PRBS Detection-----------------------
2111 RXPRBSERR_LOOPBACK =>
('0'
),
2113 ------------------Comma Detection and Alignment---------------
2114 ALIGN_COMMA_WORD =>
(2),
2115 COMMA_10B_ENABLE =>
("1111111111"
),
2116 COMMA_DOUBLE =>
(FALSE
),
2117 DEC_MCOMMA_DETECT =>
(TRUE
),
2118 DEC_PCOMMA_DETECT =>
(TRUE
),
2119 DEC_VALID_COMMA_ONLY =>
(TRUE
),
2120 MCOMMA_10B_VALUE =>
("1010000011"
),
2121 MCOMMA_DETECT =>
(TRUE
),
2122 PCOMMA_10B_VALUE =>
("0101111100"
),
2123 PCOMMA_DETECT =>
(TRUE
),
2124 RX_DECODE_SEQ_MATCH =>
(TRUE
),
2125 RX_SLIDE_AUTO_WAIT =>
(5),
2126 RX_SLIDE_MODE =>
("OFF"
),
2127 SHOW_REALIGN_COMMA =>
(FALSE
),
2129 -----------------RX Loss-of-sync State Machine----------------
2130 RX_LOS_INVALID_INCR =>
(8),
2131 RX_LOS_THRESHOLD =>
(128),
2132 RX_LOSS_OF_SYNC_FSM =>
(FALSE
),
2134 -------------------------RX Gearbox---------------------------
2135 RXGEARBOX_USE =>
(FALSE
),
2137 -------------RX Elastic Buffer and Phase alignment------------
2138 RX_BUFFER_USE =>
(use_RX_elastic
),
2139 RX_EN_IDLE_RESET_BUF =>
(TRUE
),
2140 RX_EN_MODE_RESET_BUF =>
(TRUE
),
2141 RX_EN_RATE_RESET_BUF =>
(TRUE
),
2142 RX_EN_REALIGN_RESET_BUF =>
(FALSE
),
2143 RX_EN_REALIGN_RESET_BUF2 =>
(FALSE
),
2144 RX_FIFO_ADDR_MODE =>
("FAST"
),
2145 RX_IDLE_HI_CNT =>
("1000"
),
2146 RX_IDLE_LO_CNT =>
("0000"
),
2147 RX_XCLK_SEL =>
("RXUSR"
),
2148 RX_DLYALIGN_CTRINC =>
("1110"
),
2149 RX_DLYALIGN_EDGESET =>
("00010"
),
2150 RX_DLYALIGN_LPFINC =>
("1110"
),
2151 RX_DLYALIGN_MONSEL =>
("000"
),
2152 RX_DLYALIGN_OVRDSETTING =>
("10000000"
),
2155 ------------------------Clock Correction----------------------
2156 CLK_COR_ADJ_LEN =>
(1),
2157 CLK_COR_DET_LEN =>
(1),
2158 CLK_COR_INSERT_IDLE_FLAG =>
(FALSE
),
2159 CLK_COR_KEEP_IDLE =>
(FALSE
),
2160 CLK_COR_MAX_LAT =>
(3),
--(16),
2161 CLK_COR_MIN_LAT =>
(3),
--(14),
2162 CLK_COR_PRECEDENCE =>
(TRUE
),
2163 CLK_COR_REPEAT_WAIT =>
(0),
2164 CLK_COR_SEQ_1_1 =>
("0100000000"
),
2165 CLK_COR_SEQ_1_2 =>
("0000000000"
),
2166 CLK_COR_SEQ_1_3 =>
("0000000000"
),
2167 CLK_COR_SEQ_1_4 =>
("0000000000"
),
2168 CLK_COR_SEQ_1_ENABLE =>
("1111"
),
2169 CLK_COR_SEQ_2_1 =>
("0100000000"
),
2170 CLK_COR_SEQ_2_2 =>
("0000000000"
),
2171 CLK_COR_SEQ_2_3 =>
("0000000000"
),
2172 CLK_COR_SEQ_2_4 =>
("0000000000"
),
2173 CLK_COR_SEQ_2_ENABLE =>
("1111"
),
2174 CLK_COR_SEQ_2_USE =>
(FALSE
),
2175 CLK_CORRECT_USE =>
(FALSE
),
2177 ------------------------Channel Bonding----------------------
2178 CHAN_BOND_1_MAX_SKEW =>
(1),
2179 CHAN_BOND_2_MAX_SKEW =>
(1),
2180 CHAN_BOND_KEEP_ALIGN =>
(FALSE
),
2181 CHAN_BOND_SEQ_1_1 =>
("0000000000"
),
2182 CHAN_BOND_SEQ_1_2 =>
("0000000000"
),
2183 CHAN_BOND_SEQ_1_3 =>
("0000000000"
),
2184 CHAN_BOND_SEQ_1_4 =>
("0000000000"
),
2185 CHAN_BOND_SEQ_1_ENABLE =>
("1111"
),
2186 CHAN_BOND_SEQ_2_1 =>
("0000000000"
),
2187 CHAN_BOND_SEQ_2_2 =>
("0000000000"
),
2188 CHAN_BOND_SEQ_2_3 =>
("0000000000"
),
2189 CHAN_BOND_SEQ_2_4 =>
("0000000000"
),
2190 CHAN_BOND_SEQ_2_CFG =>
("00000"
),
2191 CHAN_BOND_SEQ_2_ENABLE =>
("1111"
),
2192 CHAN_BOND_SEQ_2_USE =>
(FALSE
),
2193 CHAN_BOND_SEQ_LEN =>
(1),
2194 PCI_EXPRESS_MODE =>
(FALSE
),
2196 -------------RX Attributes for PCI Express/SATA/SAS----------
2197 SAS_MAX_COMSAS =>
(52),
2198 SAS_MIN_COMSAS =>
(40),
2199 SATA_BURST_VAL =>
("100"
),
2200 SATA_IDLE_VAL =>
("100"
),
2201 SATA_MAX_BURST =>
(7),
2202 SATA_MAX_INIT =>
(22),
2203 SATA_MAX_WAKE =>
(7),
2204 SATA_MIN_BURST =>
(4),
2205 SATA_MIN_INIT =>
(12),
2206 SATA_MIN_WAKE =>
(4),
2207 TRANS_TIME_FROM_P2 =>
(x"03c"
),
2208 TRANS_TIME_NON_P2 =>
(x"19"
),
2209 TRANS_TIME_RATE =>
(x"ff"
),
2210 TRANS_TIME_TO_P2 =>
(x"064"
)
2216 ------------------------ Loopback and Powerdown Ports ----------------------
2217 LOOPBACK => LOOPBACK ,
2218 RXPOWERDOWN => RXPOWERDOWN ,
2219 TXPOWERDOWN => "
00",
2220 -------------- Receive Ports - 64b66b and 64b67b Gearbox Ports -------------
2221 RXDATAVALID =>
open,
2224 RXHEADERVALID =>
open,
2225 RXSTARTOFSEQ =>
open,
2226 ----------------------- Receive Ports - 8b10b Decoder ----------------------
2228 RXCHARISCOMMA
(1 downto 0) =>
RXCHARISCOMMA_OUT((group_i*num_GTX_per_group
)+gtx_i
),
2230 RXCHARISK
(1 downto 0) =>
RXCHARISK_OUT((group_i*num_GTX_per_group
)+gtx_i
),
2233 RXDISPERR
(1 downto 0) =>
RXDISPERR_OUT((group_i*num_GTX_per_group
)+gtx_i
),
2235 RXNOTINTABLE
(1 downto 0) =>
RXNOTINTABLE_OUT((group_i*num_GTX_per_group
)+gtx_i
),
2238 ------------------- Receive Ports - Channel Bonding Ports ------------------
2239 RXCHANBONDSEQ =>
open,
2246 ------------------- Receive Ports - Clock Correction Ports -----------------
2247 RXCLKCORCNT =>
open,
2248 --------------- Receive Ports - Comma Detection and Alignment --------------
2256 ----------------------- Receive Ports - PRBS Detection ---------------------
2260 ------------------- Receive Ports - RX Data Path interface -----------------
2261 RXDATA =>
rxdata_i((group_i*num_GTX_per_group
)+gtx_i
),
2262 RXRECCLK =>
RXRECCLK_OUT ((group_i*num_GTX_per_group
)+gtx_i
),
2263 RXRECCLKPCS =>
open,
2266 RXUSRCLK2 =>
RXUSRCLK2_IN ((group_i*num_GTX_per_group
)+gtx_i
),
2267 ------------ Receive Ports - RX Decision Feedback Equalizer(DFE) -----------
2268 DFECLKDLYADJ =>
DFECLKDLYADJ ((group_i*num_GTX_per_group
)+gtx_i
),
2269 DFECLKDLYADJMON =>
DFECLKDLYADJMON((group_i*num_GTX_per_group
)+gtx_i
),
2270 DFEDLYOVRD =>
DFEDLYOVRD((group_i*num_GTX_per_group
)+gtx_i
),
2271 DFEEYEDACMON =>
DFEEYEDACMON ((group_i*num_GTX_per_group
)+gtx_i
),
2272 DFESENSCAL =>
DFESENSCAL((group_i*num_GTX_per_group
)+gtx_i
),
2273 DFETAP1 =>
DFETAP1((group_i*num_GTX_per_group
)+gtx_i
),
2274 DFETAP1MONITOR =>
DFETAP1MONITOR((group_i*num_GTX_per_group
)+gtx_i
),
2275 DFETAP2 =>
DFETAP2((group_i*num_GTX_per_group
)+gtx_i
),
2276 DFETAP2MONITOR =>
DFETAP2MONITOR((group_i*num_GTX_per_group
)+gtx_i
),
2277 DFETAP3 =>
DFETAP3((group_i*num_GTX_per_group
)+gtx_i
),
2278 DFETAP3MONITOR =>
DFETAP3MONITOR((group_i*num_GTX_per_group
)+gtx_i
),
2279 DFETAP4 =>
DFETAP4((group_i*num_GTX_per_group
)+gtx_i
),
2280 DFETAP4MONITOR =>
DFETAP4MONITOR((group_i*num_GTX_per_group
)+gtx_i
),
2281 DFETAPOVRD =>
DFETAPOVRD((group_i*num_GTX_per_group
)+gtx_i
),
2282 ------- Receive Ports - RX Driver,OOB signalling,Coupling and Eq.,CDR ------
2288 RXEQMIX
(2 downto 0) =>
RXEQMIX_IN ((group_i*num_GTX_per_group
)+gtx_i
),
2289 RXN =>
RXN_IN((group_i*num_GTX_per_group
)+gtx_i
),
2290 RXP =>
RXP_IN((group_i*num_GTX_per_group
)+gtx_i
),
2291 -------- Receive Ports - RX Elastic Buffer and Phase Alignment Ports -------
2294 RXCHANISALIGNED =>
open,
2295 RXCHANREALIGN =>
open,
2306 --------------- Receive Ports - RX Loss-of-sync State Machine --------------
2307 RXLOSSOFSYNC =>
open,
--RXLOSSOFSYNC_OUT((group_i*num_GTX_per_group)+gtx_i),
2308 ---------------------- Receive Ports - RX Oversampling ---------------------
2310 RXOVERSAMPLEERR =>
open,
2311 ------------------------ Receive Ports - RX PLL Ports ----------------------
2313 GTXRXRESET =>
GTXRXRESET((group_i*num_GTX_per_group
)+gtx_i
),
2314 MGTREFCLKRX =>
MGTREFCLKRX_IN((group_i*num_GTX_per_group
)+gtx_i
),
2317 PLLRXRESET =>
PLLRXRESET_IN ((group_i*num_GTX_per_group
)+gtx_i
),
2320 RXPLLPOWERDOWN => not_gen_RX,
2326 -------------- Receive Ports - RX Pipe Control for PCI Express -------------
2329 ----------------- Receive Ports - RX Polarity Control Ports ----------------
2330 RXPOLARITY =>
rx_polarity ((group_i*num_GTX_per_group
)+gtx_i
),
2331 --------------------- Receive Ports - RX Ports for SATA --------------------
2335 ------------- Shared Ports - Dynamic Reconfiguration Port (DRP) ------------
2343 -------------- Transmit Ports - 64b66b and 64b67b Gearbox Ports ------------
2344 TXGEARBOXREADY =>
open,
2348 ---------------- Transmit Ports - 8b10b Encoder Control Ports --------------
2353 TXCHARISK
(1 downto 0) =>
TXCHARISK_IN ((group_i*num_GTX_per_group
)+gtx_i
),
2355 TXKERR
(3 downto 2) =>
TXKERR_OUT_UPPER ((group_i*num_GTX_per_group
)+gtx_i
),
2356 TXKERR
(1 downto 0) =>
TXKERR_OUT ((group_i*num_GTX_per_group
)+gtx_i
),
2358 ------------------------- Transmit Ports - GTX Ports -----------------------
2359 GTXTEST => "
1000000000000",
2360 MGTREFCLKFAB =>
open,
2363 TSTIN => "
11111111111111111111" ,
2365 ------------------ Transmit Ports - TX Data Path interface -----------------
2366 TXDATA
(15 downto 0) =>
TXDATA_IN ((group_i*num_GTX_per_group
)+gtx_i
),
2369 TXOUTCLK =>
TXOUTCLK_OUT ((group_i*num_GTX_per_group
)+gtx_i
),
2370 TXOUTCLKPCS =>
open,
2373 TXUSRCLK2 =>
TXUSRCLK2_IN ((group_i*num_GTX_per_group
)+gtx_i
),
2374 ---------------- Transmit Ports - TX Driver and OOB signaling --------------
2375 TXBUFDIFFCTRL => "
100",
2376 TXDIFFCTRL =>
TXDIFFCTRL_IN((group_i*num_GTX_per_group
)+gtx_i
),
2378 TXN =>
TXN_OUT((group_i*num_GTX_per_group
)+gtx_i
),
2379 TXP =>
TXP_OUT((group_i*num_GTX_per_group
)+gtx_i
),
2381 --------------- Transmit Ports - TX Driver and OOB signalling --------------
2383 ----------- Transmit Ports - TX Elastic Buffer and Phase Alignment ---------
2384 TXBUFSTATUS =>
open,
2385 -------- Transmit Ports - TX Elastic Buffer and Phase Alignment Ports ------
2394 ----------------------- Transmit Ports - TX PLL Ports ----------------------
2396 GTXTXRESET =>
GTXTXRESET((group_i*num_GTX_per_group
)+gtx_i
),
2397 MGTREFCLKTX =>
MGTREFCLKTX_IN((group_i*num_GTX_per_group
)+gtx_i
),
2400 PLLTXRESET =>
PLLTXRESET_IN ((group_i*num_GTX_per_group
)+gtx_i
),
2409 --------------------- Transmit Ports - TX PRBS Generator -------------------
2412 -------------------- Transmit Ports - TX Polarity Control ------------------
2413 TXPOLARITY =>
tx_polarity ((group_i*num_GTX_per_group
)+gtx_i
),
2414 ----------------- Transmit Ports - TX Ports for PCI Express ----------------
2421 --------------------- Transmit Ports - TX Ports for SATA -------------------
2429 end generate MGT_gen_gtx;
2430 end generate MGT_gen_grp;
arr_4 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFETAP4)
arr_4 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFETAP3MONITOR)
out TXN_OUTstd_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0)
arr_2 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) rxcharisk_float_i)
out TXDLYALIGNRESETstd_logic
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXENPMAPHASEALIGN_IN)
arr_ctr_3bit (num_GTX_groups * num_fifos_per_group - 1 downto 0) subtick_counter_rx)
std_logic rx_error_eventrealign_all
std_logic_vector (num_GTX_groups - 1 downto 0) RXRESETDONE_OUT_group
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXPLLLKDET_OUT)
std_logic ila_trigger_held20_all
arr_time_multiplex_data_in (num_GTX_groups * num_fifos_per_group - 1 downto 0) time_multiplex_data_in)
std_logic_vector (num_GTX_groups - 1 downto 0) c_tx_sync_done_grp_r
CRC_CHECK crc_check_instcrc_check_inst
arr_2 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXCHARISK_IN)
in addr_vmestd_logic_vector (15 downto 0)
in MGTREFCLK_PAD_N_INstd_logic_vector (num_GTX_groups - 1 downto 0)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXPLLLKDET_OUT)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXDLYALIGNMONENB_IN)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXBYTEREALIGN_OUT)
out set_mem_ctr_i_outstd_logic
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXRECCLK_OUT)
std_logic_vector (num_GTX_groups - 1 downto 0) c_tx_sync_done_grp_r_held20_r
and_all and_all_inst_txand_all_inst_tx
in BCIDstd_logic_vector (11 downto 0)
in data_vme_instd_logic_vector (15 downto 0)
arr_ctr_3bit (num_GTX_groups * num_fifos_per_group - 1 downto 0) subtick_counter)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXRESETDONE_OUT_rr)
arr_ctr_3bit (num_GTX_groups * num_fifos_per_group - 1 downto 0) subtick_counter_rx_reg)
out RXPMASETPHASEstd_logic
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXBYTEISALIGNED_OUT)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXRESETDONE_OUT_rr)
std_logic q4_clk0_refclk_i
in set_mem_ctr_istd_logic
arr_3 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXEQMIX_IN)
std_logic_vector (num_GTX_groups - 1 downto 0) RXPLLLKDET_group
arr_3 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXBUFSTATUS_OUT)
long_unsigned_array ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) long_counter)
mmcm_adv mmcm_adv_usrclkmmcm_adv_usrclk
arr_3 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFESENSCAL)
arr_2 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) rxnotintable_float_i)
arr_time_multiplex_data_out (num_GTX_groups * num_fifos_per_group - 1 downto 0) time_multiplex_data_out_CRC)
out data_from_vmestd_logic_vector (width - 1 downto 0)
arr_16 (5 downto 0) data_vme_from_below
arr_time_multiplex_data_out (num_GTX_groups * num_fifos_per_group - 1 downto 0) time_multiplex_data_out)
tx_sync tx_sync_itx_sync_i
arr_24 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) rand)
vme_inreg_notri_async vme_inreg_reg_rw_tx_polarity_1vme_inreg_reg_rw_tx_polarity_1
out set_mem_ctr_o_outstd_logic
arr_8 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXDLYALIGNMONITOR_OUT)
std_logic_vector (num_GTX_groups - 1 downto 0) set_mem_ctr_o
std_logic_vector (num_GTX_groups - 1 downto 0) cTXPLLLKDET_group
std_logic_vector (num_GTX_groups - 1 downto 0) tx_sync_done_grp_r
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXDLYALIGNDISABLE_IN)
arr_2 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXKERR_OUT)
arr_2 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) MGTREFCLKTX_IN)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXRESETDONE_OUT)
out TXENPMAPHASEALIGNstd_logic
arr_2 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) rxchariscomma_float_i)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) PLLTXRESET_IN)
arr_20 (num_GTX_groups - 1 downto 0) c_tx_sync_done_grp_shiftreg
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) rx_sync_done)
arr_ctr_3bit (num_GTX_groups * num_fifos_per_group - 1 downto 0) subtick_counter_rx_next)
arr_5 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFEEYEDACMON)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) wait_done)
in rx_subtick_counterunsigned (2 downto 0)
arr_2 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXCHARISK_OUT)
in data_vme_from_belowarr_16
--! inputs from local registers and from
rx_sync gtx0_rxsync_igtx0_rxsync_i
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXUSRCLK2_IN)
std_logic_vector (47 downto 0) tx_polarity
std_logic_vector (47 downto 0) rx_polarity
arr_4 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFETAP4MONITOR)
std_logic_vector (num_GTX_groups - 1 downto 0) TXUSRCLK2_IN_bufferedG
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXRESETDONE_OUT_rrr)
in data_vme_instd_logic_vector (15 downto 0)
and_all and_all_rxreset_doneand_all_rxreset_done
in send_alignstd_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0)
and_all and_all_tx_sync_done_grpand_all_tx_sync_done_grp
std_logic_vector (num_GTX_groups - 1 downto 0) refclk_i
std_logic GTX_RX_READY_OUT_sig
out data_vme_outstd_logic_vector (15 downto 0)
arr_2 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXNOTINTABLE_OUT)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXDLYALIGNDISABLE_IN)
std_logic_vector (num_GTX_groups * num_fifos_per_group - 1 downto 0) rx_error_byterealign)
vme_inreg_notri_async vme_inreg_reg_rw_tx_polarity_2vme_inreg_reg_rw_tx_polarity_2
in DATA_instd_logic_vector (numbits - 1 downto 0)
out RXDLYALIGNDISABLEstd_logic
out TXPMASETPHASEstd_logic
in DATAstd_logic_vector (numbits - 1 downto 0)
or_all or_all_c_tx_sync_done_grp_shiftregor_all_c_tx_sync_done_grp_shiftreg
short_unsigned_array (num_GTX_groups - 1 downto 0) short_counter_next
std_logic_vector (num_GTX_groups - 1 downto 0) cRXPLLLKDET_group
std_logic_vector (5 downto 0) bus_drive_from_below
std_logic_vector (num_GTX_groups * num_fifos_per_group - 1 downto 0) rx_error_not_in_table)
out GTX_RX_READY_OUTstd_logic
out subtick_counter_outunsigned (2 downto 0)
std_logic_vector (num_GTX_groups - 1 downto 0) TXPLLLKDET_group
long_unsigned_array ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) long_counter_next)
in DATA_instd_logic_vector (15 downto 0)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXBYTEISALIGNED_OUT_r)
vme_inreg_notri_async vme_inreg_reg_rw_rx_polarity_1vme_inreg_reg_rw_rx_polarity_1
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXDLYALIGNMONENB_IN)
std_logic_vector (num_GTX_groups - 1 downto 0) tx_sync_done_grp
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXCOMMADET_OUT)
std_logic_vector (num_GTX_groups - 1 downto 0) TXUSRCLK2_IN_unbuffered
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXENPCOMMAALIGN_IN)
in data_to_vmestd_logic_vector (width - 1 downto 0)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXRESETDONE_OUT_r)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXRESETDONE_OUT_r)
bufg clkout0_bufg_iclkout0_bufg_i
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXRESETDONE_OUT)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) ila_trigger_held20)
in GTXRXRESET_INstd_logic
in MGTREFCLK_PAD_P_INstd_logic_vector (num_GTX_groups - 1 downto 0)
out data_vme_upstd_logic_vector (15 downto 0)
--! connect this to
SIM_TXPMASETPHASE_SPEEDUPinteger :=0
std_logic_vector (num_GTX_groups * num_fifos_per_group - 1 downto 0) subtick_counter_rx_started)
in addr_vmestd_logic_vector (15 downto 0)
arr_5 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFETAP1)
arr_4 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXDIFFCTRL_IN)
out GTX_TX_READY_OUTstd_logic
arr_2 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXCHARISCOMMA_OUT)
short_unsigned_array (num_GTX_groups - 1 downto 0) short_counter
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXPMASETPHASE_IN)
std_logic rx_error_disparity_all
bufr rxrecclk_bufr1_irxrecclk_bufr1_i
STD_LOGIC_VECTOR ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) GTXRXRESET)
out RXENPMAPHASEALIGNstd_logic
std_logic_vector (num_GTX_groups * num_GTX_per_group * (GTX_data_word_width + 2) - 1 downto 0) fifo_dout)
std_logic_vector (num_GTX_groups - 1 downto 0) c_tx_sync_done_grp
mini_fifo mini_fifo_imini_fifo_i
out RXDLYALIGNOVERRIDEstd_logic
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) reset_rx_sync)
out TXP_OUTstd_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXENMCOMMAALIGN_IN)
and_all and_all_rx_alignedand_all_rx_aligned
arr_5 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFETAP2MONITOR)
vme_inreg_notri_async vme_inreg_reg_rw_rx_polarity_0vme_inreg_reg_rw_rx_polarity_0
arr_2 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXDISPERR_OUT)
out bus_drive_upstd_logic
or of all bus drive requests from below
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXENPMAPHASEALIGN_IN)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) tx_sync_done)
std_logic rx_error_crc_all
arr_5 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFETAP2)
arr_5 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFETAP1MONITOR)
in DATA_instd_logic_vector (16 * 8 - 1 downto 0)
vme_inreg_notri_async vme_inreg_reg_rw_tx_polarity_0vme_inreg_reg_rw_tx_polarity_0
in set_mem_ctr_ostd_logic
std_logic q1_clk0_refclk_i
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) PLLRXRESET_IN)
arr_6 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFECLKDLYADJMON)
std_logic_vector (num_GTX_groups * num_fifos_per_group - 1 downto 0) rx_error_crc)
and_all and_all_inst_rxand_all_inst_rx
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFETAPOVRD)
in DATAstd_logic_vector (numbits - 1 downto 0)
and_all and_all_tx_sync_doneand_all_tx_sync_done
integer :=0 SIM_GTXRESET_SPEEDUP
std_logic tied_to_ground_i
std_logic_vector (num_GTX_groups - 1 downto 0) RXUSRCLK2_IN_bufferedR
out data_vme_outstd_logic_vector (15 downto 0)
time_multiplex_8to1 time_multiplex_itime_multiplex_i
arr_4 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXPREEMPHASIS_IN)
crc_calc crc_calc_instcrc_calc_inst
in indatastd_logic_vector (TX_indata_length - 1 downto 0)
out DATA_outstd_logic_vector (numbits - 1 downto 0)
std_logic_vector (num_GTX_groups - 1 downto 0) set_mem_ctr_i
STD_LOGIC_VECTOR ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) GTXTXRESET)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXOUTCLK_OUT)
arr_2 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) MGTREFCLKRX_IN)
in BCIDstd_logic_vector (11 downto 0)
std_logic_vector (63 downto 0) tied_to_ground_vec_i
arr_GTX_data RXDATA_OUT_reg
arr_2 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXKERR_OUT_UPPER)
arr_8 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXDLYALIGNMONITOR_OUT)
out DATA_outstd_logic_vector (17 downto 0)
in RXN_INstd_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) reset_tx_sync)
in RXP_INstd_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXPMASETPHASE_IN)
vme_inreg_notri_async vme_inreg_reg_rw_rx_polarity_2vme_inreg_reg_rw_rx_polarity_2
out TXDLYALIGNDISABLEstd_logic
std_logic rx_error_not_in_table_all
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXDLYALIGNRESET_IN)
arr_5 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) TXPOSTEMPHASIS_IN)
ibufds_gtxe1 q1_clk0_refclk_ibufds_iq1_clk0_refclk_ibufds_i
std_logic_vector (num_GTX_groups * num_fifos_per_group - 1 downto 0) rx_error_any)
numbitsinteger :=TX_fifo_indata_length
std_logic_vector (num_GTX_groups - 1 downto 0) c_tx_sync_done_grp_r_held20
std_logic_vector (num_GTX_groups * num_fifos_per_group - 1 downto 0) rx_error_eventrealign)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXDLYALIGNOVERRIDE_IN)
mini_fifo_synchroniser mini_fifo_synchroniser_imini_fifo_synchroniser_i
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXDLYALIGNRESET_IN)
arr_20 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) ila_trigger_shiftreg)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXUSRCLK2_IN)
std_logic_vector (num_GTX_groups * num_fifos_per_group - 1 downto 0) rx_error_disparity)
std_logic_vector (num_GTX_groups - 1 downto 0) mmcm_locked
in GTXTXRESET_INstd_logic
arr_2 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) rxdisperr_float_i)
std_logic rx_error_byterealign_all
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) RXRESETDONE_OUT_rrrr)
std_logic_vector ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFEDLYOVRD)
out RXDLYALIGNRESETstd_logic
std_logic_vector (num_GTX_groups - 1 downto 0) mmcm_fback
in bus_drive_from_belowstd_logic_vector
arr_4 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFETAP3)
arr_6 ((num_GTX_per_group * num_GTX_groups) - 1 downto 0) DFECLKDLYADJ)