1 ------------------------------------------------------------------------------- 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2009-05-27 5 -- Last update: 2017-05-02 6 ------------------------------------------------------------------------------- 8 -- PGP ID and other global constants. 9 ------------------------------------------------------------------------------- 10 -- This file is part of 'SLAC Firmware Standard Library'. 11 -- It is subject to the license terms in the LICENSE.txt file found in the 12 -- top-level directory of this distribution and at: 13 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. 14 -- No part of 'SLAC Firmware Standard Library', including this file, 15 -- may be copied, modified, propagated, or distributed except according to 16 -- the terms contained in the LICENSE.txt file. 17 ------------------------------------------------------------------------------- 20 USE ieee.std_logic_1164.
ALL;
27 --! @ingroup protocols_pgp_pgp2b_core 29 ----------------------------------------------------- 31 ----------------------------------------------------- 35 constant K_COM_C : slv(7 downto 0) := "10111100";
-- K28.5, 0xBC 36 constant K_LTS_C : slv(7 downto 0) := "00111100";
-- K28.1, 0x3C 37 constant D_102_C : slv(7 downto 0) := "01001010";
-- D10.2, 0x4A 38 constant D_215_C : slv(7 downto 0) := "10110101";
-- D21.5, 0xB5 39 constant K_SKP_C : slv(7 downto 0) := "00011100";
-- K28.0, 0x1C 40 constant K_OTS_C : slv(7 downto 0) := "01111100";
-- K28.3, 0x7C 41 constant K_ALN_C : slv(7 downto 0) := "11011100";
-- K28.6, 0xDC 42 constant K_SOC_C : slv(7 downto 0) := "11111011";
-- K27.7, 0xFB 43 constant K_SOF_C : slv(7 downto 0) := "11110111";
-- K23.7, 0xF7 44 constant K_EOF_C : slv(7 downto 0) := "11111101";
-- K29.7, 0xFD 45 constant K_EOFE_C : slv(7 downto 0) := "11111110";
-- K30.7, 0xFE 46 constant K_EOC_C : slv(7 downto 0) := "01011100";
-- K28.2, 0x5C 51 ----------------------------------------------------- 52 -- PGP RX non-data types 53 ----------------------------------------------------- 105 ----------------------------------------------------- 106 -- PGP2B TX non-data types 107 ----------------------------------------------------- 112 opCode : slv(7 downto 0);
-- Opcode receive value 113 locData : slv(
7 downto 0); -- Near
end side User Data
136 locOverflow : slv(
3 downto 0); -- Local overflow status
137 locPause : slv(
3 downto 0); -- Local pause status
155 ----------------------------------------------------- 156 -- PGP2B RX Phy types 157 ----------------------------------------------------- 169 dataK : slv(1 downto 0);
-- PHY receive data is K character 170 dispErr : slv(1 downto 0);
-- PHY receive data has disparity error 171 decErr : slv(1 downto 0);
-- PHY receive data not in table 183 ----------------------------------------------------- 184 -- PGP2B TX Phy types 185 ----------------------------------------------------- 188 data : slv(15 downto 0);
-- PHY transmit data 189 dataK : slv(1 downto 0);
-- PHY transmit data is K character
AxiStreamConfigType := ssiAxiStreamConfig( 2, TKEEP_COMP_C) SSI_PGP2B_CONFIG_C
array(natural range <> ) of Pgp2bTxInType Pgp2bTxInArray
Pgp2bTxOutType :=(( others => '0'),( others => '0'), '0', '0', '0', '0') PGP2B_TX_OUT_INIT_C
slv( 7 downto 0) := "11111011" K_SOC_C
Pgp2bRxInType :=( '0', '0', "000") PGP2B_RX_IN_INIT_C
slv( 7 downto 0) := "11111101" K_EOF_C
slv( 7 downto 0) := "01011100" K_EOC_C
array(natural range <> ) of Pgp2bTxPhyLaneOutType Pgp2bTxPhyLaneOutArray
array(natural range <> ) of Pgp2bRxOutType Pgp2bRxOutArray
slv( 1 downto 0) linkPolarity
slv( 7 downto 0) := "00111100" K_LTS_C
slv( 7 downto 0) := "01111100" K_OTS_C
slv( 3 downto 0) remOverflow
slv( 7 downto 0) := "11110111" K_SOF_C
Pgp2bTxInType :=( '0', '0',( others => '0'),( others => '0'), '0') PGP2B_TX_IN_INIT_C
array(natural range <> ) of Pgp2bRxInType Pgp2bRxInArray
slv( 7 downto 0) := "11111110" K_EOFE_C
slv( 7 downto 0) remLinkData
array(natural range <> ) of Pgp2bRxPhyLaneOutType Pgp2bRxPhyLaneOutArray
slv( 7 downto 0) := "10111100" K_COM_C
Pgp2bRxPhyLaneInType :=(( others => '0'),( others => '0'),( others => '0'),( others => '0')) PGP2B_RX_PHY_LANE_IN_INIT_C
slv( 7 downto 0) := "10110101" D_215_C
slv( 7 downto 0) := "01001010" D_102_C
slv( 7 downto 0) := "11011100" K_ALN_C
slv( 3 downto 0) remPause
Pgp2bRxPhyLaneOutType :=(polarity => '0') PGP2B_RX_PHY_LANE_OUT_INIT_C
Pgp2bRxOutType :=( '0', '0', "00", '0', '0', '0', '0', '0', '0',( others => '0'), '0',( others => '0'),( others => '0'),( others => '0')) PGP2B_RX_OUT_INIT_C
slv( 7 downto 0) := "00011100" K_SKP_C
Pgp2bTxPhyLaneOutType :=(( others => '0'),( others => '0')) PGP2B_TX_PHY_LANE_OUT_INIT_C
array(natural range <> ) of Pgp2bTxOutType Pgp2bTxOutArray
slv( 2 downto 0) loopback
array(natural range <> ) of Pgp2bRxPhyLaneInType Pgp2bRxPhyLaneInArray
slv( 3 downto 0) := "0101" PGP2B_ID_C
Pgp2bTxInType :=( '0', '0',( others => '0'),( others => '0'), '1') PGP2B_TX_IN_HALF_DUPLEX_C