12 use ieee.std_logic_1164.
all;
13 use ieee.numeric_std.
all;
15 use UNISIM.VCOMPONENTS.
ALL;
24 EXAMPLE_SIM_GTRESET_SPEEDUP : string := "FALSE";
25 STABLE_CLOCK_PERIOD : integer := 16
34 Q1_CLK1_GTREFCLK_PAD_P_IN : in std_logic;
36 RXN_IN : in std_logic_vector(3 downto 0);
37 RXP_IN : in std_logic_vector(3 downto 0);
39 TXN_OUT : out std_logic_vector(3 downto 0);
40 TXP_OUT : out std_logic_vector(3 downto 0);
105 gt0_rxnotintable_out : out std_logic_vector(3 downto 0);
108 gt0_rxbyterealign_out : out std_logic;
109 gt0_rxcommadet_out : out std_logic;
113 gt0_rxcharisk_out : out std_logic_vector(3 downto 0);
125 gt1_txpd_in : in std_logic_vector(1 downto 0);
130 gt1_rxnotintable_out : out std_logic_vector(3 downto 0);
133 gt1_rxbyterealign_out : out std_logic;
134 gt1_rxcommadet_out : out std_logic;
137 gt1_rxcharisk_out : out std_logic_vector(3 downto 0);
150 gt2_txpd_in : in std_logic_vector(1 downto 0);
155 gt2_rxnotintable_out : out std_logic_vector(3 downto 0);
158 gt2_rxbyterealign_out : out std_logic;
159 gt2_rxcommadet_out : out std_logic;
162 gt2_rxcharisk_out : out std_logic_vector(3 downto 0);
175 gt3_txpd_in : in std_logic_vector(1 downto 0);
180 gt3_rxnotintable_out : out std_logic_vector(3 downto 0);
183 gt3_rxbyterealign_out : out std_logic;
184 gt3_rxcommadet_out : out std_logic;
187 gt3_rxcharisk_out : out std_logic_vector(3 downto 0);
199 GT0_QPLLLOCK_OUT : out std_logic;
200 GT0_QPLLREFCLKLOST_OUT : out std_logic;
201 sysclk_in : in std_logic
208 attribute DowngradeIPIdentifiedWarnings: string;
209 attribute DowngradeIPIdentifiedWarnings of RTL : architecture is "yes";
211 attribute CORE_GENERATION_INFO : string;
212 attribute CORE_GENERATION_INFO of RTL : architecture is "mgt11g2_tx_rx_cfpga,gtwizard_v3_6_11,{protocol_file=Start_from_scratch}";
218 signal gt0_gtnorthrefclk0_i : std_logic;
219 signal gt0_gtnorthrefclk1_i : std_logic;
220 signal gt0_gtsouthrefclk0_i : std_logic;
221 signal gt0_gtsouthrefclk1_i : std_logic;
223 signal gt0_drpaddr_i : std_logic_vector(8 downto 0);
224 signal gt0_drpdi_i : std_logic_vector(15 downto 0);
225 signal gt0_drpdo_i : std_logic_vector(15 downto 0);
226 signal gt0_drpen_i : std_logic;
227 signal gt0_drprdy_i : std_logic;
228 signal gt0_drpwe_i : std_logic;
231 signal gt1_gtnorthrefclk0_i : std_logic;
232 signal gt1_gtnorthrefclk1_i : std_logic;
233 signal gt1_gtsouthrefclk0_i : std_logic;
234 signal gt1_gtsouthrefclk1_i : std_logic;
236 signal gt1_drpaddr_i : std_logic_vector(8 downto 0);
237 signal gt1_drpdi_i : std_logic_vector(15 downto 0);
238 signal gt1_drpdo_i : std_logic_vector(15 downto 0);
239 signal gt1_drpen_i : std_logic;
240 signal gt1_drprdy_i : std_logic;
241 signal gt1_drpwe_i : std_logic;
245 signal gt2_gtnorthrefclk0_i : std_logic;
246 signal gt2_gtnorthrefclk1_i : std_logic;
247 signal gt2_gtsouthrefclk0_i : std_logic;
248 signal gt2_gtsouthrefclk1_i : std_logic;
250 signal gt2_drpaddr_i : std_logic_vector(8 downto 0);
251 signal gt2_drpdi_i : std_logic_vector(15 downto 0);
252 signal gt2_drpdo_i : std_logic_vector(15 downto 0);
253 signal gt2_drpen_i : std_logic;
254 signal gt2_drprdy_i : std_logic;
255 signal gt2_drpwe_i : std_logic;
259 signal gt3_gtnorthrefclk0_i : std_logic;
260 signal gt3_gtnorthrefclk1_i : std_logic;
261 signal gt3_gtsouthrefclk0_i : std_logic;
262 signal gt3_gtsouthrefclk1_i : std_logic;
264 signal gt3_drpaddr_i : std_logic_vector(8 downto 0);
265 signal gt3_drpdi_i : std_logic_vector(15 downto 0);
266 signal gt3_drpdo_i : std_logic_vector(15 downto 0);
267 signal gt3_drpen_i : std_logic;
268 signal gt3_drprdy_i : std_logic;
269 signal gt3_drpwe_i : std_logic;
271 signal tied_to_ground_i : std_logic;
272 signal tied_to_ground_vec_i : std_logic_vector(63 downto 0);
273 signal tied_to_vcc_i : std_logic;
274 signal tied_to_vcc_vec_i : std_logic_vector(7 downto 0);
285 tied_to_ground_i <= '0';
286 tied_to_ground_vec_i <= x"0000000000000000";
287 tied_to_vcc_i <= '1';
288 tied_to_vcc_vec_i <= "11111111";
292 gt0_gtnorthrefclk0_i <= tied_to_ground_i;
293 gt0_gtnorthrefclk1_i <= tied_to_ground_i;
294 gt0_gtsouthrefclk0_i <= tied_to_ground_i;
295 gt0_gtsouthrefclk1_i <= tied_to_ground_i;
296 gt1_gtnorthrefclk0_i <= tied_to_ground_i;
297 gt1_gtnorthrefclk1_i <= tied_to_ground_i;
298 gt1_gtsouthrefclk0_i <= tied_to_ground_i;
299 gt1_gtsouthrefclk1_i <= tied_to_ground_i;
300 gt2_gtnorthrefclk0_i <= tied_to_ground_i;
301 gt2_gtnorthrefclk1_i <= tied_to_ground_i;
302 gt2_gtsouthrefclk0_i <= tied_to_ground_i;
303 gt2_gtsouthrefclk1_i <= tied_to_ground_i;
304 gt3_gtnorthrefclk0_i <= tied_to_ground_i;
305 gt3_gtnorthrefclk1_i <= tied_to_ground_i;
306 gt3_gtsouthrefclk0_i <= tied_to_ground_i;
307 gt3_gtsouthrefclk1_i <= tied_to_ground_i;
315 EXAMPLE_SIM_GTRESET_SPEEDUP => EXAMPLE_SIM_GTRESET_SPEEDUP,
316 STABLE_CLOCK_PERIOD => STABLE_CLOCK_PERIOD
322 DONT_RESET_ON_DATA_ERROR_IN => tied_to_ground_i ,
324 Q1_CLK1_GTREFCLK_PAD_P_IN => Q1_CLK1_GTREFCLK_PAD_P_IN,
339 GT0_TXUSRCLK_OUT => gt0_txusrclk_out,
340 GT0_TXUSRCLK2_OUT =>
open,
341 GT0_RXUSRCLK_OUT => gt0_rxusrclk_out,
342 GT0_RXUSRCLK2_OUT =>
open,
344 GT1_TXUSRCLK_OUT => gt1_txusrclk_out,
345 GT1_TXUSRCLK2_OUT =>
open,
346 GT1_RXUSRCLK_OUT => gt1_rxusrclk_out,
347 GT1_RXUSRCLK2_OUT =>
open,
349 GT2_TXUSRCLK_OUT => gt2_txusrclk_out,
350 GT2_TXUSRCLK2_OUT =>
open,
351 GT2_RXUSRCLK_OUT => gt2_rxusrclk_out,
352 GT2_RXUSRCLK2_OUT =>
open,
354 GT3_TXUSRCLK_OUT => gt3_txusrclk_out,
355 GT3_TXUSRCLK2_OUT =>
open,
356 GT3_RXUSRCLK_OUT => gt3_rxusrclk_out,
357 GT3_RXUSRCLK2_OUT =>
open,
365 gt0_gtnorthrefclk0_in => gt0_gtnorthrefclk0_i,
366 gt0_gtnorthrefclk1_in => gt0_gtnorthrefclk1_i,
367 gt0_gtsouthrefclk0_in => gt0_gtsouthrefclk0_i,
368 gt0_gtsouthrefclk1_in => gt0_gtsouthrefclk1_i,
371 gt0_drpaddr_in => gt0_drpaddr_i,
372 gt0_drpdi_in => gt0_drpdi_i,
373 gt0_drpdo_out => gt0_drpdo_i,
374 gt0_drpen_in => gt0_drpen_i,
375 gt0_drprdy_out => gt0_drprdy_i,
376 gt0_drpwe_in => gt0_drpwe_i,
381 gt0_eyescanreset_in => tied_to_ground_i,
382 gt0_rxuserrdy_in => tied_to_ground_i,
384 gt0_eyescandataerror_out =>
open,
385 gt0_eyescantrigger_in => tied_to_ground_i,
387 gt0_dmonitorout_out =>
open,
392 gt0_rxnotintable_out => gt0_rxnotintable_out,
394 gt0_gthrxn_in =>
RXN_IN(0),
396 gt0_rxphmonitor_out =>
open,
397 gt0_rxphslipmonitor_out =>
open,
400 gt0_rxbyterealign_out => gt0_rxbyterealign_out,
401 gt0_rxcommadet_out => gt0_rxcommadet_out,
403 gt0_rxmonitorout_out =>
open,
404 gt0_rxmonitorsel_in => "
00",
406 gt0_rxoutclkfabric_out =>
open,
408 gt0_gtrxreset_in => tied_to_ground_i,
411 gt0_rxcharisk_out => gt0_rxcharisk_out,
413 gt0_gthrxp_in => RXP_IN
(0),
417 gt0_gttxreset_in => tied_to_ground_i,
418 gt0_txuserrdy_in => tied_to_ground_i,
423 gt0_gthtxp_out => TXP_OUT
(0),
425 gt0_txoutclkfabric_out =>
open,
426 gt0_txoutclkpcs_out =>
open,
439 gt1_gtnorthrefclk0_in => gt1_gtnorthrefclk0_i,
440 gt1_gtnorthrefclk1_in => gt1_gtnorthrefclk1_i,
441 gt1_gtsouthrefclk0_in => gt1_gtsouthrefclk0_i,
442 gt1_gtsouthrefclk1_in => gt1_gtsouthrefclk1_i,
444 gt1_drpaddr_in => gt1_drpaddr_i,
445 gt1_drpdi_in => gt1_drpdi_i,
446 gt1_drpdo_out => gt1_drpdo_i,
447 gt1_drpen_in => gt1_drpen_i,
448 gt1_drprdy_out => gt1_drprdy_i,
449 gt1_drpwe_in => gt1_drpwe_i,
452 gt1_txpd_in => gt1_txpd_in,
454 gt1_eyescanreset_in => tied_to_ground_i,
455 gt1_rxuserrdy_in => tied_to_ground_i,
457 gt1_eyescandataerror_out =>
open,
458 gt1_eyescantrigger_in => tied_to_ground_i,
460 gt1_dmonitorout_out =>
open,
465 gt1_rxnotintable_out => gt1_rxnotintable_out,
467 gt1_gthrxn_in =>
RXN_IN(1),
469 gt1_rxphmonitor_out =>
open,
470 gt1_rxphslipmonitor_out =>
open,
473 gt1_rxbyterealign_out => gt1_rxbyterealign_out,
474 gt1_rxcommadet_out => gt1_rxcommadet_out,
476 gt1_rxmonitorout_out =>
open,
477 gt1_rxmonitorsel_in => "
00",
479 gt1_rxoutclkfabric_out =>
open,
481 gt1_gtrxreset_in => tied_to_ground_i,
484 gt1_rxcharisk_out => gt1_rxcharisk_out,
486 gt1_gthrxp_in => RXP_IN
(1),
490 gt1_gttxreset_in => tied_to_ground_i,
491 gt1_txuserrdy_in => tied_to_ground_i,
496 gt1_gthtxp_out => TXP_OUT
(1),
498 gt1_txoutclkfabric_out =>
open,
499 gt1_txoutclkpcs_out =>
open,
512 gt2_gtnorthrefclk0_in => gt2_gtnorthrefclk0_i,
513 gt2_gtnorthrefclk1_in => gt2_gtnorthrefclk1_i,
514 gt2_gtsouthrefclk0_in => gt2_gtsouthrefclk0_i,
515 gt2_gtsouthrefclk1_in => gt2_gtsouthrefclk1_i,
517 gt2_drpaddr_in => gt2_drpaddr_i,
518 gt2_drpdi_in => gt2_drpdi_i,
519 gt2_drpdo_out => gt2_drpdo_i,
520 gt2_drpen_in => gt2_drpen_i,
521 gt2_drprdy_out => gt2_drprdy_i,
522 gt2_drpwe_in => gt2_drpwe_i,
526 gt2_txpd_in => gt2_txpd_in,
528 gt2_eyescanreset_in => tied_to_ground_i,
529 gt2_rxuserrdy_in => tied_to_ground_i,
531 gt2_eyescandataerror_out =>
open,
532 gt2_eyescantrigger_in => tied_to_ground_i,
534 gt2_dmonitorout_out =>
open,
539 gt2_rxnotintable_out => gt2_rxnotintable_out,
541 gt2_gthrxn_in =>
RXN_IN(2),
543 gt2_rxphmonitor_out =>
open,
544 gt2_rxphslipmonitor_out =>
open,
547 gt2_rxbyterealign_out => gt2_rxbyterealign_out,
548 gt2_rxcommadet_out => gt2_rxcommadet_out,
550 gt2_rxmonitorout_out =>
open,
551 gt2_rxmonitorsel_in => "
00",
553 gt2_rxoutclkfabric_out =>
open,
555 gt2_gtrxreset_in => tied_to_ground_i,
558 gt2_rxcharisk_out => gt2_rxcharisk_out,
560 gt2_gthrxp_in => RXP_IN
(2),
564 gt2_gttxreset_in => tied_to_ground_i,
565 gt2_txuserrdy_in => tied_to_ground_i,
570 gt2_gthtxp_out => TXP_OUT
(2),
572 gt2_txoutclkfabric_out =>
open,
573 gt2_txoutclkpcs_out =>
open,
586 gt3_gtnorthrefclk0_in => gt3_gtnorthrefclk0_i,
587 gt3_gtnorthrefclk1_in => gt3_gtnorthrefclk1_i,
588 gt3_gtsouthrefclk0_in => gt3_gtsouthrefclk0_i,
589 gt3_gtsouthrefclk1_in => gt3_gtsouthrefclk1_i,
592 gt3_drpaddr_in => gt3_drpaddr_i,
593 gt3_drpdi_in => gt3_drpdi_i,
594 gt3_drpdo_out => gt3_drpdo_i,
595 gt3_drpen_in => gt3_drpen_i,
596 gt3_drprdy_out => gt3_drprdy_i,
597 gt3_drpwe_in => gt3_drpwe_i,
601 gt3_txpd_in => gt3_txpd_in,
603 gt3_eyescanreset_in => tied_to_ground_i,
604 gt3_rxuserrdy_in => tied_to_ground_i,
606 gt3_eyescandataerror_out =>
open,
607 gt3_eyescantrigger_in => tied_to_ground_i,
609 gt3_dmonitorout_out =>
open,
614 gt3_rxnotintable_out => gt3_rxnotintable_out,
616 gt3_gthrxn_in =>
RXN_IN(3),
618 gt3_rxphmonitor_out =>
open,
619 gt3_rxphslipmonitor_out =>
open,
622 gt3_rxbyterealign_out => gt3_rxbyterealign_out,
623 gt3_rxcommadet_out => gt3_rxcommadet_out,
625 gt3_rxmonitorout_out =>
open,
626 gt3_rxmonitorsel_in => "
00",
628 gt3_rxoutclkfabric_out =>
open,
630 gt3_gtrxreset_in => tied_to_ground_i,
633 gt3_rxcharisk_out => gt3_rxcharisk_out,
635 gt3_gthrxp_in => RXP_IN
(3),
639 gt3_gttxreset_in => tied_to_ground_i,
640 gt3_txuserrdy_in => tied_to_ground_i,
645 gt3_gthtxp_out => TXP_OUT
(3),
647 gt3_txoutclkfabric_out =>
open,
648 gt3_txoutclkpcs_out =>
open,
657 GT0_QPLLLOCK_OUT => GT0_QPLLLOCK_OUT,
658 GT0_QPLLREFCLKLOST_OUT => GT0_QPLLREFCLKLOST_OUT,
659 GT0_QPLLOUTCLK_OUT =>
open,
660 GT0_QPLLOUTREFCLK_OUT =>
open,
661 sysclk_in => sysclk_in
665 gt0_drpaddr_i <= (others => '0');
666 gt0_drpdi_i <= (others => '0');
669 gt1_drpaddr_i <= (others => '0');
670 gt1_drpdi_i <= (others => '0');
673 gt2_drpaddr_i <= (others => '0');
674 gt2_drpdi_i <= (others => '0');
677 gt3_drpaddr_i <= (others => '0');
678 gt3_drpdi_i <= (others => '0');
out gt1_rxdata_out std_logic_vector( 31 downto 0)
Receive Ports - FPGA RX interface Ports for gt1.
out gt3_rxbyteisaligned_out std_logic
Receive Ports - RX Byte and Word Alignment Ports for gt3.
out gt2_txresetdone_out std_logic
Transmit Ports - TX Initialization and Reset Ports for gt2.
in GT3_DATA_VALID_IN std_logic
status o3f data valid gt
out GT0_TXUSRCLK2_OUT std_logic
GT0_TXUSRCLK2_OUT.
in Q1_CLK1_GTREFCLK_PAD_N_IN std_logic
clock input to the quad
in gt1_txdata_in std_logic_vector( 31 downto 0)
Transmit Ports - TX Data Path interface for gt1.
out GT0_TXUSRCLK_OUT std_logic
tx user clock out gt0
out TXN_OUT std_logic_vector( 3 downto 0)
tx quad output
out gt0_rxdisperr_out std_logic_vector( 3 downto 0)
Receive Ports - RX 8B/10B Decoder Ports -for gt0.
out GT3_TX_FSM_RESET_DONE_OUT std_logic
status reset of the tx fsm gt3
out GT2_RX_FSM_RESET_DONE_OUT std_logic
status reset of the rx fsm gt2
in GT0_DATA_VALID_IN std_logic
status of data valid gt0
out gt2_rxresetdone_out std_logic
Receive Ports -RX Initialization and Reset Ports for gt2.
in gt2_rxpd_in std_logic_vector( 1 downto 0)
Power-Down Ports for gt2.
out gt0_rxdata_out std_logic_vector( 31 downto 0)
Receive Ports - FPGA RX interface Ports for gt0.
out GT2_TXUSRCLK_OUT std_logic
tx user clock out gt2
out gt3_rxdisperr_out std_logic_vector( 3 downto 0)
Receive Ports - RX 8B/10B Decoder Ports for gt3.
out gt1_rxresetdone_out std_logic
Receive Ports -RX Initialization and Reset Ports for gt1.
in gt0_txdata_in std_logic_vector( 31 downto 0)
Transmit Ports - TX Data Path interface for gt0.
out gt3_rxdata_out std_logic_vector( 31 downto 0)
Receive Ports - FPGA RX interface Ports for gt3.
out GT1_RXUSRCLK2_OUT std_logic
GT1_RXUSRCLK2_OUT.
out gt2_rxbyteisaligned_out std_logic
Receive Ports - RX Byte and Word Alignment Ports for gt2.
out GT2_TXUSRCLK2_OUT std_logic
GT2_TXUSRCLK2_OUT.
out GT1_RX_FSM_RESET_DONE_OUT std_logic
status reset of the rx fsm gt1
out gt0_rxchariscomma_out std_logic_vector( 3 downto 0)
Receive Ports - RX8B/10B Decoder Ports for gt0.
out gt0_txresetdone_out std_logic
Transmit Ports - TX Initialization and Reset Ports for gt0.
out GT3_TXUSRCLK_OUT std_logic
tx user clock out gt3
out GT3_RX_FSM_RESET_DONE_OUT std_logic
status reset of the rx fsm gt3
out gt2_rxdisperr_out std_logic_vector( 3 downto 0)
Receive Ports - RX 8B/10B Decoder Ports gt2.
in GT1_DATA_VALID_IN std_logic
status of data valid gt1
out gt0_rxresetdone_out std_logic
Receive Ports -RX Initialization and Reset Ports for gt0.
in gt3_txdata_in std_logic_vector( 31 downto 0)
Transmit Ports - TX Data Path interface for gt3.
out gt3_rxresetdone_out std_logic
Receive Ports -RX Initialization and Reset Ports for gt3.
in gt3_txcharisk_in std_logic_vector( 3 downto 0)
Transmit Transmit Ports - 8b10b Encoder Control Ports for gt3.
in gt0_rxpd_in std_logic_vector( 1 downto 0)
rx power down bit
out gt2_rxchariscomma_out std_logic_vector( 3 downto 0)
Receive Ports - RX8B/10B Decoder Ports for gt2.
out GT3_RXUSRCLK_OUT std_logic
rx user clock out gt3
out gt0_rxbyteisaligned_out std_logic
Receive Ports - RX Byte and Word Alignment Ports for gt0.
out GT0_TX_FSM_RESET_DONE_OUT std_logic
status reset of the tx fsm gt0
in SOFT_RESET_TX_IN std_logic
soft reset of tx quad
out GT1_RXUSRCLK_OUT std_logic
rx user clock out gt1
out gt1_txresetdone_out std_logic
Transmit Ports - TX Initialization and Reset Ports for gt1.
out GT3_RXUSRCLK2_OUT std_logic
GT3_RXUSRCLK2_OUT.
in gt1_txcharisk_in std_logic_vector( 3 downto 0)
Transmit Transmit Ports - 8b10b Encoder Control Ports for gt1.
in gt1_rxpd_in std_logic_vector( 1 downto 0)
Power-Down Ports for gt1.
out gt1_rxbyteisaligned_out std_logic
Receive Ports - RX Byte and Word Alignment Ports for gt1.
out GT2_RXUSRCLK2_OUT std_logic
GT2_RXUSRCLK2_OUT.
in RXN_IN std_logic_vector( 3 downto 0)
rx quad input
out GT2_RXUSRCLK_OUT std_logic
rx user clock out gt2
out gt1_rxchariscomma_out std_logic_vector( 3 downto 0)
Receive Ports - RX8B/10B Decoder Ports for gt1.
out gt2_rxdata_out std_logic_vector( 31 downto 0)
Receive Ports - FPGA RX interface Ports for gt2.
out GT1_TXUSRCLK2_OUT std_logic
GT1_TXUSRCLK2_OUT.
in gt3_rxpd_in std_logic_vector( 1 downto 0)
Power-Down Ports for gt3.
in gt2_txcharisk_in std_logic_vector( 3 downto 0)
Transmit Transmit Ports - 8b10b Encoder Control Ports for gt2.
out gt3_rxchariscomma_out std_logic_vector( 3 downto 0)
Receive Ports - RX8B/10B Decoder Ports for gt3.
in gt2_txdata_in std_logic_vector( 31 downto 0)
Transmit Ports - TX Data Path interface for gt2.
out GT2_TX_FSM_RESET_DONE_OUT std_logic
status reset of the tx fsm gt2
out GT0_RXUSRCLK2_OUT std_logic
GT0_RXUSRCLK2_OUT.
out GT3_TXUSRCLK2_OUT std_logic
GT3_TXUSRCLK2_OUT.
in gt0_txpd_in std_logic_vector( 1 downto 0)
tx power down bit
in gt0_txcharisk_in std_logic_vector( 3 downto 0)
Transmit Transmit Ports - 8b10b Encoder Control Ports for gt0.
out GT0_RXUSRCLK_OUT std_logic
rx user clock out gt0
out GT0_RX_FSM_RESET_DONE_OUT std_logic
status reset of the rx fsm gto
in GT2_DATA_VALID_IN std_logic
status of data valid gt2
out gt1_rxdisperr_out std_logic_vector( 3 downto 0)
Receive Ports - RX 8B/10B Decoder Ports for gt1.
out gt3_txresetdone_out std_logic
Transmit Ports - TX Initialization and Reset Ports for gt3.
in SOFT_RESET_RX_IN std_logic
soft reset of rx quad
out GT1_TX_FSM_RESET_DONE_OUT std_logic
status reset of the tx fsm gt1
out GT1_TXUSRCLK_OUT std_logic
tx user clock out gt1