![]() |
eFEX firmware
1.7.3
ATLAS l1-calo - electron and tau feature extraction firmware for eFEX boards
|
MGT quad generation. More...
Entities | |
| Behavioral | architecture |
| MGT quad generation. More... | |
Libraries | |
| IEEE | |
| work | |
Use Clauses | |
| STD_LOGIC_1164 | |
| mgt_type | Package <mgt_type> |
Generics | |
| num_quad_tx_rx | natural := 20 |
| QUAD_ENABLE | std_logic_vector ( 19 downto 0 ) := ( others = > ' 0 ' ) |
Ports | ||
| clk280 | in | std_logic |
| TTC_CLK | in | std_logic |
| MGT_CLK_GTREFCLK_PAD_N_IN | in | std_logic_vector ( num_quad_tx_rx- 1 downto 0 ) |
| MGT_CLK_GTREFCLK_PAD_P_IN | in | std_logic_vector ( num_quad_tx_rx- 1 downto 0 ) |
| mgt_TXUSRCLK_OUT | out | std_logic_vector ( 4 * num_quad_tx_rx- 1 downto 0 ) |
| mgt_RXUSRCLK_OUT | out | std_logic_vector ( 4 * num_quad_tx_rx- 1 downto 0 ) |
| mgt_SOFT_RESET_TX_IN | in | std_logic_vector ( num_quad_tx_rx- 1 downto 0 ) |
| mgt_SOFT_RESET_RX_IN | in | std_logic_vector ( num_quad_tx_rx- 1 downto 0 ) |
| RXN_IN | in | mgt_rx_array ( num_quad_tx_rx- 1 downto 0 ) |
| RXP_IN | in | mgt_rx_array ( num_quad_tx_rx- 1 downto 0 ) |
| TXN_IN | out | mgt_tx_array ( num_quad_tx_rx- 1 downto 0 ) |
| TXP_IN | out | mgt_tx_array ( num_quad_tx_rx- 1 downto 0 ) |
| rxdata_quad_array | out | mgt_rxdata_array ( num_quad_tx_rx- 1 downto 0 ) |
| txdata_quad_array | in | mgt_txdata_array ( num_quad_tx_rx- 1 downto 0 ) |
| mgt_DATA_VALID_IN | in | std_logic_vector ( 4 * num_quad_tx_rx- 1 downto 0 ) |
| mgt_TX_FSM_RESET_DONE | out | std_logic_vector ( 4 * num_quad_tx_rx- 1 downto 0 ) |
| mgt_RX_FSM_RESET_DONE | out | std_logic_vector ( 4 * num_quad_tx_rx- 1 downto 0 ) |
| rxbyteisaligned_quad_array | out | mgt_rxbyteisaligned_array ( num_quad_tx_rx- 1 downto 0 ) |
| rxresetdone_quad_array | out | mgt_rxresetdone_array ( num_quad_tx_rx- 1 downto 0 ) |
| txresetdone_quad_array | out | mgt_txresetdone_array ( num_quad_tx_rx- 1 downto 0 ) |
| gt_rxpd_array | in | mgt_rxpd_array ( num_quad_tx_rx- 1 downto 0 ) |
| gt_txpd_array | in | mgt_txpd_array ( num_quad_tx_rx- 1 downto 0 ) |
| loopback_quad_array | in | mgt_loopback_array ( num_quad_tx_rx- 1 downto 0 ) |
| rxchariscomma_quad_array | out | mgt_rxchariskcomm_array ( num_quad_tx_rx- 1 downto 0 ) |
| rxcharisk_quad_array | out | mgt_rxcharisk_array ( num_quad_tx_rx- 1 downto 0 ) |
| txcharisk_quad_array | in | mgt_txcharisk_array ( num_quad_tx_rx- 1 downto 0 ) |
| txbufstatus_quad_array | out | mgt_txbufstatus_array ( num_quad_tx_rx- 1 downto 0 ) |
| rxbyterealign_quad_array | out | mgt_rxbyterealign_array ( num_quad_tx_rx- 1 downto 0 ) |
| rxcommadet_quad_array | out | mgt_rxcommadet_array ( num_quad_tx_rx- 1 downto 0 ) |
| rxdisperr_quad_array | out | mgt_rxdisperr_array ( num_quad_tx_rx- 1 downto 0 ) |
| rxnotintable_quad_array | out | mgt_rxnotintable_array ( num_quad_tx_rx- 1 downto 0 ) |
| mgt_QPLLREFCLKLOST_OUT | out | std_logic_vector ( num_quad_tx_rx- 1 downto 0 ) |
| mgt_QPLLLOCK_OUT | out | std_logic_vector ( num_quad_tx_rx- 1 downto 0 ) |
MGT quad generation.
MGT_4_quad_gen generates num_quad_tx_rx MGT quads that contain both transmitters and receivers. This is done via an intermediate 'wrapper' level of hierarchy that ties off unused signals and thus simplifies the interface to the MGTs at this level. The transceiver and receiver in each MGT operate independently of each other: they do not comprise a duplex link. They are grouped together in the VHDL only because they are co-located in the same MGT.
On the receive path, this component performs the following functions:
Definition at line 43 of file MGT_4_quad_gen.vhd.
|
Library |
On the transmit path, this component performs the following functions:
The MGTs here are implemented using Xilinx IP. MGT settings:
Definition at line 35 of file MGT_4_quad_gen.vhd.
|
use clause |
Definition at line 36 of file MGT_4_quad_gen.vhd.
1.9.1