8 use ieee.std_logic_1164.
all;
9 use ieee.numeric_std.
all;
10 use ieee.std_logic_unsigned.
all;
12 use UNISIM.VCOMPONENTS.
ALL;
14 Library xil_defaultlib;
20 EXAMPLE_SIM_GTRESET_SPEEDUP : string := "TRUE";
21 STABLE_CLOCK_PERIOD : integer := 16
31 RXN_IN : in std_logic_vector(3 downto 0);
32 RXP_IN : in std_logic_vector(3 downto 0);
34 TXN_OUT : out std_logic_vector(3 downto 0);
35 TXP_OUT : out std_logic_vector(3 downto 0);
38 Q0_CLK0_GTREFCLK_PAD_P_IN : in std_logic;
95 gt0_txpd_in : in std_logic_vector(1 downto 0);
100 gt0_rxnotintable_out : out std_logic_vector(3 downto 0);
103 gt0_rxbyterealign_out : out std_logic;
104 gt0_rxcommadet_out : out std_logic;
107 gt0_rxcharisk_out : out std_logic_vector(3 downto 0);
126 gt1_txpd_in : in std_logic_vector(1 downto 0);
131 gt1_rxnotintable_out : out std_logic_vector(3 downto 0);
134 gt1_rxbyterealign_out : out std_logic;
135 gt1_rxcommadet_out : out std_logic;
138 gt1_rxcharisk_out : out std_logic_vector(3 downto 0);
156 gt2_txpd_in : in std_logic_vector(1 downto 0);
161 gt2_rxnotintable_out : out std_logic_vector(3 downto 0);
164 gt2_rxbyterealign_out : out std_logic;
165 gt2_rxcommadet_out : out std_logic;
168 gt2_rxcharisk_out : out std_logic_vector(3 downto 0);
183 gt3_loopback_in : in std_logic_vector(2 downto 0);
186 gt3_txpd_in : in std_logic_vector(1 downto 0);
191 gt3_rxnotintable_out : out std_logic_vector(3 downto 0);
194 gt3_rxbyterealign_out : out std_logic;
195 gt3_rxcommadet_out : out std_logic;
198 gt3_rxcharisk_out : out std_logic_vector(3 downto 0);
213 sysclk_in : in std_logic
224 attribute DowngradeIPIdentifiedWarnings: string;
225 attribute DowngradeIPIdentifiedWarnings of RTL : architecture is "yes";
227 attribute CORE_GENERATION_INFO : string;
228 attribute CORE_GENERATION_INFO of RTL : architecture is "MGT_TX_RX_6G4,gtwizard_v3_6_5,{protocol_file=Start_from_scratch}";
234 signal tied_to_ground_i : std_logic;
235 signal tied_to_ground_vec_i : std_logic_vector(63 downto 0);
236 signal tied_to_vcc_i : std_logic;
237 signal tied_to_vcc_vec_i : std_logic_vector(7 downto 0);
240 signal gt0_drpaddr_i : std_logic_vector(8 downto 0);
241 signal gt0_drpdi_i : std_logic_vector(15 downto 0);
242 signal gt0_drpdo_i : std_logic_vector(15 downto 0);
243 signal gt0_drpen_i : std_logic;
244 signal gt0_drprdy_i : std_logic;
245 signal gt0_drpwe_i : std_logic;
246 signal gt1_drpaddr_i : std_logic_vector(8 downto 0);
247 signal gt1_drpdi_i : std_logic_vector(15 downto 0);
248 signal gt1_drpdo_i : std_logic_vector(15 downto 0);
249 signal gt1_drpen_i : std_logic;
250 signal gt1_drprdy_i : std_logic;
251 signal gt1_drpwe_i : std_logic;
252 signal gt2_drpaddr_i : std_logic_vector(8 downto 0);
253 signal gt2_drpdi_i : std_logic_vector(15 downto 0);
254 signal gt2_drpdo_i : std_logic_vector(15 downto 0);
255 signal gt2_drpen_i : std_logic;
256 signal gt2_drprdy_i : std_logic;
257 signal gt2_drpwe_i : std_logic;
258 signal gt3_drpaddr_i : std_logic_vector(8 downto 0);
259 signal gt3_drpdi_i : std_logic_vector(15 downto 0);
260 signal gt3_drpdo_i : std_logic_vector(15 downto 0);
261 signal gt3_drpen_i : std_logic;
262 signal gt3_drprdy_i : std_logic;
263 signal gt3_drpwe_i : std_logic;
274 tied_to_ground_i <= '0';
275 tied_to_ground_vec_i <= x"0000000000000000";
276 tied_to_vcc_i <= '1';
277 tied_to_vcc_vec_i <= "11111111";
291 EXAMPLE_SIM_GTRESET_SPEEDUP => EXAMPLE_SIM_GTRESET_SPEEDUP,
292 STABLE_CLOCK_PERIOD => STABLE_CLOCK_PERIOD
298 DONT_RESET_ON_DATA_ERROR_IN => tied_to_ground_i,
300 Q1_CLK0_GTREFCLK_PAD_P_IN => Q0_CLK0_GTREFCLK_PAD_P_IN,
304 GT0_DATA_VALID_IN => '1' ,
307 GT1_DATA_VALID_IN => '1' ,
310 GT2_DATA_VALID_IN => '1' ,
313 GT3_DATA_VALID_IN => '1' ,
315 GT0_TXUSRCLK2_OUT =>
open ,
317 GT0_RXUSRCLK2_OUT =>
open ,
319 GT1_TXUSRCLK2_OUT =>
open ,
321 GT1_RXUSRCLK2_OUT =>
open ,
323 GT2_TXUSRCLK2_OUT =>
open ,
325 GT2_RXUSRCLK2_OUT =>
open ,
327 GT3_TXUSRCLK2_OUT =>
open ,
329 GT3_RXUSRCLK2_OUT =>
open ,
338 gt0_cpllreset_in => soft_reset_rx_in ,
340 gt0_drpaddr_in => gt0_drpaddr_i,
341 gt0_drpdi_in => gt0_drpdi_i,
342 gt0_drpdo_out => gt0_drpdo_i,
343 gt0_drpen_in => gt0_drpen_i,
344 gt0_drprdy_out => gt0_drprdy_i,
345 gt0_drpwe_in => gt0_drpwe_i,
350 gt0_txpd_in => gt0_txpd_in,
352 gt0_eyescanreset_in => tied_to_ground_i,
353 gt0_rxuserrdy_in => tied_to_ground_i,
355 gt0_eyescandataerror_out =>
open,
356 gt0_eyescantrigger_in => tied_to_ground_i,
358 gt0_dmonitorout_out =>
open,
363 gt0_rxnotintable_out => gt0_rxnotintable_out,
365 gt0_gthrxn_in =>
RXN_IN(0),
367 gt0_rxphmonitor_out =>
open,
368 gt0_rxphslipmonitor_out =>
open,
371 gt0_rxbyterealign_out => gt0_rxbyterealign_out,
372 gt0_rxcommadet_out => gt0_rxcommadet_out,
374 gt0_rxmonitorout_out =>
open,
375 gt0_rxmonitorsel_in => "
00",
377 gt0_rxoutclkfabric_out =>
open,
379 gt0_gtrxreset_in => tied_to_ground_i,
382 gt0_rxcharisk_out => gt0_rxcharisk_out,
384 gt0_gthrxp_in => RXP_IN
(0),
388 gt0_gttxreset_in => tied_to_ground_i,
389 gt0_txuserrdy_in => tied_to_ground_i,
396 gt0_gthtxp_out => TXP_OUT
(0),
398 gt0_txoutclkfabric_out =>
open,
399 gt0_txoutclkpcs_out =>
open,
409 gt1_cpllreset_in => soft_reset_rx_in ,
411 gt1_drpaddr_in => gt1_drpaddr_i,
412 gt1_drpdi_in => gt1_drpdi_i,
413 gt1_drpdo_out => gt1_drpdo_i,
414 gt1_drpen_in => gt1_drpen_i,
415 gt1_drprdy_out => gt1_drprdy_i,
416 gt1_drpwe_in => gt1_drpwe_i,
425 gt1_txpd_in => gt1_txpd_in,
427 gt1_eyescanreset_in => tied_to_ground_i,
428 gt1_rxuserrdy_in => tied_to_ground_i,
430 gt1_eyescandataerror_out =>
open,
431 gt1_eyescantrigger_in => tied_to_ground_i,
433 gt1_dmonitorout_out =>
open,
438 gt1_rxnotintable_out => gt1_rxnotintable_out,
440 gt1_gthrxn_in =>
RXN_IN(1),
442 gt1_rxphmonitor_out =>
open,
443 gt1_rxphslipmonitor_out =>
open,
446 gt1_rxbyterealign_out => gt1_rxbyterealign_out,
447 gt1_rxcommadet_out => gt1_rxcommadet_out,
449 gt1_rxmonitorout_out =>
open,
450 gt1_rxmonitorsel_in => "
00",
452 gt1_rxoutclkfabric_out =>
open,
454 gt1_gtrxreset_in => tied_to_ground_i,
457 gt1_rxcharisk_out => gt1_rxcharisk_out ,
459 gt1_gthrxp_in => RXP_IN
(1),
463 gt1_gttxreset_in => tied_to_ground_i,
464 gt1_txuserrdy_in => tied_to_ground_i,
471 gt1_gthtxp_out => TXP_OUT
(1),
473 gt1_txoutclkfabric_out =>
open,
474 gt1_txoutclkpcs_out =>
open,
486 gt2_cpllreset_in => soft_reset_rx_in,
488 gt2_drpaddr_in => gt2_drpaddr_i,
489 gt2_drpdi_in => gt2_drpdi_i,
490 gt2_drpdo_out => gt2_drpdo_i,
491 gt2_drpen_in => gt2_drpen_i,
492 gt2_drprdy_out => gt2_drprdy_i,
493 gt2_drpwe_in => gt2_drpwe_i,
499 gt2_txpd_in => gt2_txpd_in,
501 gt2_eyescanreset_in => tied_to_ground_i,
502 gt2_rxuserrdy_in => tied_to_ground_i,
504 gt2_eyescandataerror_out =>
open,
505 gt2_eyescantrigger_in => tied_to_ground_i,
507 gt2_dmonitorout_out =>
open,
512 gt2_rxnotintable_out => gt2_rxnotintable_out,
514 gt2_gthrxn_in =>
RXN_IN(2),
516 gt2_rxphmonitor_out =>
open,
517 gt2_rxphslipmonitor_out =>
open,
520 gt2_rxbyterealign_out => gt2_rxbyterealign_out ,
521 gt2_rxcommadet_out => gt2_rxcommadet_out ,
523 gt2_rxmonitorout_out =>
open,
524 gt2_rxmonitorsel_in => "
00",
526 gt2_rxoutclkfabric_out =>
open,
528 gt2_gtrxreset_in => tied_to_ground_i,
531 gt2_rxcharisk_out => gt2_rxcharisk_out ,
533 gt2_gthrxp_in => RXP_IN
(2),
537 gt2_gttxreset_in => tied_to_ground_i,
538 gt2_txuserrdy_in => tied_to_ground_i,
545 gt2_gthtxp_out => TXP_OUT
(2),
547 gt2_txoutclkfabric_out =>
open,
548 gt2_txoutclkpcs_out =>
open,
560 gt3_cpllreset_in => soft_reset_rx_in ,
562 gt3_drpaddr_in => gt3_drpaddr_i,
563 gt3_drpdi_in => gt3_drpdi_i,
564 gt3_drpdo_out => gt3_drpdo_i,
565 gt3_drpen_in => gt3_drpen_i,
566 gt3_drprdy_out => gt3_drprdy_i,
567 gt3_drpwe_in => gt3_drpwe_i,
569 gt3_loopback_in => gt3_loopback_in,
572 gt3_txpd_in => gt3_txpd_in,
575 gt3_eyescanreset_in => tied_to_ground_i,
576 gt3_rxuserrdy_in => tied_to_ground_i,
578 gt3_eyescandataerror_out =>
open,
579 gt3_eyescantrigger_in => tied_to_ground_i,
581 gt3_dmonitorout_out =>
open,
586 gt3_rxnotintable_out => gt3_rxnotintable_out,
588 gt3_gthrxn_in =>
RXN_IN(3),
590 gt3_rxphmonitor_out =>
open,
591 gt3_rxphslipmonitor_out =>
open,
594 gt3_rxbyterealign_out => gt3_rxbyterealign_out ,
595 gt3_rxcommadet_out => gt3_rxcommadet_out ,
597 gt3_rxmonitorout_out =>
open,
598 gt3_rxmonitorsel_in => "
00",
600 gt3_rxoutclkfabric_out =>
open,
602 gt3_gtrxreset_in => tied_to_ground_i,
605 gt3_rxcharisk_out => gt3_rxcharisk_out ,
607 gt3_gthrxp_in => RXP_IN
(3),
611 gt3_gttxreset_in => tied_to_ground_i,
612 gt3_txuserrdy_in => tied_to_ground_i,
619 gt3_gthtxp_out => TXP_OUT
(3),
621 gt3_txoutclkfabric_out =>
open,
622 gt3_txoutclkpcs_out =>
open,
630 GT0_QPLLOUTCLK_OUT =>
open,
631 GT0_QPLLOUTREFCLK_OUT =>
open,
632 sysclk_in => sysclk_in
635 gt0_drpaddr_i <= (others => '0');
636 gt0_drpdi_i <= (others => '0');
639 gt1_drpaddr_i <= (others => '0');
640 gt1_drpdi_i <= (others => '0');
643 gt2_drpaddr_i <= (others => '0');
644 gt2_drpdi_i <= (others => '0');
647 gt3_drpaddr_i <= (others => '0');
648 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_txbufstatus_out std_logic_vector( 1 downto 0)
Transmit Ports - TX Buffer Ports for gt3.
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 Fabric Clock Output Control Ports for gt2.
in gt1_txdata_in std_logic_vector( 31 downto 0)
Transmit Ports - TX Data Path interface gt1.
out GT0_TXUSRCLK_OUT std_logic
tx user clock out gt0
out gt0_txbufstatus_out std_logic_vector( 1 downto 0)
Transmit Ports - TX Buffer Ports for 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
out gt2_rxresetdone_out std_logic
Receive Ports -RX Initialization and Reset Ports for gt2.
out gt2_cplllock_out std_logic
gt2_cplllock_out
in gt2_rxpd_in std_logic_vector( 1 downto 0)
Power-Down Ports for gt2.
out gt1_txbufstatus_out std_logic_vector( 1 downto 0)
Transmit Ports - TX Buffer Ports for gt1.
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.
in gt2_loopback_in std_logic_vector( 2 downto 0)
Loopback Ports for gt2.
out gt2_cpllfbclklost_out std_logic
gt2_cpllfbclklost_out
out gt1_rxresetdone_out std_logic
Receive Ports -RX Initialization and Reset Ports for gt1.
out gt1_cpllfbclklost_out std_logic
gt1_cpllfbclklost_out
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 gt2_rxbyteisaligned_out std_logic
Receive Ports - RX Byte and Word Alignment Ports for gt2.
out gt0_cplllock_out std_logic
gt0_cplllock_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 for gt2.
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.
out gt2_txbufstatus_out std_logic_vector( 1 downto 0)
Transmit Ports - TX Buffer Ports for gt2.
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)
Power-Down Ports for gt0.
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.
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.
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.
in gt3_rxpd_in std_logic_vector( 1 downto 0)
Power-Down Ports for gt3.
in Q0_CLK0_GTREFCLK_PAD_N_IN std_logic
clock input to the quad
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.
out gt0_cpllfbclklost_out std_logic
gt0_cpllfbclklost_out
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
in gt1_loopback_in std_logic_vector( 2 downto 0)
Loopback Ports for gt1.
out gt3_cpllfbclklost_out std_logic
gt3_cpllfbclklost_out
out gt1_cplllock_out std_logic
gt1_cplllock_out
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
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
in gt0_loopback_in std_logic_vector( 2 downto 0)
Loopback Ports for gt0.
out gt3_cplllock_out std_logic
gt3_cplllock_out
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