SURF  1.0
Pgp2bGth7FixedLat.vhd
Go to the documentation of this file.
1 -------------------------------------------------------------------------------
2 -- File : Pgp2bGth7Fixedlat.vhd
3 -- Company : SLAC National Accelerator Laboratory
4 -- Created : 2015-04-01
5 -- Last update: 2016-08-24
6 -------------------------------------------------------------------------------
7 -- Description: Gth7 Fixed Latency Module
8 -------------------------------------------------------------------------------
9 -- This file is part of 'SLAC Firmware Standard Library'.
10 -- It is subject to the license terms in the LICENSE.txt file found in the
11 -- top-level directory of this distribution and at:
12 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html.
13 -- No part of 'SLAC Firmware Standard Library', including this file,
14 -- may be copied, modified, propagated, or distributed except according to
15 -- the terms contained in the LICENSE.txt file.
16 -------------------------------------------------------------------------------
17 
18 library ieee;
19 use ieee.std_logic_1164.all;
20 
21 use work.StdRtlPkg.all;
22 use work.Pgp2bPkg.all;
23 use work.AxiStreamPkg.all;
24 use work.AxiLitePkg.all;
25 
26 library UNISIM;
27 use UNISIM.VCOMPONENTS.all;
28 
29 --! @see entity
30  --! @ingroup protocols_pgp_pgp2b_gth7
32  generic (
33  TPD_G : time := 1 ns;
34 
35  ----------------------------------------------------------------------------------------------
36  -- GT Settings
37  ----------------------------------------------------------------------------------------------
38  -- Sim Generics --
39  SIM_GTRESET_SPEEDUP_G : string := "FALSE";
40  SIM_VERSION_G : string := "2.0";
41  SIMULATION_G : boolean := false;
42  STABLE_CLOCK_PERIOD_G : real := 4.0E-9; --units of seconds
43  -- CPLL Settings - Defaults to 2.5 Gbps operation
44  CPLL_REFCLK_SEL_G : bit_vector := "001";
45  CPLL_FBDIV_G : integer := 4;
46  CPLL_FBDIV_45_G : integer := 5;
47  CPLL_REFCLK_DIV_G : integer := 1;
48  RXOUT_DIV_G : integer := 2;
49  TXOUT_DIV_G : integer := 2;
50  RX_CLK25_DIV_G : integer := 5;
51  TX_CLK25_DIV_G : integer := 5;
52 
53  PMA_RSV_G : bit_vector := x"00000080";
54  RX_OS_CFG_G : bit_vector := "0000010000000"; -- Set by wizard
55  RXCDR_CFG_G : bit_vector := x"0002007FE1000C2200018"; -- Set by wizard
56  RXDFEXYDEN_G : sl := '0'; -- Set by wizard
57 
58  -- Configure PLL sources
59  TX_PLL_G : string := "QPLL";
60  RX_PLL_G : string := "CPLL";
61 
62  ----------------------------------------------------------------------------------------------
63  -- PGP Settings
64  ----------------------------------------------------------------------------------------------
65  VC_INTERLEAVE_G : integer := 0; -- No interleave Frames
66  PAYLOAD_CNT_TOP_G : integer := 7; -- Top bit for payload counter
67  NUM_VC_EN_G : integer range 1 to 4 := 4;
69  TX_ENABLE_G : boolean := true; -- Enable TX direction
70  RX_ENABLE_G : boolean := true); -- Enable RX direction
71  port (
72  -- GT Clocking
73  stableClk : in sl; -- GT needs a stable clock to "boot up"
74  gtCPllRefClk : in sl := '0'; -- Drives CPLL if used
75  gtCPllLock : out sl;
76  gtQPllRefClk : in sl := '0'; -- Signals from QPLL if used
77  gtQPllClk : in sl := '0';
78  gtQPllLock : in sl := '0';
79  gtQPllRefClkLost : in sl := '0';
80  gtQPllReset : out sl;
81  gtRxRefClkBufg : in sl; -- gtrefclk driving rx side, fed through clock buffer
82 
83  -- Gt Serial IO
84  gtRxN : in sl; -- GT Serial Receive Negative
85  gtRxP : in sl; -- GT Serial Receive Positive
86  gtTxN : out sl; -- GT Serial Transmit Negative
87  gtTxP : out sl; -- GT Serial Transmit Positive
88 
89  -- Tx Clocking
90  pgpTxReset : in sl;
91  pgpTxClk : in sl; -- ????
92 
93  -- Rx clocking
94  pgpRxReset : in sl;
95  pgpRxRecClk : out sl; -- rxrecclk basically
96  pgpRxRecClkRst : out sl; -- Reset for recovered clock
97  pgpRxClk : in sl; -- Run recClk through external MMCM and sent to this input
99  pgpRxMmcmLocked : in sl := '1';
100 
101  -- Non VC Rx Signals
104 
105  -- Non VC Tx Signals
108 
109  -- Frame Transmit Interface - 1 Lane, Array of 4 VCs
111  pgpTxSlaves : out AxiStreamSlaveArray(3 downto 0);
112 
113  -- Frame Receive Interface - 1 Lane, Array of 4 VCs
116  pgpRxCtrl : in AxiStreamCtrlArray(3 downto 0);
117 
118  -- Debug Interface
119  txPreCursor : in slv(4 downto 0) := (others => '0');
120  txPostCursor : in slv(4 downto 0) := (others => '0');
121  txDiffCtrl : in slv(3 downto 0) := "1000";
122  -- AXI-Lite Interface
123  axilClk : in sl := '0';
124  axilRst : in sl := '0';
129 
130 end Pgp2bGth7Fixedlat;
131 
132 
133 -- Define architecture
134 architecture rtl of Pgp2bGth7Fixedlat is
135 
136  --------------------------------------------------------------------------------------------------
137  -- Shared GT Signals
138  --------------------------------------------------------------------------------------------------
139 
140  --------------------------------------------------------------------------------------------------
141  -- Rx Signals
142  --------------------------------------------------------------------------------------------------
143  -- Rx Clocks
144 
145  -- Rx Resets
146  signal gtRxResetDone : sl;
147  signal gtRxResetDoneL : sl;
148  signal gtRxUserReset : sl;
149 
150 -- signal pgpRxResetInt : sl;
151 -- signal pgpRxReset1 : sl;
152 
153  -- PgpRx Signals
154  signal gtRxData : slv(19 downto 0); -- Feed to 8B10B decoder
155  signal dataValid : sl; -- no decode or disparity errors
156  signal phyRxLanesIn : Pgp2bRxPhyLaneInArray(0 to 0); -- Output from decoder
157  signal phyRxLanesOut : Pgp2bRxPhyLaneOutArray(0 to 0); -- Polarity to GT
158  signal phyRxReady : sl; -- To RxRst
159  signal phyRxInit : sl; -- To RxRst
160 
161  --------------------------------------------------------------------------------------------------
162  -- Tx Signals
163  --------------------------------------------------------------------------------------------------
164  signal gtTxOutClk : sl;
165  signal gtTxUsrClk : sl;
166 
167  signal gtTxResetDone : sl;
168 
169  -- PgpTx Signals
170  signal phyTxLanesOut : Pgp2bTxPhyLaneOutArray(0 to 0);
171  signal phyTxReady : sl;
172 
173  signal stableRst : sl;
174  signal drpGnt : sl;
175  signal drpRdy : sl;
176  signal drpEn : sl;
177  signal drpWe : sl;
178  signal drpAddr : slv(8 downto 0);
179  signal drpDi : slv(15 downto 0);
180  signal drpDo : slv(15 downto 0);
181 
182 begin
183 
184  --------------------------------------------------------------------------------------------------
185  -- PGP Core
186  --------------------------------------------------------------------------------------------------
187 
188  U_Pgp2bLane : entity work.Pgp2bLane
189  generic map (
190  TPD_G => TPD_G,
191  LANE_CNT_G => 1,
197  port map (
198  pgpTxClk => pgpTxClk,
200  pgpTxIn => pgpTxIn,
201  pgpTxOut => pgpTxOut,
204  phyTxLanesOut => phyTxLanesOut,
205  phyTxReady => gtTxResetDone, --phyTxReady, -- Use txResetDone
206  pgpRxClk => pgpRxClk,
207  pgpRxClkRst => gtRxResetDoneL, -- Hold in reset until gtp rx is up
208  pgpRxIn => pgpRxIn,
209  pgpRxOut => pgpRxOut,
212  pgpRxCtrl => pgpRxCtrl,
213  phyRxLanesOut => phyRxLanesOut,
214  phyRxLanesIn => phyRxLanesIn,
215  phyRxReady => gtRxResetDone,
216  phyRxInit => open --gtRxUserReset, -- Ignore phyRxInit, rx will reset on its own
217  );
218 
219  --------------------------------------------------------------------------------------------------
220  -- Rx Data Path
221  -- Hold Decoder and PgpRx in reset until GtRxResetDone.
222  --------------------------------------------------------------------------------------------------
223  gtRxResetDoneL <= not gtRxResetDone;
224  Decoder8b10b_1 : entity work.Decoder8b10b
225  generic map (
226  TPD_G => TPD_G,
227  RST_POLARITY_G => '0', --active low polarity
228  NUM_BYTES_G => 2)
229  port map (
230  clk => pgpRxClk,
231  rst => gtRxResetDone,
232  dataIn => gtRxData,
233  dataOut => phyRxLanesIn(0).data,
234  dataKOut => phyRxLanesIn(0).dataK,
235  codeErr => phyRxLanesIn(0).decErr,
236  dispErr => phyRxLanesIn(0).dispErr);
237 
238  dataValid <= not (uOr(phyRxLanesIn(0).decErr) or uOr(phyRxLanesIn(0).dispErr));
239 
240 -- pgpRxResetInt <= pgpRxReset1 or pgpRxReset;
241 
242  pgpRxRecClkRst <= gtRxResetDoneL;
243 
244  --------------------------------------------------------------------------------------------------
245  -- Tx Data Path
246  --------------------------------------------------------------------------------------------------
247 
248  -- Wrap txOutClk back to TxUsrClk to get sim to lock the alignment
249 -- TX_USR_CLK_BUFG : BUFG
250 -- port map (
251 -- I => gtTxOutClk,
252 -- O => gtTxUsrClk);
253  gtTxUsrClk <= pgpTxClk;
254 
255  --------------------------------------------------------------------------------------------------
256  -- GTX 7 Core in Fixed Latency mode
257  --------------------------------------------------------------------------------------------------
258  Gth7Core_1 : entity work.Gth7Core
259  generic map (
260  TPD_G => TPD_G,
273 -- PMA_RSV_G => PMA_RSV_G,
274  TX_PLL_G => TX_PLL_G,
275  RX_PLL_G => RX_PLL_G,
276  TX_EXT_DATA_WIDTH_G => 16,
277  TX_INT_DATA_WIDTH_G => 20,
278  TX_8B10B_EN_G => true,
279  RX_EXT_DATA_WIDTH_G => 20,
280  RX_INT_DATA_WIDTH_G => 20,
281  RX_8B10B_EN_G => false,
282  TX_BUF_EN_G => false,
283  TX_OUTCLK_SRC_G => "PLLREFCLK",
284  TX_DLY_BYPASS_G => '0',
285  TX_PHASE_ALIGN_G => "MANUAL",
286  RX_BUF_EN_G => false,
287  RX_OUTCLK_SRC_G => "OUTCLKPMA",
288  RX_USRCLK_SRC_G => "RXOUTCLK",
289  RX_DLY_BYPASS_G => '1',
290  RX_DDIEN_G => '0',
291  RX_ALIGN_MODE_G => "FIXED_LAT",
295  RX_EQUALIZER_G => "DFE",
296 -- ALIGN_COMMA_DOUBLE_G => ALIGN_COMMA_DOUBLE_G,
297 -- ALIGN_COMMA_ENABLE_G => ALIGN_COMMA_ENABLE_G,
298 -- ALIGN_COMMA_WORD_G => ALIGN_COMMA_WORD_G,
299 -- ALIGN_MCOMMA_DET_G => ALIGN_MCOMMA_DET_G,
300 -- ALIGN_MCOMMA_VALUE_G => ALIGN_MCOMMA_VALUE_G,
301 -- ALIGN_MCOMMA_EN_G => ALIGN_MCOMMA_EN_G,
302 -- ALIGN_PCOMMA_DET_G => ALIGN_PCOMMA_DET_G,
303 -- ALIGN_PCOMMA_VALUE_G => ALIGN_PCOMMA_VALUE_G,
304 -- ALIGN_PCOMMA_EN_G => ALIGN_PCOMMA_EN_G,
305 -- SHOW_REALIGN_COMMA_G => SHOW_REALIGN_COMMA_G,
306  RXSLIDE_MODE_G => "PMA",
307  FIXED_ALIGN_COMMA_0_G => "----------0101111100", -- Normal Comma
308  FIXED_ALIGN_COMMA_1_G => "----------1010000011", -- Inverted Comma
309  FIXED_ALIGN_COMMA_2_G => "XXXXXXXXXXXXXXXXXXXX", -- Unused
310  FIXED_ALIGN_COMMA_3_G => "XXXXXXXXXXXXXXXXXXXX" -- Unused
311 -- RX_DISPERR_SEQ_MATCH_G => RX_DISPERR_SEQ_MATCH_G,
312 -- DEC_MCOMMA_DETECT_G => DEC_MCOMMA_DETECT_G,
313 -- DEC_PCOMMA_DETECT_G => DEC_PCOMMA_DETECT_G,
314 -- DEC_VALID_COMMA_ONLY_G => DEC_VALID_COMMA_ONLY_G
315  )
316  port map (
321  qPllClkIn => gtQPllClk,
326  gtTxP => gtTxP,
327  gtTxN => gtTxN,
328  gtRxP => gtRxP,
329  gtRxN => gtRxN,
331  rxUsrClkIn => pgpRxClk,
333  rxUserRdyOut => open, -- rx clock locked and stable, but alignment not yet done
337  rxResetDoneOut => gtRxResetDone, -- Use for rxRecClkReset???
338  rxDataValidIn => dataValid, -- From 8b10b
339  rxSlideIn => '0', -- Slide is controlled internally
340  rxDataOut => gtRxData,
341  rxCharIsKOut => open, -- Not using gt rx 8b10b
342  rxDecErrOut => open, -- Not using gt rx 8b10b
343  rxDispErrOut => open, -- Not using gt rx 8b10b
344  rxPolarityIn => phyRxLanesOut(0).polarity,
345  rxBufStatusOut => open, -- Not using rx buff
346  txOutClkOut => gtTxOutClk, -- Maybe drive PGP TX with this and output it
347  txUsrClkIn => gtTxUsrClk,
348  txUsrClk2In => gtTxUsrClk,
349  txUserRdyOut => open, -- Not sure what to do with this
350  txMmcmResetOut => open, -- No Tx MMCM in Fixed Latency mode
351  txMmcmLockedIn => '1',
353  txResetDoneOut => gtTxResetDone,
354  txDataIn => phyTxLanesOut(0).data,
355  txCharIsKIn => phyTxLanesOut(0).dataK,
356  txBufStatusOut => open, -- Not using tx buff
357  loopbackIn => pgpRxIn.loopback,
361  drpGnt => drpGnt,
362  drpRdy => drpRdy,
363  drpEn => drpEn,
364  drpWe => drpWe,
365  drpAddr => drpAddr,
366  drpDi => drpDi,
367  drpDo => drpDo);
368 
369  U_AxiLiteToDrp : entity work.AxiLiteToDrp
370  generic map (
371  TPD_G => TPD_G,
373  COMMON_CLK_G => false,
374  EN_ARBITRATION_G => true,
375  TIMEOUT_G => 4096,
376  ADDR_WIDTH_G => 9,
377  DATA_WIDTH_G => 16)
378  port map (
379  -- AXI-Lite Port
380  axilClk => axilClk,
381  axilRst => axilRst,
386  -- DRP Interface
387  drpClk => stableClk,
388  drpRst => stableRst,
389  drpGnt => drpGnt,
390  drpRdy => drpRdy,
391  drpEn => drpEn,
392  drpWe => drpWe,
393  drpAddr => drpAddr,
394  drpDi => drpDi,
395  drpDo => drpDo);
396 
397  U_RstSync : entity work.RstSync
398  generic map (
399  TPD_G => TPD_G)
400  port map (
401  clk => stableClk,
402  asyncRst => axilRst,
403  syncRst => stableRst);
404 
405 end rtl;
406 
RX_OS_CFG_Gbit_vector := "0000010000000"
Definition: Gth7Core.vhd:46
in txPreCursorslv( 4 downto 0) :=( others => '0')
RX_BUF_EN_Gboolean := true
Definition: Gth7Core.vhd:64
STABLE_CLOCK_PERIOD_Greal := 4.0E-9
Definition: Gth7Core.vhd:35
out rxResetDoneOutsl
Definition: Gth7Core.vhd:164
in pgpRxClkRstsl := '0'
Definition: Pgp2bLane.vhd:71
in qPllLockInsl := '0'
Definition: Gth7Core.vhd:146
ADDR_WIDTH_Gpositive range 1 to 32:= 16
out rxMmcmResetOutsl
Definition: Gth7Core.vhd:160
NUM_BYTES_Gpositive := 2
RST_POLARITY_Gsl := '1'
array(natural range <> ) of AxiStreamSlaveType AxiStreamSlaveArray
slv( 1 downto 0) dispErr
Definition: Pgp2bPkg.vhd:170
in rxUsrClk2Insl
Definition: Gth7Core.vhd:158
TX_ENABLE_Gboolean := true
Definition: Pgp2bLane.vhd:38
out rxDecErrOutslv(( RX_EXT_DATA_WIDTH_G/ 8)- 1 downto 0)
Definition: Gth7Core.vhd:171
sl phyRxReady
Definition: Pgp2bPkg.vhd:70
out txOutClkOutsl
Definition: Gth7Core.vhd:180
TX_PLL_Gstring := "QPLL"
out syncRstsl
Definition: RstSync.vhd:36
sl phyTxReady
Definition: Pgp2bPkg.vhd:138
PAYLOAD_CNT_TOP_Ginteger := 7
in pgpTxMastersAxiStreamMasterArray( 3 downto 0) :=( others => AXI_STREAM_MASTER_INIT_C)
out drpAddrslv( ADDR_WIDTH_G- 1 downto 0)
in gtQPllRefClksl := '0'
out rxUserRdyOutsl
Definition: Gth7Core.vhd:159
TX_8B10B_EN_Gboolean := true
Definition: Gth7Core.vhd:54
in rxMmcmLockedInsl := '1'
Definition: Gth7Core.vhd:161
in axilReadMasterAxiLiteReadMasterType := AXI_LITE_READ_MASTER_INIT_C
_library_ ieeeieee
Definition: PgpSimModel.vhd:18
out pgpTxSlavesAxiStreamSlaveArray( 3 downto 0)
Definition: Pgp2bLane.vhd:58
AxiLiteWriteMasterType
Definition: AxiLitePkg.vhd:111
in drpGntsl := '1'
std_logic sl
Definition: StdRtlPkg.vhd:28
out qPllResetOutsl
Definition: Gth7Core.vhd:148
TPD_Gtime := 1 ns
TX_BUF_EN_Gboolean := true
Definition: Gth7Core.vhd:59
RX_CLK25_DIV_Ginteger := 5
Definition: Gth7Core.vhd:43
EN_ARBITRATION_Gboolean := false
TXOUT_DIV_Ginteger := 2
Definition: Gth7Core.vhd:42
DATA_WIDTH_Gpositive range 1 to 32:= 16
AxiStreamMasterType :=(tValid => '0',tData =>( others => '0'),tStrb =>( others => '1'),tKeep =>( others => '1'),tLast => '0',tDest =>( others => '0'),tId =>( others => '0'),tUser =>( others => '0')) AXI_STREAM_MASTER_INIT_C
out axilReadSlaveAxiLiteReadSlaveType
TX_PHASE_ALIGN_Gstring := "AUTO"
Definition: Gth7Core.vhd:62
out dataOutslv( NUM_BYTES_G* 8- 1 downto 0)
TX_CLK25_DIV_Ginteger := 5
in gtRxNsl
Definition: Gth7Core.vhd:154
in stableClkInsl
Definition: Gth7Core.vhd:141
CPLL_REFCLK_SEL_Gbit_vector := "001"
TX_ENABLE_Gboolean := true
in drpDoslv( DATA_WIDTH_G- 1 downto 0)
COMMON_CLK_Gboolean := false
out axilWriteSlaveAxiLiteWriteSlaveType
FIXED_ALIGN_COMMA_0_Gslv := "----------0101111100"
Definition: Gth7Core.vhd:85
CPLL_FBDIV_Ginteger := 4
Definition: Gth7Core.vhd:38
in pgpRxInPgp2bRxInType := PGP2B_RX_IN_INIT_C
Definition: Pgp2bLane.vhd:74
out axilReadSlaveAxiLiteReadSlaveType
slv( 15 downto 0) data
Definition: Pgp2bPkg.vhd:168
in gtRxPsl
Definition: Gth7Core.vhd:153
in drpDislv( 15 downto 0) := X"0000"
Definition: Gth7Core.vhd:207
VC_INTERLEAVE_Ginteger := 1
Definition: Pgp2bLane.vhd:35
in txCharIsKInslv(( TX_EXT_DATA_WIDTH_G/ 8)- 1 downto 0)
Definition: Gth7Core.vhd:191
out phyRxInitsl
Definition: Pgp2bLane.vhd:89
out txUserRdyOutsl
Definition: Gth7Core.vhd:183
out codeErrslv( NUM_BYTES_G- 1 downto 0)
PMA_RSV_Gbit_vector := x"00000080"
RX_EQUALIZER_Gstring := "LPM"
Definition: Gth7Core.vhd:135
out dispErrslv( NUM_BYTES_G- 1 downto 0)
TX_INT_DATA_WIDTH_Ginteger := 20
Definition: Gth7Core.vhd:53
RX_OS_CFG_Gbit_vector := "0000010000000"
RX_DLY_BYPASS_Gsl := '1'
Definition: Gth7Core.vhd:67
in qPllRefClkLostInsl := '0'
Definition: Gth7Core.vhd:147
out gtTxNsl
Definition: Gth7Core.vhd:152
RX_OUTCLK_SRC_Gstring := "PLLREFCLK"
Definition: Gth7Core.vhd:65
out rxBufStatusOutslv( 2 downto 0)
Definition: Gth7Core.vhd:174
RX_ENABLE_Gboolean := true
Definition: Pgp2bLane.vhd:40
SIM_GTRESET_SPEEDUP_Gstring := "FALSE"
Definition: Gth7Core.vhd:32
out txBufStatusOutslv( 1 downto 0)
Definition: Gth7Core.vhd:192
in asyncRstsl
Definition: RstSync.vhd:35
in axilWriteMasterAxiLiteWriteMasterType := AXI_LITE_WRITE_MASTER_INIT_C
in txPostCursorslv( 4 downto 0) :=( others => '0')
in txUserResetInsl
Definition: Gth7Core.vhd:187
TX_DLY_BYPASS_Gsl := '1'
Definition: Gth7Core.vhd:61
SIM_GTRESET_SPEEDUP_Gstring := "FALSE"
RX_8B10B_EN_Gboolean := true
Definition: Gth7Core.vhd:57
array(natural range <> ) of Pgp2bTxPhyLaneOutType Pgp2bTxPhyLaneOutArray
Definition: Pgp2bPkg.vhd:192
RXDFEXYDEN_Gsl := '1'
Definition: Gth7Core.vhd:139
in clksl
Definition: RstSync.vhd:34
out pgpRxOutPgp2bRxOutType
out drpGntsl
Definition: Gth7Core.vhd:202
out pgpRxOutPgp2bRxOutType
Definition: Pgp2bLane.vhd:75
in rxSlideInsl := '0'
Definition: Gth7Core.vhd:167
in rxUsrClkInsl
Definition: Gth7Core.vhd:157
out axilWriteSlaveAxiLiteWriteSlaveType
SIM_VERSION_Gstring := "2.0"
Definition: Gth7Core.vhd:33
TPD_Gtime := 1 ns
Definition: Pgp2bLane.vhd:33
in pgpTxMastersAxiStreamMasterArray( 3 downto 0) :=( others => AXI_STREAM_MASTER_INIT_C)
Definition: Pgp2bLane.vhd:57
in txPostCursorslv( 4 downto 0) :=( others => '0')
Definition: Gth7Core.vhd:199
CPLL_REFCLK_SEL_Gbit_vector := "001"
Definition: Gth7Core.vhd:37
in phyRxReadysl := '0'
Definition: Pgp2bLane.vhd:87
NUM_VC_EN_Ginteger range 1 to 4:= 4
Definition: Pgp2bLane.vhd:37
SIMULATION_Gboolean := false
Definition: Gth7Core.vhd:34
TX_EXT_DATA_WIDTH_Ginteger := 16
Definition: Gth7Core.vhd:52
in txMmcmLockedInsl := '1'
Definition: Gth7Core.vhd:185
TPD_Gtime := 1 ns
Definition: Gth7Core.vhd:30
RX_EXT_DATA_WIDTH_Ginteger := 16
Definition: Gth7Core.vhd:55
RXOUT_DIV_Ginteger := 2
Definition: Gth7Core.vhd:41
in drpEnsl := '0'
Definition: Gth7Core.vhd:204
Pgp2bRxInType
Definition: Pgp2bPkg.vhd:55
out rxCharIsKOutslv(( RX_EXT_DATA_WIDTH_G/ 8)- 1 downto 0)
Definition: Gth7Core.vhd:170
slv( 1 downto 0) := "11" AXI_RESP_DECERR_C
Definition: AxiLitePkg.vhd:49
slv( 1 downto 0) dataK
Definition: Pgp2bPkg.vhd:169
PAYLOAD_CNT_TOP_Ginteger := 7
Definition: Pgp2bLane.vhd:36
in rxUserResetInsl
Definition: Gth7Core.vhd:163
in axilReadMasterAxiLiteReadMasterType
FIXED_ALIGN_COMMA_2_Gslv := "XXXXXXXXXXXXXXXXXXXX"
Definition: Gth7Core.vhd:87
sl polarity
Definition: Pgp2bPkg.vhd:160
out rxDataOutslv( RX_EXT_DATA_WIDTH_G- 1 downto 0)
Definition: Gth7Core.vhd:169
in txDiffCtrlslv( 3 downto 0) := "1000"
Definition: Gth7Core.vhd:200
CPLL_REFCLK_DIV_Ginteger := 1
Definition: Gth7Core.vhd:40
out phyRxLanesOutPgp2bRxPhyLaneOutArray( 0 to LANE_CNT_G- 1)
Definition: Pgp2bLane.vhd:85
STABLE_CLOCK_PERIOD_Greal := 4.0E-9
in txDiffCtrlslv( 3 downto 0) := "1000"
in qPllRefClkInsl := '0'
Definition: Gth7Core.vhd:144
slv( 1 downto 0) decErr
Definition: Pgp2bPkg.vhd:171
in pgpTxClkRstsl := '0'
Definition: Pgp2bLane.vhd:50
AxiLiteReadMasterType
Definition: AxiLitePkg.vhd:59
in pgpRxCtrlAxiStreamCtrlArray( 3 downto 0) :=( others => AXI_STREAM_CTRL_UNUSED_C)
Definition: Pgp2bLane.vhd:82
out rxDispErrOutslv(( RX_EXT_DATA_WIDTH_G/ 8)- 1 downto 0)
Definition: Gth7Core.vhd:172
in cPllRefClkInsl := '0'
Definition: Gth7Core.vhd:142
out pgpTxSlavesAxiStreamSlaveArray( 3 downto 0)
in gtQPllRefClkLostsl := '0'
in drpAddrslv( 8 downto 0) := "000000000"
Definition: Gth7Core.vhd:206
TPD_Gtime := 1 ns
Definition: RstSync.vhd:27
TX_PLL_Gstring := "CPLL"
Definition: Gth7Core.vhd:49
array(natural range <> ) of AxiStreamCtrlType AxiStreamCtrlArray
in rxPolarityInsl := '0'
Definition: Gth7Core.vhd:173
out drpRdysl
Definition: Gth7Core.vhd:203
in qPllClkInsl := '0'
Definition: Gth7Core.vhd:145
TIMEOUT_Gpositive := 4096
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_DECERR_C
RXCDR_CFG_Gbit_vector := x"0002007FE1000C2200018"
Definition: Gth7Core.vhd:47
in pgpRxClksl := '0'
Definition: Pgp2bLane.vhd:70
array(natural range <> ) of Pgp2bRxPhyLaneOutType Pgp2bRxPhyLaneOutArray
Definition: Pgp2bPkg.vhd:163
in txUsrClk2Insl
Definition: Gth7Core.vhd:182
out pgpTxOutPgp2bTxOutType
Definition: Pgp2bLane.vhd:54
in rxDataValidInsl := '1'
Definition: Gth7Core.vhd:166
array(natural range <> ) of AxiStreamMasterType AxiStreamMasterArray
CPLL_FBDIV_Ginteger := 4
in phyRxLanesInPgp2bRxPhyLaneInArray( 0 to LANE_CNT_G- 1) :=( others => PGP2B_RX_PHY_LANE_IN_INIT_C)
Definition: Pgp2bLane.vhd:86
RX_ENABLE_Gboolean := true
out phyTxLanesOutPgp2bTxPhyLaneOutArray( 0 to LANE_CNT_G- 1)
Definition: Pgp2bLane.vhd:61
RX_PLL_Gstring := "CPLL"
in loopbackInslv( 2 downto 0) := "000"
Definition: Gth7Core.vhd:197
in dataInslv( NUM_BYTES_G* 10- 1 downto 0)
in pgpTxClksl := '0'
Definition: Pgp2bLane.vhd:49
LANE_CNT_Ginteger range 1 to 2:= 1
Definition: Pgp2bLane.vhd:34
out dataKOutslv( NUM_BYTES_G- 1 downto 0)
RXSLIDE_MODE_Gstring := "PCS"
Definition: Gth7Core.vhd:82
in pgpRxInPgp2bRxInType
AxiLiteReadMasterType :=(araddr =>( others => '0'),arprot =>( others => '0'),arvalid => '0',rready => '1') AXI_LITE_READ_MASTER_INIT_C
Definition: AxiLitePkg.vhd:69
CPLL_FBDIV_45_Ginteger := 5
out cPllLockOutsl
Definition: Gth7Core.vhd:143
AxiLiteReadSlaveType
Definition: AxiLitePkg.vhd:85
RX_DDIEN_Gsl := '0'
Definition: Gth7Core.vhd:68
VC_INTERLEAVE_Ginteger := 0
RXCDR_CFG_Gbit_vector := x"0002007FE1000C2200018"
in rstsl :=not RST_POLARITY_G
in txDataInslv( TX_EXT_DATA_WIDTH_G- 1 downto 0)
Definition: Gth7Core.vhd:190
out gtTxPsl
Definition: Gth7Core.vhd:151
in axilWriteMasterAxiLiteWriteMasterType
in pgpTxInPgp2bTxInType := PGP2B_TX_IN_INIT_C
Definition: Pgp2bLane.vhd:53
CPLL_REFCLK_DIV_Ginteger := 1
AxiLiteWriteMasterType :=(awaddr =>( others => '0'),awprot =>( others => '0'),awvalid => '0',wdata =>( others => '0'),wstrb =>( others => '1'),wvalid => '0',bready => '1') AXI_LITE_WRITE_MASTER_INIT_C
Definition: AxiLitePkg.vhd:125
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_DECERR_C
TPD_Gtime := 1 ns
out pgpRxMastersAxiStreamMasterArray( 3 downto 0)
Definition: Pgp2bLane.vhd:78
out drpDoslv( 15 downto 0)
Definition: Gth7Core.vhd:208
out rxOutClkOutsl
Definition: Gth7Core.vhd:156
RX_USRCLK_SRC_Gstring := "RXOUTCLK"
Definition: Gth7Core.vhd:66
RX_PLL_Gstring := "CPLL"
Definition: Gth7Core.vhd:50
out txResetDoneOutsl
Definition: Gth7Core.vhd:188
in txPreCursorslv( 4 downto 0) :=( others => '0')
Definition: Gth7Core.vhd:198
SIMULATION_Gboolean := false
TX_CLK25_DIV_Ginteger := 5
Definition: Gth7Core.vhd:44
Pgp2bTxOutType
Definition: Pgp2bPkg.vhd:135
NUM_VC_EN_Ginteger range 1 to 4:= 4
in drpWesl := '0'
Definition: Gth7Core.vhd:205
in txUsrClkInsl
Definition: Gth7Core.vhd:181
RX_CLK25_DIV_Ginteger := 5
CPLL_FBDIV_45_Ginteger := 5
Definition: Gth7Core.vhd:39
SIM_VERSION_Gstring := "2.0"
out pgpTxOutPgp2bTxOutType
in pgpRxCtrlAxiStreamCtrlArray( 3 downto 0)
out pgpRxMasterMuxedAxiStreamMasterType
RX_INT_DATA_WIDTH_Ginteger := 20
Definition: Gth7Core.vhd:56
in pgpRxMmcmLockedsl := '1'
in gtRxRefClkBufgsl := '0'
Definition: Gth7Core.vhd:149
in phyTxReadysl := '0'
Definition: Pgp2bLane.vhd:62
in gtCPllRefClksl := '0'
array(natural range <> ) of Pgp2bRxPhyLaneInType Pgp2bRxPhyLaneInArray
Definition: Pgp2bPkg.vhd:174
out txMmcmResetOutsl
Definition: Gth7Core.vhd:184
Pgp2bRxOutType
Definition: Pgp2bPkg.vhd:69
out pgpRxMastersAxiStreamMasterArray( 3 downto 0)
FIXED_ALIGN_COMMA_3_Gslv := "XXXXXXXXXXXXXXXXXXXX"
Definition: Gth7Core.vhd:88
in pgpTxInPgp2bTxInType
TX_OUTCLK_SRC_Gstring := "PLLREFCLK"
Definition: Gth7Core.vhd:60
out drpDislv( DATA_WIDTH_G- 1 downto 0)
RX_ALIGN_MODE_Gstring := "GT"
Definition: Gth7Core.vhd:71
std_logic_vector slv
Definition: StdRtlPkg.vhd:29
out pgpRxMasterMuxedAxiStreamMasterType
Definition: Pgp2bLane.vhd:79
FIXED_ALIGN_COMMA_1_Gslv := "----------1010000011"
Definition: Gth7Core.vhd:86