Entity: Pgp3GthUsWrapper
- File: Pgp3GthUsWrapper.vhd
Diagram
Description
Title : PGPv3: https://confluence.slac.stanford.edu/x/OndODQ
Company : SLAC National Accelerator Laboratory
Description: PGPv3 GTH Ultrascale Wrapper
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 | |
| ROGUE_SIM_EN_G | boolean | false | |
| ROGUE_SIM_SIDEBAND_G | boolean | true | |
| ROGUE_SIM_PORT_NUM_G | natural range 1024 to 49151 | 9000 | |
| SYNTH_MODE_G | string | "inferred" | |
| MEMORY_TYPE_G | string | "block" | |
| NUM_LANES_G | positive range 1 to 4 | 1 | |
| NUM_VC_G | positive range 1 to 16 | 4 | |
| REFCLK_G | boolean | false | FALSE: pgpRefClkP/N, TRUE: pgpRefClkIn |
| 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 | |
| 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_PGP_MON_G | boolean | false | |
| EN_GTH_DRP_G | boolean | false | |
| EN_QPLL_DRP_G | boolean | false | |
| TX_POLARITY_G | slv(3 downto 0) | x"0" | |
| RX_POLARITY_G | slv(3 downto 0) | x"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 | 125.0E+6 |
Ports
| Port name | Direction | Type | Description |
|---|---|---|---|
| stableClk | in | sl | GT needs a stable clock to "boot up" |
| stableRst | in | sl | |
| pgpGtTxP | out | slv(NUM_LANES_G-1 downto 0) | Gt Serial IO |
| pgpGtTxN | out | slv(NUM_LANES_G-1 downto 0) | |
| pgpGtRxP | in | slv(NUM_LANES_G-1 downto 0) | |
| pgpGtRxN | in | slv(NUM_LANES_G-1 downto 0) | |
| pgpRefClkP | in | sl | 156.25 MHz |
| pgpRefClkN | in | sl | 156.25 MHz |
| pgpRefClkIn | in | sl | 156.25 MHz |
| pgpRefClkOut | out | sl | |
| pgpRefClkDiv2Bufg | out | sl | |
| pgpClk | out | slv(NUM_LANES_G-1 downto 0) | Clocking |
| pgpClkRst | out | slv(NUM_LANES_G-1 downto 0) | |
| pgpRxIn | in | Pgp3RxInArray(NUM_LANES_G-1 downto 0) | Non VC Rx Signals |
| pgpRxOut | out | Pgp3RxOutArray(NUM_LANES_G-1 downto 0) | |
| pgpTxIn | in | Pgp3TxInArray(NUM_LANES_G-1 downto 0) | Non VC Tx Signals |
| pgpTxOut | out | Pgp3TxOutArray(NUM_LANES_G-1 downto 0) | |
| pgpTxMasters | in | AxiStreamMasterArray((NUM_LANES_G*NUM_VC_G)-1 downto 0) | Frame Transmit Interface |
| pgpTxSlaves | out | AxiStreamSlaveArray((NUM_LANES_G*NUM_VC_G)-1 downto 0) | |
| pgpRxMasters | out | AxiStreamMasterArray((NUM_LANES_G*NUM_VC_G)-1 downto 0) | Frame Receive Interface |
| pgpRxCtrl | in | AxiStreamCtrlArray((NUM_LANES_G*NUM_VC_G)-1 downto 0) | Used in implementation only |
| pgpRxSlaves | in | AxiStreamSlaveArray((NUM_LANES_G*NUM_VC_G)-1 downto 0) | Used in simulation only |
| axilClk | in | sl | Stable Clock |
| axilRst | in | sl | |
| axilReadMaster | in | AxiLiteReadMasterType | |
| axilReadSlave | out | AxiLiteReadSlaveType | |
| axilWriteMaster | in | AxiLiteWriteMasterType | |
| axilWriteSlave | out | AxiLiteWriteSlaveType |
Signals
| Name | Type | Description |
|---|---|---|
| qpllLock | Slv2Array(3 downto 0) | |
| qpllClk | Slv2Array(3 downto 0) | |
| qpllRefclk | Slv2Array(3 downto 0) | |
| qpllRst | Slv2Array(3 downto 0) | |
| pgpRefClkDiv2 | sl | |
| pgpRefClk | sl | |
| 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) |
Constants
| Name | Type | Value | Description |
|---|---|---|---|
| NUM_AXIL_MASTERS_C | integer | NUM_LANES_G+1 | |
| QPLL_AXIL_INDEX_C | integer | NUM_AXIL_MASTERS_C-1 | |
| XBAR_CONFIG_C | AxiLiteCrossbarMasterConfigArray(NUM_AXIL_MASTERS_C-1 downto 0) | genAxiLiteConfig(NUM_AXIL_MASTERS_C, AXIL_BASE_ADDR_G, 16, 13) |