Entity: Pgp3Gtx7
- File: Pgp3Gtx7.vhd
Diagram
Description
Title : PGPv3: https://confluence.slac.stanford.edu/x/OndODQ
Company : SLAC National Accelerator Laboratory
Description: PGPv3 GTX7 Core Module
This file is part of 'SLAC Firmware Standard Library'. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of 'SLAC Firmware Standard Library', including this file, may be copied, modified, propagated, or distributed except according to
the terms contained in the LICENSE.txt file.
Generics
| Generic name | Type | Value | Description |
|---|---|---|---|
| TPD_G | time | 1 ns | |
| RATE_G | string | "10.3125Gbps" | or "6.25Gbps" or "3.125Gbps" |
| PGP_RX_ENABLE_G | boolean | true | ------------------------------------------------------------------------------------------- PGP Settings ------------------------------------------------------------------------------------------- |
| RX_ALIGN_SLIP_WAIT_G | integer | 32 | |
| PGP_TX_ENABLE_G | boolean | true | |
| NUM_VC_G | integer range 1 to 16 | 4 | |
| TX_CELL_WORDS_MAX_G | integer | PGP3_DEFAULT_TX_CELL_WORDS_MAX_C | Number of 64-bit words per cell |
| TX_MUX_MODE_G | string | "INDEXED" | Or "ROUTED" |
| TX_MUX_TDEST_ROUTES_G | Slv8Array | (0 => "--------") | Only used in ROUTED mode |
| TX_MUX_TDEST_LOW_G | integer range 0 to 7 | 0 | |
| TX_MUX_ILEAVE_EN_G | boolean | true | |
| TX_MUX_ILEAVE_ON_NOTVALID_G | boolean | true | |
| EN_DRP_G | boolean | false | |
| EN_PGP_MON_G | boolean | false | |
| TX_POLARITY_G | sl | '0' | |
| RX_POLARITY_G | sl | '0' | |
| STATUS_CNT_WIDTH_G | natural range 1 to 32 | 16 | |
| ERROR_CNT_WIDTH_G | natural range 1 to 32 | 8 | |
| AXIL_BASE_ADDR_G | slv(31 downto 0) | (others => '0') | |
| AXIL_CLK_FREQ_G | real | 156.25E+6 |
Ports
| Port name | Direction | Type | Description |
|---|---|---|---|
| stableClk | in | sl | GT needs a stable clock to "boot up" |
| stableRst | in | sl | |
| qpllLock | in | sl | QPLL Interface |
| qpllclk | in | sl | |
| qpllrefclk | in | sl | |
| qpllRefClkLost | in | sl | |
| qpllRst | out | sl | |
| gtTxOutClk | out | sl | TX PLL Interface |
| gtTxPllRst | out | sl | |
| txPllClk | in | slv(1 downto 0) | |
| txPllRst | in | slv(1 downto 0) | |
| gtTxPllLock | in | sl | |
| pgpGtTxP | out | sl | Gt Serial IO |
| pgpGtTxN | out | sl | |
| pgpGtRxP | in | sl | |
| pgpGtRxN | in | sl | |
| pgpClk | out | sl | Clocking |
| pgpClkRst | out | sl | |
| pgpRxIn | in | Pgp3RxInType | Non VC Rx Signals |
| pgpRxOut | out | Pgp3RxOutType | |
| pgpTxIn | in | Pgp3TxInType | Non VC Tx Signals |
| pgpTxOut | out | Pgp3TxOutType | |
| pgpTxMasters | in | AxiStreamMasterArray(NUM_VC_G-1 downto 0) | Frame Transmit Interface |
| pgpTxSlaves | out | AxiStreamSlaveArray(NUM_VC_G-1 downto 0) | |
| pgpRxMasters | out | AxiStreamMasterArray(NUM_VC_G-1 downto 0) | Frame Receive Interface |
| pgpRxCtrl | in | AxiStreamCtrlArray(NUM_VC_G-1 downto 0) | |
| axilClk | in | sl | AXI-Lite Register Interface (axilClk domain) |
| axilRst | in | sl | |
| axilReadMaster | in | AxiLiteReadMasterType | |
| axilReadSlave | out | AxiLiteReadSlaveType | |
| axilWriteMaster | in | AxiLiteWriteMasterType | |
| axilWriteSlave | out | AxiLiteWriteSlaveType |
Signals
| Name | Type | Description |
|---|---|---|
| pgpRxClkInt | sl | |
| pgpRxRstInt | sl | |
| pgpTxClkInt | sl | |
| pgpTxRstInt | sl | |
| phyRxClk | sl | PgpRx Signals |
| phyRxRst | sl | |
| phyRxInit | sl | |
| phyRxActive | sl | |
| phyRxValid | sl | |
| phyRxHeader | slv(1 downto 0) | |
| phyRxData | slv(63 downto 0) | |
| phyRxStartSeq | sl | |
| phyRxSlip | sl | |
| phyTxActive | sl | PgpTx Signals |
| phyTxStart | sl | |
| phyTxDataRdy | sl | |
| phyTxData | slv(63 downto 0) | |
| phyTxHeader | slv(1 downto 0) | |
| axilReadMasters | AxiLiteReadMasterArray(NUM_AXIL_MASTERS_C-1 downto 0) | |
| axilReadSlaves | AxiLiteReadSlaveArray(NUM_AXIL_MASTERS_C-1 downto 0) | |
| axilWriteMasters | AxiLiteWriteMasterArray(NUM_AXIL_MASTERS_C-1 downto 0) | |
| axilWriteSlaves | AxiLiteWriteSlaveArray(NUM_AXIL_MASTERS_C-1 downto 0) | |
| loopback | slv(2 downto 0) | |
| txDiffCtrl | slv(4 downto 0) | |
| txPreCursor | slv(4 downto 0) | |
| txPostCursor | slv(4 downto 0) |
Constants
| Name | Type | Value | Description |
|---|---|---|---|
| NUM_AXIL_MASTERS_C | integer | 2 | |
| PGP_AXIL_INDEX_C | integer | 0 | |
| DRP_AXIL_INDEX_C | integer | 1 | |
| XBAR_CONFIG_C | AxiLiteCrossbarMasterConfigArray(NUM_AXIL_MASTERS_C-1 downto 0) | ( PGP_AXIL_INDEX_C => ( baseAddr => AXIL_BASE_ADDR_G, addrBits => 12, connectivity => X"FFFF"), DRP_AXIL_INDEX_C => ( baseAddr => AXIL_BASE_ADDR_G + X"1000", addrBits => 11, connectivity => X"FFFF")) |
Instantiations
- U_Pgp3Core: surf.Pgp3Core
- U_Pgp3Gtx7IpWrapper: surf.Pgp3Gtx7IpWrapper
Description