Entity: Pgp4TxProtocol

Diagram

time TPD_G integer range 1 to 16 NUM_VC_G integer STARTUP_HOLD_G sl pgpTxClk sl pgpTxRst Pgp4TxInType pgpTxIn AxiStreamMasterType pgpTxMaster AxiStreamCtrlArray(NUM_VC_G-1 downto 0) locRxFifoCtrl sl locRxLinkReady sl remRxLinkReady sl phyTxActive sl protTxReady Pgp4TxOutType pgpTxOut AxiStreamSlaveType pgpTxSlave sl protTxValid sl protTxStart slv(63 downto 0) protTxData slv(1 downto 0) protTxHeader

Description


Title : PGPv4: https://confluence.slac.stanford.edu/x/1dzgEQ

Company : SLAC National Accelerator Laboratory

Description: PGPv4 Transmit Protocol Takes pre-packetized AxiStream frames and creates a PGPv4 66/64 protocol stream (pre-scrambler). Inserts IDLE and SKP codes as needed. Inserts

user K codes on request.

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
NUM_VC_G integer range 1 to 16 4
STARTUP_HOLD_G integer 1000

Ports

Port name Direction Type Description
pgpTxClk in sl User Transmit interface
pgpTxRst in sl
pgpTxIn in Pgp4TxInType
pgpTxOut out Pgp4TxOutType
pgpTxMaster in AxiStreamMasterType
pgpTxSlave out AxiStreamSlaveType
locRxFifoCtrl in AxiStreamCtrlArray(NUM_VC_G-1 downto 0) Status of local receive fifosThese get synchronized by the Pgp4Tx parent
locRxLinkReady in sl
remRxLinkReady in sl
phyTxActive in sl Output Interface
protTxReady in sl
protTxValid out sl
protTxStart out sl
protTxData out slv(63 downto 0)
protTxHeader out slv(1 downto 0)

Signals

Name Type Description
r RegType
rin RegType

Constants

Name Type Value Description
REG_INIT_C RegType ( pauseDly => (others => '0'),
pauseEvent => (others => '0'),
pauseEventSent => (others => '0'),
overflowDly => (others => '0'),
overflowEvent => (others => '0'),
overflowEventSent => (others => '0'),
skpInterval => PGP4_TX_IN_INIT_C.skpInterval,
skpCount => (others => '0'),
startupCount => 0,
pgpTxSlave => AXI_STREAM_SLAVE_INIT_C,
opCodeReady => '0',
linkReady => '0',
frameTx => '0',
frameTxErr => '0',
protTxValid => '0',
protTxStart => '0',
protTxData => (others => '0'),
protTxHeader => (others => '0'))

Types

Name Type Description
RegType

Processes