SURF  1.0
Pgp2bTx.vhd
Go to the documentation of this file.
1 -------------------------------------------------------------------------------
2 -- File : Pgp2bTx.vhd
3 -- Company : SLAC National Accelerator Laboratory
4 -- Created : 2009-05-27
5 -- Last update: 2017-03-28
6 -------------------------------------------------------------------------------
7 -- Description:
8 -- Top Level Transmit interface module for the Pretty Good Protocol core.
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 -------------------------------------------------------------------------------
18 
19 LIBRARY ieee;
20 use ieee.std_logic_1164.all;
21 use ieee.std_logic_arith.all;
22 use ieee.std_logic_unsigned.all;
23 use work.StdRtlPkg.all;
24 use work.Pgp2bPkg.all;
25 use work.AxiStreamPkg.all;
26 use work.SsiPkg.all;
27 
28 --! @see entity
29  --! @ingroup protocols_pgp_pgp2b_core
30 entity Pgp2bTx is
31  generic (
32  TPD_G : time := 1 ns;
33  TX_LANE_CNT_G : integer range 1 to 2 := 1; -- Number of receive lanes, 1-2
34  VC_INTERLEAVE_G : integer := 1; -- Interleave Frames
35  PAYLOAD_CNT_TOP_G : integer := 7; -- Top bit for payload counter
36  NUM_VC_EN_G : integer range 1 to 4 := 4
37  );
38  port (
39 
40  -- System clock, reset & control
41  pgpTxClkEn : in sl := '1';-- Master clock enable
42  pgpTxClk : in sl; -- Master clock
43  pgpTxClkRst : in sl; -- Synchronous reset input
44 
45  -- Non-VC related IO
48  locLinkReady : in sl;
49 
50  -- VC Interface
52  pgpTxSlaves : out AxiStreamSlaveArray(3 downto 0);
53  locFifoStatus : in AxiStreamCtrlArray(3 downto 0);
55 
56  -- Phy interface
58  phyTxReady : in sl
59  );
60 
61 end Pgp2bTx;
62 
63 
64 -- Define architecture
65 architecture Pgp2bTx of Pgp2bTx is
66 
67  -- Local Signals
68  signal cellTxSOC : sl;
69  signal cellTxSOF : sl;
70  signal cellTxEOC : sl;
71  signal cellTxEOF : sl;
72  signal cellTxEOFE : sl;
73  signal cellTxData : slv(TX_LANE_CNT_G*16-1 downto 0);
74  signal schTxSOF : sl;
75  signal schTxEOF : sl;
76  signal schTxIdle : sl;
77  signal schTxReq : sl;
78  signal schTxAck : sl;
79  signal schTxDataVc : slv(1 downto 0);
80  signal intTxLinkReady : sl;
81  signal schTxTimeout : sl;
82  signal intPhyTxData : slv(TX_LANE_CNT_G*16-1 downto 0);
83  signal intPhyTxDataK : slv(TX_LANE_CNT_G*2-1 downto 0);
84  signal crcTxIn : slv(TX_LANE_CNT_G*16-1 downto 0); -- Transmit data for CRC
85  signal crcTxInit : sl; -- Transmit CRC value init
86  signal crcTxValid : sl; -- Transmit data for CRC is valid
87  signal crcTxOut : slv(31 downto 0); -- Transmit calculated CRC value
88  signal crcTxOutAdjust : slv(31 downto 0); -- Transmit calculated CRC value
89  signal crcTxRst : sl;
90  signal crcTxInAdjust : slv(31 downto 0);
91  signal crcTxWidthAdjust : slv(2 downto 0);
92  signal intTxSof : slv(3 downto 0);
93  signal intTxEofe : slv(3 downto 0);
94  signal intvalid : slv(3 downto 0);
95  signal rawReady : slv(3 downto 0);
96  signal syncLocPause : slv(3 downto 0);
97  signal syncLocOverFlow : slv(3 downto 0);
98  signal syncRemPause : slv(3 downto 0);
99  signal gateRemPause : slv(3 downto 0);
101  signal intTxMasters : AxiStreamMasterArray(3 downto 0);
102  signal intTxSlaves : AxiStreamSlaveArray(3 downto 0);
103 
104  attribute KEEP_HIERARCHY : string;
105  attribute KEEP_HIERARCHY of
106  U_Pgp2bTxPhy,
107  U_Pgp2bTxSched,
108  U_Pgp2bTxCell,
109  Tx_CRC : label is "TRUE";
110 
111 begin
112 
113  -- Sync flow control & buffer status
114  U_VcFlowGen: for i in 0 to 3 generate
115  U_Sync: entity work.SynchronizerVector
116  generic map (
117  TPD_G => TPD_G,
118  RST_POLARITY_G => '1',
119  OUT_POLARITY_G => '1',
120  RST_ASYNC_G => false,
121  STAGES_G => 2,
122  WIDTH_G => 3,
123  INIT_G => "0"
124  ) port map (
125  clk => pgpTxClk,
126  rst => pgpTxClkRst,
127  dataIn(0) => locFifoStatus(i).pause,
128  dataIn(1) => locFifoStatus(i).overflow,
129  dataIn(2) => remFifoStatus(i).pause,
130  dataOut(0) => syncLocPause(i),
131  dataOut(1) => syncLocOverFlow(i),
132  dataOut(2) => syncRemPause(i)
133  );
134  end generate;
135 
136 
137  U_LinkReady: entity work.Synchronizer
138  generic map (
139  TPD_G => TPD_G,
140  RST_POLARITY_G => '1',
141  OUT_POLARITY_G => '1',
142  RST_ASYNC_G => false,
143  STAGES_G => 2,
144  INIT_G => "0"
145  ) port map (
146  clk => pgpTxClk,
147  rst => pgpTxClkRst,
148  dataIn => locLinkReady,
150  );
151 
152  -- Set phy lanes
153  Lane_Gen: for i in 0 to TX_LANE_CNT_G-1 generate
154  phyTxLanesOut(i).data <= intPhyTxData(16*i+15 downto 16*i);
155  phyTxLanesOut(i).dataK <= intPhyTxDataK(2*i+1 downto 2*i);
156  end generate;
157 
158  -- Link Ready
163 
164  process ( pgpTxClk ) begin
165  if rising_edge(pgpTxClk) then
166  if pgpTxClkRst = '1' then
167  pgpTxOut.frameTx <= '0' after TPD_G;
168  pgpTxOut.frameTxErr <= '0' after TPD_G;
169  gateRemPause <= (others=>'0') after TPD_G;
170  else
171  pgpTxOut.frameTx <= cellTxEOF after TPD_G;
173 
174  if pgpTxIn.flowCntlDis = '1' then
175  gateRemPause <= (others=>'0') after TPD_G;
176  else
178  end if;
179  end if;
180  end if;
181  end process;
182 
183  -- Physical Interface
184  U_Pgp2bTxPhy: entity work.Pgp2bTxPhy
185  generic map (
186  TPD_G => TPD_G,
188  ) port map (
190  pgpTxClk => pgpTxClk,
193  pgpTxOpCodeEn => pgpTxIn.opCodeEn,
194  pgpTxOpCode => pgpTxIn.opCode,
196  pgpLocData => pgpTxIn.locData,
197  cellTxSOC => cellTxSOC,
198  cellTxSOF => cellTxSOF,
199  cellTxEOC => cellTxEOC,
200  cellTxEOF => cellTxEOF,
206  );
207 
208 
209  -- Scheduler
210  U_Pgp2bTxSched: entity work.Pgp2bTxSched
211  generic map (
212  TPD_G => TPD_G,
215  ) port map (
217  pgpTxClk => pgpTxClk,
219  pgpTxFlush => pgpTxIn.flush,
221  schTxSOF => schTxSOF,
222  schTxEOF => schTxEOF,
223  schTxIdle => schTxIdle,
224  schTxReq => schTxReq,
225  schTxAck => schTxAck,
228  vc0FrameTxValid => intValid(0),
229  vc1FrameTxValid => intValid(1),
230  vc2FrameTxValid => intValid(2),
231  vc3FrameTxValid => intValid(3),
236  );
237 
238 
239  -- Cell Transmitter
240  U_Pgp2bTxCell: entity work.Pgp2bTxCell
241  generic map (
242  TPD_G => TPD_G,
244  ) port map (
246  pgpTxClk => pgpTxClk,
249  cellTxSOC => cellTxSOC,
250  cellTxSOF => cellTxSOF,
251  cellTxEOC => cellTxEOC,
252  cellTxEOF => cellTxEOF,
255  schTxSOF => schTxSOF,
256  schTxEOF => schTxEOF,
257  schTxIdle => schTxIdle,
258  schTxReq => schTxReq,
259  schTxAck => schTxAck,
262  vc0FrameTxValid => intValid(0),
264  vc0FrameTxSOF => intTxSof(0),
267  vc0FrameTxData => intTxMasters(0).tData((TX_LANE_CNT_G*16)-1 downto 0),
271  vc1FrameTxValid => intValid(1),
273  vc1FrameTxSOF => intTxSof(1),
276  vc1FrameTxData => intTxMasters(1).tData((TX_LANE_CNT_G*16)-1 downto 0),
280  vc2FrameTxValid => intValid(2),
282  vc2FrameTxSOF => intTxSof(2),
285  vc2FrameTxData => intTxMasters(2).tData((TX_LANE_CNT_G*16)-1 downto 0),
289  vc3FrameTxValid => intValid(3),
291  vc3FrameTxSOF => intTxSof(3),
294  vc3FrameTxData => intTxMasters(3).tData((TX_LANE_CNT_G*16)-1 downto 0),
298  crcTxIn => crcTxIn,
299  crcTxInit => crcTxInit,
302  );
303 
304 
305  -- EOFE/Ready/Valid
306  U_Vc_Gen: for i in 0 to 3 generate
307 
308  -- Add pipeline stages to ensure ready stays asserted
309  U_InputPipe: entity work.AxiStreamPipeline
310  generic map (
311  TPD_G => TPD_G,
312  PIPE_STAGES_G => 0
313  ) port map (
314  axisClk => pgpTxClk,
315  axisRst => pgpTxClkRst,
317  sAxisSlave => pgpTxSlaves(i),
319  mAxisSlave => intTxSlaves(i)
320  );
321 
322  intValid(i) <= intTxMasters(i).tValid;
323  intTxEofe(i) <= axiStreamGetUserBit(SSI_PGP2B_CONFIG_C,intTxMasters(i),SSI_EOFE_C);
324  intTxSof(i) <= axiStreamGetUserBit(SSI_PGP2B_CONFIG_C,intTxMasters(i),SSI_SOF_C,0);
325  intTxSlaves(i).tReady <= rawReady(i);
326 
327  end generate;
328 
329  -- TX CRC BLock
331  crcTxInAdjust(31 downto 24) <= crcTxIn(7 downto 0);
332  crcTxInAdjust(23 downto 16) <= crcTxIn(15 downto 8);
333  crcTxOutAdjust <= not crcTxOut;
334 
335  CRC_TX_1xLANE : if TX_LANE_CNT_G = 1 generate
336  crcTxWidthAdjust <= "001";
337  crcTxInAdjust(15 downto 0) <= (others => '0');
338  end generate CRC_TX_1xLANE;
339 
340  CRC_TX_2xLANE : if TX_LANE_CNT_G = 2 generate
341  crcTxWidthAdjust <= "011";
342  crcTxInAdjust(15 downto 8) <= crcTxIn(23 downto 16);
343  crcTxInAdjust(7 downto 0) <= crcTxIn(31 downto 24);
344  end generate CRC_TX_2xLANE;
345 
346  Tx_CRC : entity work.CRC32Rtl
347  generic map(
348  CRC_INIT => x"FFFFFFFF")
349  port map(
350  CRCOUT => crcTxOut,
351  CRCCLK => pgpTxClk,
352  CRCCLKEN => pgpTxClkEn,
355  CRCIN => crcTxInAdjust,
356  CRCRESET => crcTxRst
357  );
358 
359 end Pgp2bTx;
360 
AxiStreamConfigType := ssiAxiStreamConfig( 2, TKEEP_COMP_C) SSI_PGP2B_CONFIG_C
Definition: Pgp2bPkg.vhd:32
INIT_Gslv := "0"
slv( 3 downto 0) intTxSof
Definition: Pgp2bTx.vhd:92
PIPE_STAGES_Gnatural range 0 to 16:= 0
slv( 2 downto 0) crcTxWidthAdjust
Definition: Pgp2bTx.vhd:91
array(natural range <> ) of AxiStreamSlaveType AxiStreamSlaveArray
out crcTxValidsl
out schTxTimeoutsl
slv( 3 downto 0) syncLocPause
Definition: Pgp2bTx.vhd:96
in vc3RemAlmostFullsl
in pgpTxLinkReadysl
Definition: Pgp2bTxCell.vhd:42
out schTxSOFsl
Definition: Pgp2bTxCell.vhd:53
in vc2FrameTxEOFEsl
Definition: Pgp2bTxCell.vhd:88
in vc3FrameTxDataslv( TX_LANE_CNT_G* 16- 1 downto 0)
in CRCRESETstd_logic
Definition: CRC32Rtl.vhd:43
out schTxEOFsl
Definition: Pgp2bTxCell.vhd:54
in pgpTxClkEnsl := '1'
slv( 31 downto 0) crcTxInAdjust
Definition: Pgp2bTx.vhd:90
out phyTxLanesOutPgp2bTxPhyLaneOutArray( 0 to TX_LANE_CNT_G- 1)
Definition: Pgp2bTx.vhd:57
in pgpTxClkEnsl := '1'
Definition: Pgp2bTx.vhd:41
AxiStreamMasterArray( 3 downto 0) intTxMasters
Definition: Pgp2bTx.vhd:101
out cellTxSOCsl
Definition: Pgp2bTxCell.vhd:45
TPD_Gtime := 1 ns
Definition: Pgp2bTxPhy.vhd:30
in pgpTxClksl
Definition: Pgp2bTx.vhd:42
out crcTxInslv( TX_LANE_CNT_G* 16- 1 downto 0)
std_logic sl
Definition: StdRtlPkg.vhd:28
slv( TX_LANE_CNT_G* 2- 1 downto 0) intPhyTxDataK
Definition: Pgp2bTx.vhd:83
slv( TX_LANE_CNT_G* 16- 1 downto 0) intPhyTxData
Definition: Pgp2bTx.vhd:82
in rstsl :=not RST_POLARITY_G
integer := 1 SSI_SOF_C
Definition: SsiPkg.vhd:31
in vc0RemAlmostFullsl
Definition: Pgp2bTxCell.vhd:70
slv( 3 downto 0) syncRemPause
Definition: Pgp2bTx.vhd:98
in vc2LocAlmostFullsl
Definition: Pgp2bTxCell.vhd:90
integer := 0 SSI_EOFE_C
Definition: SsiPkg.vhd:30
in vc1FrameTxSOFsl
Definition: Pgp2bTxCell.vhd:75
_library_ ieeeieee
Definition: Pgp2bRxPhy.vhd:19
out schTxDataVcslv( 1 downto 0)
in vc2FrameTxEOFsl
Definition: Pgp2bTxCell.vhd:87
in cellTxSOFsl
Definition: Pgp2bTxPhy.vhd:53
NUM_VC_EN_Ginteger range 1 to 4:= 4
Definition: Pgp2bTx.vhd:37
out CRCOUTstd_logic_vector( 31 downto 0)
Definition: CRC32Rtl.vhd:37
TX_LANE_CNT_Ginteger range 1 to 2:= 1
Definition: Pgp2bTx.vhd:33
in vc1FrameTxDataslv( TX_LANE_CNT_G* 16- 1 downto 0)
Definition: Pgp2bTxCell.vhd:78
STAGES_Gpositive := 2
out sAxisSlaveAxiStreamSlaveType
RST_ASYNC_Gboolean := false
in cellTxDataslv( TX_LANE_CNT_G* 16- 1 downto 0)
Definition: Pgp2bTxPhy.vhd:57
out pgpTxLinkReadysl
Definition: Pgp2bTxPhy.vhd:41
slv( TX_LANE_CNT_G* 16- 1 downto 0) cellTxData
Definition: Pgp2bTx.vhd:73
in pgpTxClkRstsl
Definition: Pgp2bTxPhy.vhd:38
in pgpTxClkEnsl := '1'
Definition: Pgp2bTxCell.vhd:37
slv( 15 downto 0) data
Definition: Pgp2bPkg.vhd:168
in CRCINstd_logic_vector( 31 downto 0)
Definition: CRC32Rtl.vhd:42
in pgpTxLinkReadysl
in CRCCLKENstd_logic := '1'
Definition: CRC32Rtl.vhd:39
in vc2FrameTxDataslv( TX_LANE_CNT_G* 16- 1 downto 0)
Definition: Pgp2bTxCell.vhd:89
slv( 3 downto 0) intTxEofe
Definition: Pgp2bTx.vhd:93
out vc2FrameTxReadysl
Definition: Pgp2bTxCell.vhd:85
RST_POLARITY_Gsl := '1'
in vc1RemAlmostFullsl
Definition: Pgp2bTxCell.vhd:81
in phyTxReadysl
Definition: Pgp2bTxPhy.vhd:63
in schTxDataVcslv( 1 downto 0)
Definition: Pgp2bTxCell.vhd:59
slv( 3 downto 0) rawReady
Definition: Pgp2bTx.vhd:95
in mAxisSlaveAxiStreamSlaveType
in vc3RemAlmostFullsl
out cellTxDataslv( TX_LANE_CNT_G* 16- 1 downto 0)
Definition: Pgp2bTxCell.vhd:50
PAYLOAD_CNT_TOP_Ginteger := 7
Definition: Pgp2bTx.vhd:35
in pgpTxInPgp2bTxInType
Definition: Pgp2bTx.vhd:46
in pgpTxClkEnsl := '1'
Definition: Pgp2bTxPhy.vhd:36
array(natural range <> ) of Pgp2bTxPhyLaneOutType Pgp2bTxPhyLaneOutArray
Definition: Pgp2bPkg.vhd:192
out dataOutsl
in vc0LocAlmostFullsl
Definition: Pgp2bTxCell.vhd:68
in vc2RemAlmostFullsl
out cellTxSOFsl
Definition: Pgp2bTxCell.vhd:46
out schTxReqsl
in vc2FrameTxValidsl
Definition: Pgp2bTxCell.vhd:84
TPD_Gtime := 1 ns
Definition: Pgp2bTxCell.vhd:30
out vc1FrameTxReadysl
Definition: Pgp2bTxCell.vhd:74
in pgpTxOpCodeslv( 7 downto 0)
Definition: Pgp2bTxPhy.vhd:45
in pgpTxClkRstsl
Definition: Pgp2bTxCell.vhd:39
out cellTxEOFsl
Definition: Pgp2bTxCell.vhd:48
sl frameTxErr
Definition: Pgp2bPkg.vhd:141
in schTxReqsl
Definition: Pgp2bTxCell.vhd:56
slv( 127 downto 0) tData
out schTxAcksl
Definition: Pgp2bTxCell.vhd:57
in vc0FrameTxValidsl
in remFifoStatusAxiStreamCtrlArray( 3 downto 0)
Definition: Pgp2bTx.vhd:54
NUM_VC_EN_Ginteger range 1 to 4:= 4
in vc0FrameTxValidsl
Definition: Pgp2bTxCell.vhd:62
slv( 1 downto 0) dataK
Definition: Pgp2bPkg.vhd:169
AxiStreamSlaveArray( 3 downto 0) intTxSlaves
Definition: Pgp2bTx.vhd:102
VC_INTERLEAVE_Ginteger := 1
Definition: Pgp2bTx.vhd:34
in vc1FrameTxEOFsl
Definition: Pgp2bTxCell.vhd:76
slv( 3 downto 0) locOverflow
Definition: Pgp2bPkg.vhd:136
in vc3FrameTxEOFsl
Definition: Pgp2bTxCell.vhd:98
in vc3LocOverflowsl
in sAxisMasterAxiStreamMasterType
in locFifoStatusAxiStreamCtrlArray( 3 downto 0)
Definition: Pgp2bTx.vhd:53
VC_INTERLEAVE_Ginteger := 1
out cellTxEOCsl
Definition: Pgp2bTxCell.vhd:47
in pgpLocLinkReadysl
Definition: Pgp2bTxPhy.vhd:48
in vc0FrameTxEOFEsl
Definition: Pgp2bTxCell.vhd:66
in vc1LocAlmostFullsl
Definition: Pgp2bTxCell.vhd:79
TX_LANE_CNT_Ginteger range 1 to 2:= 1
Definition: Pgp2bTxPhy.vhd:32
in vc1FrameTxValidsl
Definition: Pgp2bTxCell.vhd:73
TPD_Gtime := 1 ns
slv( 3 downto 0) gateRemPause
Definition: Pgp2bTx.vhd:99
array(natural range <> ) of AxiStreamCtrlType AxiStreamCtrlArray
in vc3LocAlmostFullsl
in vc3FrameTxSOFsl
Definition: Pgp2bTxCell.vhd:97
sl flowCntlDis
Definition: Pgp2bPkg.vhd:114
out phyTxDataKslv( TX_LANE_CNT_G* 2- 1 downto 0)
Definition: Pgp2bTxPhy.vhd:61
array(natural range <> ) of AxiStreamMasterType AxiStreamMasterArray
OUT_POLARITY_Gsl := '1'
in vc0RemAlmostFullsl
in CRCDATAVALIDstd_logic
Definition: CRC32Rtl.vhd:40
out mAxisMasterAxiStreamMasterType
in cellTxSOCsl
Definition: Pgp2bTxPhy.vhd:52
in vc2RemAlmostFullsl
Definition: Pgp2bTxCell.vhd:92
in vc2LocOverflowsl
Definition: Pgp2bTxCell.vhd:91
CRC_INITbit_vector := x"FFFFFFFF"
Definition: CRC32Rtl.vhd:35
out pgpTxSlavesAxiStreamSlaveArray( 3 downto 0)
Definition: Pgp2bTx.vhd:52
out vc0FrameTxReadysl
Definition: Pgp2bTxCell.vhd:63
in schTxTimeoutsl
Definition: Pgp2bTxCell.vhd:58
in vc0FrameTxEOFsl
Definition: Pgp2bTxCell.vhd:65
in cellTxEOCsl
Definition: Pgp2bTxPhy.vhd:54
slv( 3 downto 0) syncLocOverFlow
Definition: Pgp2bTx.vhd:97
in vc0FrameTxSOFsl
Definition: Pgp2bTxCell.vhd:64
in pgpTxClkRstsl
Definition: Pgp2bTx.vhd:43
in vc2FrameTxValidsl
in vc3FrameTxValidsl
in CRCDATAWIDTHstd_logic_vector( 2 downto 0)
Definition: CRC32Rtl.vhd:41
in pgpTxClkRstsl
TX_LANE_CNT_Ginteger range 1 to 2:= 1
Definition: Pgp2bTxCell.vhd:31
in pgpLocDataslv( 7 downto 0)
Definition: Pgp2bTxPhy.vhd:49
TPD_Gtime := 1 ns
in vc0LocOverflowsl
Definition: Pgp2bTxCell.vhd:69
string KEEP_HIERARCHY
Definition: Pgp2bTx.vhd:104
out crcTxInitsl
RST_ASYNC_Gboolean := false
in pgpTxClksl
Definition: Pgp2bTxPhy.vhd:37
in vc3FrameTxValidsl
Definition: Pgp2bTxCell.vhd:95
in phyTxReadysl
Definition: Pgp2bTx.vhd:59
sl frameTx
Definition: Pgp2bPkg.vhd:140
in cellTxEOFsl
Definition: Pgp2bTxPhy.vhd:55
sl linkReady
Definition: Pgp2bPkg.vhd:71
Pgp2bTxOutType
Definition: Pgp2bPkg.vhd:135
in vc1FrameTxValidsl
in vc1LocOverflowsl
Definition: Pgp2bTxCell.vhd:80
slv( 31 downto 0) crcTxOut
Definition: Pgp2bTx.vhd:87
in pgpTxClksl
Definition: Pgp2bTxCell.vhd:38
in rstsl :=not RST_POLARITY_G
in cellTxEOFEsl
Definition: Pgp2bTxPhy.vhd:56
in vc0FrameTxDataslv( TX_LANE_CNT_G* 16- 1 downto 0)
Definition: Pgp2bTxCell.vhd:67
slv( 31 downto 0) crcTxOutAdjust
Definition: Pgp2bTx.vhd:88
in vc1RemAlmostFullsl
in pgpTxFlushsl
out vc3FrameTxReadysl
Definition: Pgp2bTxCell.vhd:96
out phyTxDataslv( TX_LANE_CNT_G* 16- 1 downto 0)
Definition: Pgp2bTxPhy.vhd:60
in CRCCLKstd_logic
Definition: CRC32Rtl.vhd:38
TPD_Gtime := 1 ns
Definition: Pgp2bTx.vhd:32
in crcTxOutslv( 31 downto 0)
out pgpTxOutPgp2bTxOutType
Definition: Pgp2bTx.vhd:47
in schTxIdlesl
Definition: Pgp2bTxCell.vhd:55
in pgpTxMastersAxiStreamMasterArray( 3 downto 0)
Definition: Pgp2bTx.vhd:51
in vc2FrameTxSOFsl
Definition: Pgp2bTxCell.vhd:86
slv( 3 downto 0) locPause
Definition: Pgp2bPkg.vhd:137
out cellTxEOFEsl
Definition: Pgp2bTxCell.vhd:49
in vc3FrameTxEOFEsl
Definition: Pgp2bTxCell.vhd:99
out schTxIdlesl
slv( 1 downto 0) schTxDataVc
Definition: Pgp2bTx.vhd:79
std_logic_vector slv
Definition: StdRtlPkg.vhd:29
in locLinkReadysl
Definition: Pgp2bTx.vhd:48
in vc1FrameTxEOFEsl
Definition: Pgp2bTxCell.vhd:77
slv( 3 downto 0) intvalid
Definition: Pgp2bTx.vhd:94
in pgpTxOpCodeEnsl
Definition: Pgp2bTxPhy.vhd:44
slv( TX_LANE_CNT_G* 16- 1 downto 0) crcTxIn
Definition: Pgp2bTx.vhd:84