SURF  1.0
Pgp2bGtx7MultiLane.vhd
Go to the documentation of this file.
1 -------------------------------------------------------------------------------
2 -- File : Pgp2bGtx7MultiLane.vhd
3 -- Company : SLAC National Accelerator Laboratory
4 -- Created : 2013-06-29
5 -- Last update: 2016-08-24
6 -------------------------------------------------------------------------------
7 -- Description: Gtx7 Variable Latency, multi-lane 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 use ieee.numeric_std.all;
21 
22 use work.StdRtlPkg.all;
23 use work.AxiStreamPkg.all;
24 use work.Pgp2bPkg.all;
25 use work.AxiLitePkg.all;
26 
27 library UNISIM;
28 use UNISIM.VCOMPONENTS.all;
29 
30 --! @see entity
31  --! @ingroup protocols_pgp_pgp2b_gtx7
33  generic (
34  TPD_G : time := 1 ns;
35  ----------------------------------------------------------------------------------------------
36  -- GT Settings
37  ----------------------------------------------------------------------------------------------
38  -- Sim Generics
39  SIM_GTRESET_SPEEDUP_G : string := "FALSE";
40  SIM_VERSION_G : string := "4.0";
41  STABLE_CLOCK_PERIOD_G : real := 6.4E-9; --units of seconds
42  -- CPLL Settings
43  CPLL_REFCLK_SEL_G : bit_vector := "001";
44  CPLL_FBDIV_G : integer := 4;
45  CPLL_FBDIV_45_G : integer := 5;
46  CPLL_REFCLK_DIV_G : integer := 1;
47  RXOUT_DIV_G : integer := 2;
48  TXOUT_DIV_G : integer := 2;
49  RX_CLK25_DIV_G : integer := 7;
50  TX_CLK25_DIV_G : integer := 7;
51 
52  PMA_RSV_G : bit_vector := x"00018480";
53  RX_OS_CFG_G : bit_vector := "0000010000000"; -- Set by wizard
54  RXCDR_CFG_G : bit_vector := x"03000023ff40200020"; -- Set by wizard
55  RXDFEXYDEN_G : sl := '0'; -- Set by wizard
56 
57  -- RX Equalizer Attributes
58  RX_DFE_KL_CFG2_G : bit_vector := x"3010D90C"; -- Set by wizard
59  -- Configure PLL sources
60  TX_PLL_G : string := "QPLL";
61  RX_PLL_G : string := "CPLL";
62 
63  -- Configure Buffer usage
64  TX_BUF_EN_G : boolean := true;
65  TX_OUTCLK_SRC_G : string := "OUTCLKPMA";
66  TX_DLY_BYPASS_G : sl := '1';
67  TX_PHASE_ALIGN_G : string := "NONE";
68  TX_BUF_ADDR_MODE_G : string := "FULL";
69 
70  -- Configure Number of Lanes
71  LANE_CNT_G : integer range 1 to 2 := 2;
72  ----------------------------------------------------------------------------------------------
73  -- PGP Settings
74  ----------------------------------------------------------------------------------------------
75  VC_INTERLEAVE_G : integer := 0; -- No interleave Frames
76  PAYLOAD_CNT_TOP_G : integer := 7; -- Top bit for payload counter
77  NUM_VC_EN_G : integer range 1 to 4 := 4;
79  TX_ENABLE_G : boolean := true; -- Enable TX direction
80  RX_ENABLE_G : boolean := true); -- Enable RX direction
81  port (
82  -- GT Clocking
83  stableClk : in sl; -- GT needs a stable clock to "boot up"
84  gtCPllRefClk : in sl; -- Drives CPLL if used
85  gtCPllLock : out sl;
86  gtQPllRefClk : in sl; -- Signals from QPLL if used
87  gtQPllClk : in sl;
88  gtQPllLock : in sl;
90  gtQPllReset : out sl;
91  -- Gt Serial IO
92  gtTxP : out slv((LANE_CNT_G-1) downto 0); -- GT Serial Transmit Positive
93  gtTxN : out slv((LANE_CNT_G-1) downto 0); -- GT Serial Transmit Negative
94  gtRxP : in slv((LANE_CNT_G-1) downto 0); -- GT Serial Receive Positive
95  gtRxN : in slv((LANE_CNT_G-1) downto 0); -- GT Serial Receive Negative
96  -- Tx Clocking
97  pgpTxReset : in sl;
98  pgpTxRecClk : out sl; -- recovered clock
99  pgpTxClk : in sl;
102  -- Rx clocking
104  pgpRxRecClk : out sl; -- recovered clock
105  pgpRxClk : in sl;
108  -- Non VC Rx Signals
111  -- Non VC Tx Signals
114  -- Frame Transmit Interface - 1 Lane, Array of 4 VCs
116  pgpTxSlaves : out AxiStreamSlaveArray(3 downto 0);
117  -- Frame Receive Interface - 1 Lane, Array of 4 VCs
120  pgpRxCtrl : in AxiStreamCtrlArray(3 downto 0);
121  -- Debug Interface
122  txPreCursor : in slv(4 downto 0) := (others => '0');
123  txPostCursor : in slv(4 downto 0) := (others => '0');
124  txDiffCtrl : in slv(3 downto 0) := "1000";
125  -- AXI-Lite Interface
126  axilClk : in sl := '0';
127  axilRst : in sl := '0';
132 end Pgp2bGtx7MultiLane;
133 
134 -- Define architecture
135 architecture rtl of Pgp2bGtx7MultiLane is
136  --------------------------------------------------------------------------------------------------
137  -- Constants
138  --------------------------------------------------------------------------------------------------
139  signal gtQPllResets : slv((LANE_CNT_G-1) downto 0);
140  signal cPllLock : slv((LANE_CNT_G-1) downto 0);
141 
142  -- PgpRx Signals
143  signal pgpRxMmcmResets : slv((LANE_CNT_G-1) downto 0);
144  signal pgpRxRecClock : slv((LANE_CNT_G-1) downto 0);
145  signal gtRxResetDone : slv((LANE_CNT_G-1) downto 0);
146  signal gtRxUserReset : sl;
147  signal gtRxUserResetIn : sl;
148  signal phyRxLanesIn : Pgp2bRxPhyLaneInArray((LANE_CNT_G-1) downto 0);
149  signal phyRxLanesOut : Pgp2bRxPhyLaneOutArray((LANE_CNT_G-1) downto 0);
150  signal phyRxReady : sl;
151  signal phyRxInit : sl;
152 
153  -- Rx Channel Bonding
154  signal rxChBondLevel : slv(2 downto 0);
155  signal rxChBondIn : Slv5Array(LANE_CNT_G-1 downto 0);
156  signal rxChBondOut : Slv5Array(LANE_CNT_G-1 downto 0);
157 
158  -- PgpTx Signals
159  signal pgpTxMmcmResets : slv((LANE_CNT_G-1) downto 0);
160  signal pgpTxRecClock : slv((LANE_CNT_G-1) downto 0);
161  signal gtTxResetDone : slv((LANE_CNT_G-1) downto 0);
162  signal gtTxUserResetIn : sl;
163  signal phyTxLanesOut : Pgp2bTxPhyLaneOutArray((LANE_CNT_G-1) downto 0);
164  signal phyTxReady : sl;
165 
166  signal drpRdy : slv(LANE_CNT_G-1 downto 0);
167  signal drpEn : slv(LANE_CNT_G-1 downto 0);
168  signal drpWe : slv(LANE_CNT_G-1 downto 0);
169  signal drpAddr : Slv9Array(LANE_CNT_G-1 downto 0);
170  signal drpDi : Slv16Array(LANE_CNT_G-1 downto 0);
171  signal drpDo : Slv16Array(LANE_CNT_G-1 downto 0);
172 
173 -- attribute KEEP_HIERARCHY : string;
174 -- attribute KEEP_HIERARCHY of
175 -- U_Pgp2bLane,
176 -- Gtx7Core_Inst : label is "TRUE";
177 
178 begin
179 
180  gtQPllReset <= gtQPllResets(0);
181  pgpTxMmcmReset <= pgpTxMmcmResets(0);
182  pgpRxMmcmReset <= pgpRxMmcmResets(0);
183  pgpRxRecClk <= pgpRxRecClock(0);
184  pgpTxRecClk <= pgpTxRecClock(0);
185  gtCPllLock <= cPllLock(0);
186 
187  phyTxReady <= uAnd(gtTxResetDone);
188  phyRxReady <= uAnd(gtRxResetDone);
189 
190  gtRxUserResetIn <= gtRxUserReset or pgpRxReset or pgpRxIn.resetRx;
191  gtTxUserResetIn <= pgpTxReset;
192 
193  U_Pgp2bLane : entity work.Pgp2bLane
194  generic map (
195  TPD_G => TPD_G,
196  LANE_CNT_G => 1,
202  port map (
203  pgpTxClk => pgpTxClk,
205  pgpTxIn => pgpTxIn,
206  pgpTxOut => pgpTxOut,
209  phyTxLanesOut => phyTxLanesOut,
211  pgpRxClk => pgpRxClk,
213  pgpRxIn => pgpRxIn,
214  pgpRxOut => pgpRxOut,
217  pgpRxCtrl => pgpRxCtrl,
218  phyRxLanesOut => phyRxLanesOut,
219  phyRxLanesIn => phyRxLanesIn,
221  phyRxInit => gtRxUserReset
222  );
223 
224  --------------------------------------------------------------------------------------------------
225  -- Generate the GTX channels
226  --------------------------------------------------------------------------------------------------
227  GTX7_CORE_GEN : for i in (LANE_CNT_G-1) downto 0 generate
228  -- Channel Bonding
229 -- gtx(i).rxChBondLevel <= conv_std_logic_vector((LANE_CNT_G-1-i), 3);
230  Bond_Master : if (i = 0) generate
231  rxChBondIn(i) <= "00000";
232  end generate Bond_Master;
233  Bond_Slaves : if (i /= 0) generate
234  rxChBondIn(i) <= rxChBondOut(i-1);
235  end generate Bond_Slaves;
236 
237  Gtx7Core_Inst : entity work.Gtx7Core
238  generic map (
239  TPD_G => TPD_G,
251  PMA_RSV_G => PMA_RSV_G,
252  TX_PLL_G => TX_PLL_G,
253  RX_PLL_G => RX_PLL_G,
254  TX_EXT_DATA_WIDTH_G => 16,
255  TX_INT_DATA_WIDTH_G => 20,
256  TX_8B10B_EN_G => true,
257  RX_EXT_DATA_WIDTH_G => 16,
258  RX_INT_DATA_WIDTH_G => 20,
259  RX_8B10B_EN_G => true,
265  RX_BUF_EN_G => true,
266  RX_OUTCLK_SRC_G => "OUTCLKPMA",
267  RX_USRCLK_SRC_G => "RXOUTCLK", -- Not 100% sure, doesn't really matter
268  RX_DLY_BYPASS_G => '1',
269  RX_DDIEN_G => '0',
270  RX_BUF_ADDR_MODE_G => "FULL",
271  RX_ALIGN_MODE_G => "GT", -- Default
272  ALIGN_COMMA_DOUBLE_G => "FALSE", -- Default
273  ALIGN_COMMA_ENABLE_G => "1111111111", -- Default
274  ALIGN_COMMA_WORD_G => 2, -- Default
275  ALIGN_MCOMMA_DET_G => "TRUE",
276  ALIGN_MCOMMA_VALUE_G => "1010000011", -- Default
277  ALIGN_MCOMMA_EN_G => '1',
278  ALIGN_PCOMMA_DET_G => "TRUE",
279  ALIGN_PCOMMA_VALUE_G => "0101111100", -- Default
280  ALIGN_PCOMMA_EN_G => '1',
281  SHOW_REALIGN_COMMA_G => "FALSE",
282  RXSLIDE_MODE_G => "AUTO",
283  RX_DISPERR_SEQ_MATCH_G => "TRUE", -- Default
284  DEC_MCOMMA_DETECT_G => "TRUE", -- Default
285  DEC_PCOMMA_DETECT_G => "TRUE", -- Default
286  DEC_VALID_COMMA_ONLY_G => "FALSE", -- Default
287  CBCC_DATA_SOURCE_SEL_G => "DECODED", -- Default
288  CLK_COR_SEQ_2_USE_G => "FALSE", -- Default
289  CLK_COR_KEEP_IDLE_G => "FALSE", -- Default
290  CLK_COR_MAX_LAT_G => 21,
291  CLK_COR_MIN_LAT_G => 18,
292  CLK_COR_PRECEDENCE_G => "TRUE", -- Default
293  CLK_COR_REPEAT_WAIT_G => 0, -- Default
294  CLK_COR_SEQ_LEN_G => 4,
295  CLK_COR_SEQ_1_ENABLE_G => "1111", -- Default
296  CLK_COR_SEQ_1_1_G => "0110111100",
297  CLK_COR_SEQ_1_2_G => "0100011100",
298  CLK_COR_SEQ_1_3_G => "0100011100",
299  CLK_COR_SEQ_1_4_G => "0100011100",
300  CLK_CORRECT_USE_G => "TRUE",
301  CLK_COR_SEQ_2_ENABLE_G => "0000", -- Default
302  CLK_COR_SEQ_2_1_G => "0000000000", -- Default
303  CLK_COR_SEQ_2_2_G => "0000000000", -- Default
304  CLK_COR_SEQ_2_3_G => "0000000000", -- Default
305  CLK_COR_SEQ_2_4_G => "0000000000", -- Default
306  RX_CHAN_BOND_EN_G => true,
307  RX_CHAN_BOND_MASTER_G => (i = 0),
308  CHAN_BOND_KEEP_ALIGN_G => "FALSE", -- Default
309  CHAN_BOND_MAX_SKEW_G => 10,
310  CHAN_BOND_SEQ_LEN_G => 1, -- Default
311  CHAN_BOND_SEQ_1_1_G => "0110111100",
312  CHAN_BOND_SEQ_1_2_G => "0111011100",
313  CHAN_BOND_SEQ_1_3_G => "0111011100",
314  CHAN_BOND_SEQ_1_4_G => "0111011100",
315  CHAN_BOND_SEQ_1_ENABLE_G => "1111", -- Default
316  CHAN_BOND_SEQ_2_1_G => "0000000000", -- Default
317  CHAN_BOND_SEQ_2_2_G => "0000000000", -- Default
318  CHAN_BOND_SEQ_2_3_G => "0000000000", -- Default
319  CHAN_BOND_SEQ_2_4_G => "0000000000", -- Default
320  CHAN_BOND_SEQ_2_ENABLE_G => "0000", -- Default
321  CHAN_BOND_SEQ_2_USE_G => "FALSE", -- Default
322  FTS_DESKEW_SEQ_ENABLE_G => "1111", -- Default
323  FTS_LANE_DESKEW_CFG_G => "1111", -- Default
324  FTS_LANE_DESKEW_EN_G => "FALSE", -- Default
327  RX_EQUALIZER_G => "DFE", -- Xilinx recommends this for 8b10b
330  port map (
333  cPllLockOut => cPllLock(i),
335  qPllClkIn => gtQPllClk,
338  qPllResetOut => gtQPllResets(i),
339  gtTxP => gtTxP(i),
340  gtTxN => gtTxN(i),
341  gtRxP => gtRxP(i),
342  gtRxN => gtRxN(i),
343  rxOutClkOut => pgpRxRecClock(i),
344  rxUsrClkIn => pgpRxClk,
346  rxUserRdyOut => open,
347  rxMmcmResetOut => pgpRxMmcmResets(i),
349  rxUserResetIn => gtRxUserResetIn,
350  rxResetDoneOut => gtRxResetDone(i),
351  rxDataValidIn => '1',
352  rxSlideIn => '0',
353  rxDataOut => phyRxLanesIn(i).data,
354  rxCharIsKOut => phyRxLanesIn(i).dataK,
355  rxDecErrOut => phyRxLanesIn(i).decErr,
356  rxDispErrOut => phyRxLanesIn(i).dispErr,
357  rxPolarityIn => phyRxLanesOut(i).polarity,
358  rxBufStatusOut => open,
359  rxChBondLevelIn => slv(to_unsigned((LANE_CNT_G-1-i), 3)),
360  rxChBondIn => rxChBondIn(i),
361  rxChBondOut => rxChBondOut(i),
362  txOutClkOut => pgpTxRecClock(i),
363  txUsrClkIn => pgpTxClk,
365  txUserRdyOut => open,
366  txMmcmResetOut => pgpTxMmcmResets(i),
368  txUserResetIn => gtTxUserResetIn,
369  txResetDoneOut => gtTxResetDone(i),
370  txDataIn => phyTxLanesOut(i).data,
371  txCharIsKIn => phyTxLanesOut(i).dataK,
372  txBufStatusOut => open,
373  loopbackIn => pgpRxIn.loopback,
377  drpClk => axilClk,
378  drpRdy => drpRdy(i),
379  drpEn => drpEn(i),
380  drpWe => drpWe(i),
381  drpAddr => drpAddr(i),
382  drpDi => drpDi(i),
383  drpDo => drpDo(i));
384 
385  U_AxiLiteToDrp : entity work.AxiLiteToDrp
386  generic map (
387  TPD_G => TPD_G,
389  COMMON_CLK_G => true,
390  EN_ARBITRATION_G => false,
391  TIMEOUT_G => 4096,
392  ADDR_WIDTH_G => 9,
393  DATA_WIDTH_G => 16)
394  port map (
395  -- AXI-Lite Port
396  axilClk => axilClk,
397  axilRst => axilRst,
402  -- DRP Interface
403  drpClk => axilClk,
404  drpRst => axilRst,
405  drpRdy => drpRdy(i),
406  drpEn => drpEn(i),
407  drpWe => drpWe(i),
408  drpAddr => drpAddr(i),
409  drpDi => drpDi(i),
410  drpDo => drpDo(i));
411 
412  end generate GTX7_CORE_GEN;
413 end rtl;
ALIGN_MCOMMA_VALUE_Gbit_vector := "1010000011"
Definition: Gtx7Core.vhd:92
CLK_COR_REPEAT_WAIT_Ginteger := 0
Definition: Gtx7Core.vhd:120
TX_OUTCLK_SRC_Gstring := "PLLREFCLK"
Definition: Gtx7Core.vhd:74
NUM_VC_EN_Ginteger range 1 to 4:= 4
in pgpRxClkRstsl := '0'
Definition: Pgp2bLane.vhd:71
TX_PLL_Gstring := "CPLL"
Definition: Gtx7Core.vhd:60
ADDR_WIDTH_Gpositive range 1 to 32:= 16
array(natural range <> ) of AxiStreamSlaveType AxiStreamSlaveArray
slv( 1 downto 0) dispErr
Definition: Pgp2bPkg.vhd:170
in drpEnsl := '0'
Definition: Gtx7Core.vhd:240
TX_ENABLE_Gboolean := true
Definition: Pgp2bLane.vhd:38
out pgpRxMastersAxiStreamMasterArray( 3 downto 0)
in gtRxNslv(( LANE_CNT_G- 1) downto 0)
TX_PHASE_ALIGN_Gstring := "AUTO"
Definition: Gtx7Core.vhd:76
in txCharIsKInslv(( TX_EXT_DATA_WIDTH_G/ 8)- 1 downto 0)
Definition: Gtx7Core.vhd:227
CHAN_BOND_SEQ_1_4_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:143
out txUserRdyOutsl
Definition: Gtx7Core.vhd:217
RX_DFE_KL_CFG2_Gbit_vector := x"3010D90C"
sl phyRxReady
Definition: Pgp2bPkg.vhd:70
FTS_DESKEW_SEQ_ENABLE_Gbit_vector := "1111"
Definition: Gtx7Core.vhd:151
RX_BUF_EN_Gboolean := true
Definition: Gtx7Core.vhd:79
TX_CLK25_DIV_Ginteger := 5
Definition: Gtx7Core.vhd:50
STABLE_CLOCK_PERIOD_Greal := 4.0E-9
Definition: Gtx7Core.vhd:40
out rxResetDoneOutsl
Definition: Gtx7Core.vhd:194
in drpWesl := '0'
Definition: Gtx7Core.vhd:241
in txPreCursorslv( 4 downto 0) :=( others => '0')
in rxUserResetInsl
Definition: Gtx7Core.vhd:193
out gtTxNsl
Definition: Gtx7Core.vhd:180
CPLL_FBDIV_45_Ginteger := 5
Definition: Gtx7Core.vhd:45
sl phyTxReady
Definition: Pgp2bPkg.vhd:138
array(natural range <> ) of AxiLiteWriteSlaveType AxiLiteWriteSlaveArray
Definition: AxiLitePkg.vhd:164
TX_ENABLE_Gboolean := true
ALIGN_MCOMMA_EN_Gsl := '0'
Definition: Gtx7Core.vhd:93
out drpAddrslv( ADDR_WIDTH_G- 1 downto 0)
RX_INT_DATA_WIDTH_Ginteger := 20
Definition: Gtx7Core.vhd:69
out pgpTxSlavesAxiStreamSlaveArray( 3 downto 0)
Definition: Pgp2bLane.vhd:58
std_logic sl
Definition: StdRtlPkg.vhd:28
in qPllLockInsl := '0'
Definition: Gtx7Core.vhd:172
in pgpTxMastersAxiStreamMasterArray( 3 downto 0) :=( others => AXI_STREAM_MASTER_INIT_C)
CHAN_BOND_SEQ_2_3_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:147
EN_ARBITRATION_Gboolean := false
in txPostCursorslv( 4 downto 0) :=( others => '0')
Definition: Gtx7Core.vhd:235
CPLL_REFCLK_SEL_Gbit_vector := "001"
Definition: Gtx7Core.vhd:43
DATA_WIDTH_Gpositive range 1 to 32:= 16
SHOW_REALIGN_COMMA_Gstring := "FALSE"
Definition: Gtx7Core.vhd:97
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
CBCC_DATA_SOURCE_SEL_Gstring := "DECODED"
Definition: Gtx7Core.vhd:114
out axilReadSlaveAxiLiteReadSlaveType
out rxBufStatusOutslv( 2 downto 0)
Definition: Gtx7Core.vhd:206
RX_CHAN_BOND_EN_Gboolean := false
Definition: Gtx7Core.vhd:135
ALIGN_PCOMMA_EN_Gsl := '0'
Definition: Gtx7Core.vhd:96
SIM_GTRESET_SPEEDUP_Gstring := "FALSE"
Definition: Gtx7Core.vhd:35
DEC_VALID_COMMA_ONLY_Gstring := "FALSE"
Definition: Gtx7Core.vhd:111
RX_DISPERR_SEQ_MATCH_Gstring := "TRUE"
Definition: Gtx7Core.vhd:108
TPD_Gtime := 1 ns
Definition: Gtx7Core.vhd:32
RX_EQUALIZER_Gstring := "DFE"
Definition: Gtx7Core.vhd:156
DEC_PCOMMA_DETECT_Gstring := "TRUE"
Definition: Gtx7Core.vhd:110
in txUserResetInsl
Definition: Gtx7Core.vhd:222
in txPostCursorslv( 4 downto 0) :=( others => '0')
CPLL_REFCLK_DIV_Ginteger := 1
ALIGN_COMMA_DOUBLE_Gstring := "FALSE"
Definition: Gtx7Core.vhd:88
in drpDoslv( DATA_WIDTH_G- 1 downto 0)
COMMON_CLK_Gboolean := false
CLK_COR_SEQ_2_USE_Gstring := "FALSE"
Definition: Gtx7Core.vhd:115
CHAN_BOND_SEQ_1_3_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:142
array(natural range <> ) of AxiLiteReadMasterType AxiLiteReadMasterArray
Definition: AxiLitePkg.vhd:77
in pgpRxInPgp2bRxInType := PGP2B_RX_IN_INIT_C
Definition: Pgp2bLane.vhd:74
TX_INT_DATA_WIDTH_Ginteger := 20
Definition: Gtx7Core.vhd:65
slv( 15 downto 0) data
Definition: Pgp2bPkg.vhd:168
RX_DLY_BYPASS_Gsl := '1'
Definition: Gtx7Core.vhd:82
in qPllRefClkLostInsl := '0'
Definition: Gtx7Core.vhd:173
in txDiffCtrlslv( 3 downto 0) := "1000"
VC_INTERLEAVE_Ginteger := 1
Definition: Pgp2bLane.vhd:35
CLK_COR_SEQ_2_1_Gbit_vector := "0100000000"
Definition: Gtx7Core.vhd:129
out phyRxInitsl
Definition: Pgp2bLane.vhd:89
out rxDataOutslv( RX_EXT_DATA_WIDTH_G- 1 downto 0)
Definition: Gtx7Core.vhd:201
CPLL_FBDIV_Ginteger := 4
Definition: Gtx7Core.vhd:44
TX_BUF_EN_Gboolean := true
Definition: Gtx7Core.vhd:73
PMA_RSV_Gbit_vector := X"00018480"
Definition: Gtx7Core.vhd:53
in rxChBondInslv( 4 downto 0) := "00000"
Definition: Gtx7Core.vhd:210
RXOUT_DIV_Ginteger := 2
Definition: Gtx7Core.vhd:47
out cPllLockOutsl
Definition: Gtx7Core.vhd:168
SIM_GTRESET_SPEEDUP_Gstring := "FALSE"
RX_OS_CFG_Gbit_vector := "0000010000000"
RX_ENABLE_Gboolean := true
Definition: Pgp2bLane.vhd:40
RXCDR_CFG_Gbit_vector := x"03000023ff40200020"
LANE_CNT_Ginteger range 1 to 2:= 2
CLK_CORRECT_USE_Gstring := "FALSE"
Definition: Gtx7Core.vhd:127
in axilReadMastersAxiLiteReadMasterArray(( LANE_CNT_G- 1) downto 0) :=( others => AXI_LITE_READ_MASTER_INIT_C)
TX_BUF_EN_Gboolean := true
RX_OUTCLK_SRC_Gstring := "PLLREFCLK"
Definition: Gtx7Core.vhd:80
CLK_COR_MAX_LAT_Ginteger := 9
Definition: Gtx7Core.vhd:117
array(natural range <> ) of Pgp2bTxPhyLaneOutType Pgp2bTxPhyLaneOutArray
Definition: Pgp2bPkg.vhd:192
RX_ALIGN_MODE_Gstring := "GT"
Definition: Gtx7Core.vhd:87
in txDiffCtrlslv( 3 downto 0) := "1000"
Definition: Gtx7Core.vhd:236
out pgpRxOutPgp2bRxOutType
Definition: Pgp2bLane.vhd:75
TX_PHASE_ALIGN_Gstring := "NONE"
out axilWriteSlaveAxiLiteWriteSlaveType
TPD_Gtime := 1 ns
Definition: Pgp2bLane.vhd:33
in pgpTxMastersAxiStreamMasterArray( 3 downto 0) :=( others => AXI_STREAM_MASTER_INIT_C)
Definition: Pgp2bLane.vhd:57
CLK_COR_SEQ_1_1_Gbit_vector := "0100000000"
Definition: Gtx7Core.vhd:123
in gtRxPsl
Definition: Gtx7Core.vhd:181
in drpDislv( 15 downto 0) := X"0000"
Definition: Gtx7Core.vhd:243
in phyRxReadysl := '0'
Definition: Pgp2bLane.vhd:87
RXCDR_CFG_Gbit_vector := x"03000023ff40200020"
Definition: Gtx7Core.vhd:56
RX_ENABLE_Gboolean := true
out rxCharIsKOutslv(( RX_EXT_DATA_WIDTH_G/ 8)- 1 downto 0)
Definition: Gtx7Core.vhd:202
NUM_VC_EN_Ginteger range 1 to 4:= 4
Definition: Pgp2bLane.vhd:37
in gtRxNsl
Definition: Gtx7Core.vhd:182
in pgpRxInPgp2bRxInType
CLK_COR_SEQ_1_4_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:126
in rxChBondLevelInslv( 2 downto 0) := "000"
Definition: Gtx7Core.vhd:209
in txUsrClkInsl
Definition: Gtx7Core.vhd:215
CLK_COR_SEQ_1_2_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:124
Pgp2bRxInType
Definition: Pgp2bPkg.vhd:55
CPLL_REFCLK_DIV_Ginteger := 1
Definition: Gtx7Core.vhd:46
out txBufStatusOutslv( 1 downto 0)
Definition: Gtx7Core.vhd:228
slv( 1 downto 0) := "11" AXI_RESP_DECERR_C
Definition: AxiLitePkg.vhd:49
in rxPolarityInsl := '0'
Definition: Gtx7Core.vhd:205
out drpRdysl
Definition: Gtx7Core.vhd:239
in qPllClkInsl := '0'
Definition: Gtx7Core.vhd:171
slv( 1 downto 0) dataK
Definition: Pgp2bPkg.vhd:169
CLK_COR_KEEP_IDLE_Gstring := "FALSE"
Definition: Gtx7Core.vhd:116
PAYLOAD_CNT_TOP_Ginteger := 7
Definition: Pgp2bLane.vhd:36
CHAN_BOND_SEQ_1_1_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:140
in axilReadMasterAxiLiteReadMasterType
out gtTxNslv(( LANE_CNT_G- 1) downto 0)
sl polarity
Definition: Pgp2bPkg.vhd:160
in drpClksl := '0'
Definition: Gtx7Core.vhd:238
RXDFEXYDEN_Gsl := '1'
Definition: Gtx7Core.vhd:162
CLK_COR_SEQ_2_4_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:132
out rxDispErrOutslv(( RX_EXT_DATA_WIDTH_G/ 8)- 1 downto 0)
Definition: Gtx7Core.vhd:204
CLK_COR_SEQ_2_3_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:131
TX_OUTCLK_SRC_Gstring := "OUTCLKPMA"
out gtTxPsl
Definition: Gtx7Core.vhd:179
out phyRxLanesOutPgp2bRxPhyLaneOutArray( 0 to LANE_CNT_G- 1)
Definition: Pgp2bLane.vhd:85
in axilWriteMastersAxiLiteWriteMasterArray(( LANE_CNT_G- 1) downto 0) :=( others => AXI_LITE_WRITE_MASTER_INIT_C)
slv( 1 downto 0) decErr
Definition: Pgp2bPkg.vhd:171
sl resetRx
Definition: Pgp2bPkg.vhd:57
in pgpTxClkRstsl := '0'
Definition: Pgp2bLane.vhd:50
in loopbackInslv( 2 downto 0) := "000"
Definition: Gtx7Core.vhd:233
in txMmcmLockedInsl := '1'
Definition: Gtx7Core.vhd:219
DEC_MCOMMA_DETECT_Gstring := "TRUE"
Definition: Gtx7Core.vhd:109
CHAN_BOND_SEQ_2_2_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:146
CLK_COR_SEQ_LEN_Ginteger := 1
Definition: Gtx7Core.vhd:121
in pgpRxCtrlAxiStreamCtrlArray( 3 downto 0) :=( others => AXI_STREAM_CTRL_UNUSED_C)
Definition: Pgp2bLane.vhd:82
RX_USRCLK_SRC_Gstring := "RXOUTCLK"
Definition: Gtx7Core.vhd:81
CHAN_BOND_MAX_SKEW_Ginteger := 1
Definition: Gtx7Core.vhd:138
RX_PLL_Gstring := "CPLL"
Definition: Gtx7Core.vhd:61
TX_DLY_BYPASS_Gsl := '1'
Definition: Gtx7Core.vhd:75
SIM_VERSION_Gstring := "4.0"
in txUsrClk2Insl
Definition: Gtx7Core.vhd:216
RX_DFE_KL_CFG2_Gbit_vector := x"3008E56A"
Definition: Gtx7Core.vhd:157
out rxChBondOutslv( 4 downto 0)
Definition: Gtx7Core.vhd:211
in rxSlideInsl := '0'
Definition: Gtx7Core.vhd:198
in rxDataValidInsl := '1'
Definition: Gtx7Core.vhd:197
array(natural range <> ) of AxiStreamCtrlType AxiStreamCtrlArray
out axilReadSlavesAxiLiteReadSlaveArray(( LANE_CNT_G- 1) downto 0)
out rxMmcmResetOutsl
Definition: Gtx7Core.vhd:189
CHAN_BOND_SEQ_1_ENABLE_Gbit_vector := "1111"
Definition: Gtx7Core.vhd:144
TIMEOUT_Gpositive := 4096
in pgpRxClksl := '0'
Definition: Pgp2bLane.vhd:70
array(natural range <> ) of Pgp2bRxPhyLaneOutType Pgp2bRxPhyLaneOutArray
Definition: Pgp2bPkg.vhd:163
CLK_COR_SEQ_2_ENABLE_Gbit_vector := "0000"
Definition: Gtx7Core.vhd:128
CLK_COR_SEQ_1_3_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:125
STABLE_CLOCK_PERIOD_Greal := 6.4E-9
out pgpTxOutPgp2bTxOutType
Definition: Pgp2bLane.vhd:54
array(natural range <> ) of AxiStreamMasterType AxiStreamMasterArray
CHAN_BOND_SEQ_1_2_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:141
out rxOutClkOutsl
Definition: Gtx7Core.vhd:185
out pgpRxMasterMuxedAxiStreamMasterType
CHAN_BOND_SEQ_2_USE_Gstring := "FALSE"
Definition: Gtx7Core.vhd:150
out pgpTxOutPgp2bTxOutType
CHAN_BOND_SEQ_LEN_Ginteger := 1
Definition: Gtx7Core.vhd:139
in phyRxLanesInPgp2bRxPhyLaneInArray( 0 to LANE_CNT_G- 1) :=( others => PGP2B_RX_PHY_LANE_IN_INIT_C)
Definition: Pgp2bLane.vhd:86
out phyTxLanesOutPgp2bTxPhyLaneOutArray( 0 to LANE_CNT_G- 1)
Definition: Pgp2bLane.vhd:61
array(natural range <> ) of slv( 15 downto 0) Slv16Array
Definition: StdRtlPkg.vhd:395
in txPreCursorslv( 4 downto 0) :=( others => '0')
Definition: Gtx7Core.vhd:234
in pgpTxClksl := '0'
Definition: Pgp2bLane.vhd:49
LANE_CNT_Ginteger range 1 to 2:= 1
Definition: Pgp2bLane.vhd:34
in txDataInslv( TX_EXT_DATA_WIDTH_G- 1 downto 0)
Definition: Gtx7Core.vhd:226
out rxUserRdyOutsl
Definition: Gtx7Core.vhd:188
AxiLiteReadMasterType :=(araddr =>( others => '0'),arprot =>( others => '0'),arvalid => '0',rready => '1') AXI_LITE_READ_MASTER_INIT_C
Definition: AxiLitePkg.vhd:69
array(natural range <> ) of slv( 8 downto 0) Slv9Array
Definition: StdRtlPkg.vhd:402
TX_8B10B_EN_Gboolean := true
Definition: Gtx7Core.vhd:66
in rxMmcmLockedInsl := '1'
Definition: Gtx7Core.vhd:190
RX_PLL_Gstring := "CPLL"
in gtRxPslv(( LANE_CNT_G- 1) downto 0)
CLK_COR_SEQ_2_2_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:130
out qPllResetOutsl
Definition: Gtx7Core.vhd:174
array(natural range <> ) of AxiLiteWriteMasterType AxiLiteWriteMasterArray
Definition: AxiLitePkg.vhd:136
array(natural range <> ) of slv( 4 downto 0) Slv5Array
Definition: StdRtlPkg.vhd:406
RX_CLK25_DIV_Ginteger := 5
Definition: Gtx7Core.vhd:49
TXOUT_DIV_Ginteger := 2
Definition: Gtx7Core.vhd:48
in axilWriteMasterAxiLiteWriteMasterType
TX_PLL_Gstring := "QPLL"
out txResetDoneOutsl
Definition: Gtx7Core.vhd:223
ALIGN_PCOMMA_DET_Gstring := "FALSE"
Definition: Gtx7Core.vhd:94
in pgpTxInPgp2bTxInType := PGP2B_TX_IN_INIT_C
Definition: Pgp2bLane.vhd:53
PMA_RSV_Gbit_vector := x"00018480"
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
RX_8B10B_EN_Gboolean := true
Definition: Gtx7Core.vhd:70
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_DECERR_C
out pgpRxOutPgp2bRxOutType
TPD_Gtime := 1 ns
in pgpRxCtrlAxiStreamCtrlArray( 3 downto 0)
CHAN_BOND_SEQ_2_1_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:145
in rxUsrClkInsl
Definition: Gtx7Core.vhd:186
out pgpRxMastersAxiStreamMasterArray( 3 downto 0)
Definition: Pgp2bLane.vhd:78
ALIGN_MCOMMA_DET_Gstring := "FALSE"
Definition: Gtx7Core.vhd:91
TX_BUF_ADDR_MODE_Gstring := "FULL"
PAYLOAD_CNT_TOP_Ginteger := 7
in cPllRefClkInsl := '0'
Definition: Gtx7Core.vhd:167
RX_CHAN_BOND_MASTER_Gboolean := false
Definition: Gtx7Core.vhd:136
in drpAddrslv( 8 downto 0) := "000000000"
Definition: Gtx7Core.vhd:242
TX_EXT_DATA_WIDTH_Ginteger := 16
Definition: Gtx7Core.vhd:64
CLK_COR_MIN_LAT_Ginteger := 7
Definition: Gtx7Core.vhd:118
CLK_COR_SEQ_1_ENABLE_Gbit_vector := "1111"
Definition: Gtx7Core.vhd:122
Pgp2bTxOutType
Definition: Pgp2bPkg.vhd:135
out axilWriteSlavesAxiLiteWriteSlaveArray(( LANE_CNT_G- 1) downto 0)
RX_EXT_DATA_WIDTH_Ginteger := 16
Definition: Gtx7Core.vhd:68
array(natural range <> ) of AxiLiteReadSlaveType AxiLiteReadSlaveArray
Definition: AxiLitePkg.vhd:103
RXSLIDE_MODE_Gstring := "PCS"
Definition: Gtx7Core.vhd:98
CLK_COR_PRECEDENCE_Gstring := "TRUE"
Definition: Gtx7Core.vhd:119
TX_BUF_ADDR_MODE_Gstring := "FAST"
Definition: Gtx7Core.vhd:77
RX_OS_CFG_Gbit_vector := "0000010000000"
Definition: Gtx7Core.vhd:55
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_DECERR_C
CHAN_BOND_SEQ_2_4_Gbit_vector := "0000000000"
Definition: Gtx7Core.vhd:148
FTS_LANE_DESKEW_EN_Gstring := "FALSE"
Definition: Gtx7Core.vhd:153
FTS_LANE_DESKEW_CFG_Gbit_vector := "1111"
Definition: Gtx7Core.vhd:152
out txMmcmResetOutsl
Definition: Gtx7Core.vhd:218
CPLL_REFCLK_SEL_Gbit_vector := "001"
in rxUsrClk2Insl
Definition: Gtx7Core.vhd:187
ALIGN_PCOMMA_VALUE_Gbit_vector := "0101111100"
Definition: Gtx7Core.vhd:95
CHAN_BOND_KEEP_ALIGN_Gstring := "FALSE"
Definition: Gtx7Core.vhd:137
out gtTxPslv(( LANE_CNT_G- 1) downto 0)
in phyTxReadysl := '0'
Definition: Pgp2bLane.vhd:62
in pgpTxInPgp2bTxInType
out pgpTxSlavesAxiStreamSlaveArray( 3 downto 0)
out rxDecErrOutslv(( RX_EXT_DATA_WIDTH_G/ 8)- 1 downto 0)
Definition: Gtx7Core.vhd:203
array(natural range <> ) of Pgp2bRxPhyLaneInType Pgp2bRxPhyLaneInArray
Definition: Pgp2bPkg.vhd:174
ALIGN_COMMA_WORD_Ginteger := 2
Definition: Gtx7Core.vhd:90
out drpDoslv( 15 downto 0)
Definition: Gtx7Core.vhd:244
RX_BUF_ADDR_MODE_Gstring := "FAST"
Definition: Gtx7Core.vhd:84
out txOutClkOutsl
Definition: Gtx7Core.vhd:214
CHAN_BOND_SEQ_2_ENABLE_Gbit_vector := "0000"
Definition: Gtx7Core.vhd:149
Pgp2bRxOutType
Definition: Pgp2bPkg.vhd:69
ALIGN_COMMA_ENABLE_Gbit_vector := "1111111111"
Definition: Gtx7Core.vhd:89
in qPllRefClkInsl := '0'
Definition: Gtx7Core.vhd:170
out drpDislv( DATA_WIDTH_G- 1 downto 0)
RX_DDIEN_Gsl := '0'
Definition: Gtx7Core.vhd:83
std_logic_vector slv
Definition: StdRtlPkg.vhd:29
in stableClkInsl
Definition: Gtx7Core.vhd:165
out pgpRxMasterMuxedAxiStreamMasterType
Definition: Pgp2bLane.vhd:79
SIM_VERSION_Gstring := "4.0"
Definition: Gtx7Core.vhd:36