SURF  1.0
Pgp2bGth7MultiLane.vhd
Go to the documentation of this file.
1 -------------------------------------------------------------------------------
2 -- File : Pgp2bGth7MultiLane.vhd
3 -- Company : SLAC National Accelerator Laboratory
4 -- Created : 2015-04-01
5 -- Last update: 2016-08-24
6 -------------------------------------------------------------------------------
7 -- Description: Gth7 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_gth7
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 := "2.0";
41  STABLE_CLOCK_PERIOD_G : real := 4.0E-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"00000080";
53  RX_OS_CFG_G : bit_vector := "0000010000000"; -- Set by wizard
54  RXCDR_CFG_G : bit_vector := x"0002007FE1000C2200018"; -- Set by wizard
55  RXDFEXYDEN_G : sl := '1'; -- Set by wizard
56 
57  -- Configure PLL sources
58  TX_PLL_G : string := "QPLL";
59  RX_PLL_G : string := "CPLL";
60 
61  -- Configure Buffer usage
62  TX_BUF_EN_G : boolean := true;
63  TX_OUTCLK_SRC_G : string := "OUTCLKPMA";
64  TX_DLY_BYPASS_G : sl := '1';
65  TX_PHASE_ALIGN_G : string := "NONE";
66  TX_BUF_ADDR_MODE_G : string := "FULL";
67 
68  -- Configure Number of Lanes
69  LANE_CNT_G : integer range 1 to 2 := 2;
70  ----------------------------------------------------------------------------------------------
71  -- PGP Settings
72  ----------------------------------------------------------------------------------------------
73  VC_INTERLEAVE_G : integer := 0; -- No interleave Frames
74  PAYLOAD_CNT_TOP_G : integer := 7; -- Top bit for payload counter
75  NUM_VC_EN_G : integer range 1 to 4 := 4;
77  TX_ENABLE_G : boolean := true; -- Enable TX direction
78  RX_ENABLE_G : boolean := true); -- Enable RX direction
79  port (
80  -- GT Clocking
81  stableClk : in sl; -- GT needs a stable clock to "boot up"
82  gtCPllRefClk : in sl; -- Drives CPLL if used
83  gtCPllLock : out sl;
84  gtQPllRefClk : in sl; -- Signals from QPLL if used
85  gtQPllClk : in sl;
86  gtQPllLock : in sl;
88  gtQPllReset : out sl;
89  -- Gt Serial IO
90  gtTxP : out slv((LANE_CNT_G-1) downto 0); -- GT Serial Transmit Positive
91  gtTxN : out slv((LANE_CNT_G-1) downto 0); -- GT Serial Transmit Negative
92  gtRxP : in slv((LANE_CNT_G-1) downto 0); -- GT Serial Receive Positive
93  gtRxN : in slv((LANE_CNT_G-1) downto 0); -- GT Serial Receive Negative
94  -- Tx Clocking
95  pgpTxReset : in sl;
96  pgpTxRecClk : out sl; -- recovered clock
97  pgpTxClk : in sl;
100  -- Rx clocking
102  pgpRxRecClk : out sl; -- recovered clock
103  pgpRxClk : in sl;
106  -- Non VC Rx Signals
109  -- Non VC Tx Signals
112  -- Frame Transmit Interface - 1 Lane, Array of 4 VCs
114  pgpTxSlaves : out AxiStreamSlaveArray(3 downto 0);
115  -- Frame Receive Interface - 1 Lane, Array of 4 VCs
118  pgpRxCtrl : in AxiStreamCtrlArray(3 downto 0);
119  -- Debug Interface
120  txPreCursor : in slv(4 downto 0) := (others => '0');
121  txPostCursor : in slv(4 downto 0) := (others => '0');
122  txDiffCtrl : in slv(3 downto 0) := "1000";
123  -- AXI-Lite Interface
124  axilClk : in sl := '0';
125  axilRst : in sl := '0';
130 end Pgp2bGth7MultiLane;
131 
132 -- Define architecture
133 architecture rtl of Pgp2bGth7MultiLane is
134  --------------------------------------------------------------------------------------------------
135  -- Constants
136  --------------------------------------------------------------------------------------------------
137  signal gtQPllResets : slv((LANE_CNT_G-1) downto 0);
138  signal cPllLock : slv((LANE_CNT_G-1) downto 0);
139 
140  -- PgpRx Signals
141  signal pgpRxMmcmResets : slv((LANE_CNT_G-1) downto 0);
142  signal pgpRxRecClock : slv((LANE_CNT_G-1) downto 0);
143  signal gtRxResetDone : slv((LANE_CNT_G-1) downto 0);
144  signal gtRxUserReset : sl;
145  signal gtRxUserResetIn : sl;
146  signal phyRxLanesIn : Pgp2bRxPhyLaneInArray((LANE_CNT_G-1) downto 0);
147  signal phyRxLanesOut : Pgp2bRxPhyLaneOutArray((LANE_CNT_G-1) downto 0);
148  signal phyRxReady : sl;
149  signal phyRxInit : sl;
150 
151  -- Rx Channel Bonding
152  signal rxChBondLevel : slv(2 downto 0);
153  signal rxChBondIn : Slv5Array(LANE_CNT_G-1 downto 0);
154  signal rxChBondOut : Slv5Array(LANE_CNT_G-1 downto 0);
155 
156  -- PgpTx Signals
157  signal pgpTxMmcmResets : slv((LANE_CNT_G-1) downto 0);
158  signal pgpTxRecClock : slv((LANE_CNT_G-1) downto 0);
159  signal gtTxResetDone : slv((LANE_CNT_G-1) downto 0);
160  signal gtTxUserResetIn : sl;
161  signal phyTxLanesOut : Pgp2bTxPhyLaneOutArray((LANE_CNT_G-1) downto 0);
162  signal phyTxReady : sl;
163 
164  signal stableRst : sl;
165  signal drpGnt : slv(LANE_CNT_G-1 downto 0);
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 begin
174 
175  gtQPllReset <= gtQPllResets(0);
176  pgpTxMmcmReset <= pgpTxMmcmResets(0);
177  pgpRxMmcmReset <= pgpRxMmcmResets(0);
178  pgpRxRecClk <= pgpRxRecClock(0);
179  pgpTxRecClk <= pgpTxRecClock(0);
180  gtCPllLock <= cPllLock(0);
181 
182  phyTxReady <= uAnd(gtTxResetDone);
183  phyRxReady <= uAnd(gtRxResetDone);
184 
185  gtRxUserResetIn <= gtRxUserReset or pgpRxReset or pgpRxIn.resetRx;
186  gtTxUserResetIn <= pgpTxReset;
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,
206  pgpRxClk => pgpRxClk,
208  pgpRxIn => pgpRxIn,
209  pgpRxOut => pgpRxOut,
212  pgpRxCtrl => pgpRxCtrl,
213  phyRxLanesOut => phyRxLanesOut,
214  phyRxLanesIn => phyRxLanesIn,
216  phyRxInit => gtRxUserReset);
217 
218  --------------------------------------------------------------------------------------------------
219  -- Generate the GTX channels
220  --------------------------------------------------------------------------------------------------
221  GTH7_CORE_GEN : for i in (LANE_CNT_G-1) downto 0 generate
222  -- Channel Bonding
223 -- gtx(i).rxChBondLevel <= conv_std_logic_vector((LANE_CNT_G-1-i), 3);
224  Bond_Master : if (i = 0) generate
225  rxChBondIn(i) <= "00000";
226  end generate Bond_Master;
227  Bond_Slaves : if (i /= 0) generate
228  rxChBondIn(i) <= rxChBondOut(i-1);
229  end generate Bond_Slaves;
230 
231  Gth7Core_Inst : entity work.Gth7Core
232  generic map (
233  TPD_G => TPD_G,
245  PMA_RSV_G => PMA_RSV_G,
246  TX_PLL_G => TX_PLL_G,
247  RX_PLL_G => RX_PLL_G,
248  TX_EXT_DATA_WIDTH_G => 16,
249  TX_INT_DATA_WIDTH_G => 20,
250  TX_8B10B_EN_G => true,
251  RX_EXT_DATA_WIDTH_G => 16,
252  RX_INT_DATA_WIDTH_G => 20,
253  RX_8B10B_EN_G => true,
259  RX_BUF_EN_G => true,
260  RX_OUTCLK_SRC_G => "OUTCLKPMA",
261  RX_USRCLK_SRC_G => "RXOUTCLK", -- Not 100% sure, doesn't really matter
262  RX_DLY_BYPASS_G => '1',
263  RX_DDIEN_G => '0',
264  RX_BUF_ADDR_MODE_G => "FULL",
265  RX_ALIGN_MODE_G => "GT", -- Default
266  ALIGN_COMMA_DOUBLE_G => "FALSE", -- Default
267  ALIGN_COMMA_ENABLE_G => "1111111111", -- Default
268  ALIGN_COMMA_WORD_G => 2, -- Default
269  ALIGN_MCOMMA_DET_G => "TRUE",
270  ALIGN_MCOMMA_VALUE_G => "1010000011", -- Default
271  ALIGN_MCOMMA_EN_G => '1',
272  ALIGN_PCOMMA_DET_G => "TRUE",
273  ALIGN_PCOMMA_VALUE_G => "0101111100", -- Default
274  ALIGN_PCOMMA_EN_G => '1',
275  SHOW_REALIGN_COMMA_G => "FALSE",
276  RXSLIDE_MODE_G => "AUTO",
277  RX_DISPERR_SEQ_MATCH_G => "TRUE", -- Default
278  DEC_MCOMMA_DETECT_G => "TRUE", -- Default
279  DEC_PCOMMA_DETECT_G => "TRUE", -- Default
280  DEC_VALID_COMMA_ONLY_G => "FALSE", -- Default
281  CBCC_DATA_SOURCE_SEL_G => "DECODED", -- Default
282  CLK_COR_SEQ_2_USE_G => "FALSE", -- Default
283  CLK_COR_KEEP_IDLE_G => "FALSE", -- Default
284  CLK_COR_MAX_LAT_G => 21,
285  CLK_COR_MIN_LAT_G => 18,
286  CLK_COR_PRECEDENCE_G => "TRUE", -- Default
287  CLK_COR_REPEAT_WAIT_G => 0, -- Default
288  CLK_COR_SEQ_LEN_G => 4,
289  CLK_COR_SEQ_1_ENABLE_G => "1111", -- Default
290  CLK_COR_SEQ_1_1_G => "0110111100",
291  CLK_COR_SEQ_1_2_G => "0100011100",
292  CLK_COR_SEQ_1_3_G => "0100011100",
293  CLK_COR_SEQ_1_4_G => "0100011100",
294  CLK_CORRECT_USE_G => "TRUE",
295  CLK_COR_SEQ_2_ENABLE_G => "0000", -- Default
296  CLK_COR_SEQ_2_1_G => "0000000000", -- Default
297  CLK_COR_SEQ_2_2_G => "0000000000", -- Default
298  CLK_COR_SEQ_2_3_G => "0000000000", -- Default
299  CLK_COR_SEQ_2_4_G => "0000000000", -- Default
300  RX_CHAN_BOND_EN_G => true,
301  RX_CHAN_BOND_MASTER_G => (i = 0),
302  CHAN_BOND_KEEP_ALIGN_G => "FALSE", -- Default
303  CHAN_BOND_MAX_SKEW_G => 10,
304  CHAN_BOND_SEQ_LEN_G => 1, -- Default
305  CHAN_BOND_SEQ_1_1_G => "0110111100",
306  CHAN_BOND_SEQ_1_2_G => "0111011100",
307  CHAN_BOND_SEQ_1_3_G => "0111011100",
308  CHAN_BOND_SEQ_1_4_G => "0111011100",
309  CHAN_BOND_SEQ_1_ENABLE_G => "1111", -- Default
310  CHAN_BOND_SEQ_2_1_G => "0000000000", -- Default
311  CHAN_BOND_SEQ_2_2_G => "0000000000", -- Default
312  CHAN_BOND_SEQ_2_3_G => "0000000000", -- Default
313  CHAN_BOND_SEQ_2_4_G => "0000000000", -- Default
314  CHAN_BOND_SEQ_2_ENABLE_G => "0000", -- Default
315  CHAN_BOND_SEQ_2_USE_G => "FALSE", -- Default
316  FTS_DESKEW_SEQ_ENABLE_G => "1111", -- Default
317  FTS_LANE_DESKEW_CFG_G => "1111", -- Default
318  FTS_LANE_DESKEW_EN_G => "FALSE", -- Default
321  RX_EQUALIZER_G => "DFE", -- Xilinx recommends this for 8b10b
323  port map (
326  cPllLockOut => cPllLock(i),
328  qPllClkIn => gtQPllClk,
331  qPllResetOut => gtQPllResets(i),
332  gtTxP => gtTxP(i),
333  gtTxN => gtTxN(i),
334  gtRxP => gtRxP(i),
335  gtRxN => gtRxN(i),
336  rxOutClkOut => pgpRxRecClock(i),
337  rxUsrClkIn => pgpRxClk,
339  rxUserRdyOut => open,
340  rxMmcmResetOut => pgpRxMmcmResets(i),
342  rxUserResetIn => gtRxUserResetIn,
343  rxResetDoneOut => gtRxResetDone(i),
344  rxDataValidIn => '1',
345  rxSlideIn => '0',
346  rxDataOut => phyRxLanesIn(i).data,
347  rxCharIsKOut => phyRxLanesIn(i).dataK,
348  rxDecErrOut => phyRxLanesIn(i).decErr,
349  rxDispErrOut => phyRxLanesIn(i).dispErr,
350  rxPolarityIn => phyRxLanesOut(i).polarity,
351  rxBufStatusOut => open,
352  rxChBondLevelIn => slv(to_unsigned((LANE_CNT_G-1-i), 3)),
353  rxChBondIn => rxChBondIn(i),
354  rxChBondOut => rxChBondOut(i),
355  txOutClkOut => pgpTxRecClock(i),
356  txUsrClkIn => pgpTxClk,
358  txUserRdyOut => open,
359  txMmcmResetOut => pgpTxMmcmResets(i),
361  txUserResetIn => gtTxUserResetIn,
362  txResetDoneOut => gtTxResetDone(i),
363  txDataIn => phyTxLanesOut(i).data,
364  txCharIsKIn => phyTxLanesOut(i).dataK,
365  txBufStatusOut => open,
366  loopbackIn => pgpRxIn.loopback,
370  drpGnt => drpGnt(i),
371  drpRdy => drpRdy(i),
372  drpEn => drpEn(i),
373  drpWe => drpWe(i),
374  drpAddr => drpAddr(i),
375  drpDi => drpDi(i),
376  drpDo => drpDo(i));
377 
378  U_AxiLiteToDrp : entity work.AxiLiteToDrp
379  generic map (
380  TPD_G => TPD_G,
382  COMMON_CLK_G => false,
383  EN_ARBITRATION_G => true,
384  TIMEOUT_G => 4096,
385  ADDR_WIDTH_G => 9,
386  DATA_WIDTH_G => 16)
387  port map (
388  -- AXI-Lite Port
389  axilClk => axilClk,
390  axilRst => axilRst,
395  -- DRP Interface
396  drpClk => stableClk,
397  drpRst => stableRst,
398  drpGnt => drpGnt(i),
399  drpRdy => drpRdy(i),
400  drpEn => drpEn(i),
401  drpWe => drpWe(i),
402  drpAddr => drpAddr(i),
403  drpDi => drpDi(i),
404  drpDo => drpDo(i));
405 
406  end generate GTH7_CORE_GEN;
407 
408  U_RstSync : entity work.RstSync
409  generic map (
410  TPD_G => TPD_G)
411  port map (
412  clk => stableClk,
413  asyncRst => axilRst,
414  syncRst => stableRst);
415 
416 end rtl;
RX_OS_CFG_Gbit_vector := "0000010000000"
Definition: Gth7Core.vhd:46
CHAN_BOND_SEQ_1_4_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:123
CHAN_BOND_SEQ_2_1_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:125
FTS_DESKEW_SEQ_ENABLE_Gbit_vector := "1111"
Definition: Gth7Core.vhd:131
RX_BUF_EN_Gboolean := true
Definition: Gth7Core.vhd:64
out pgpRxMastersAxiStreamMasterArray( 3 downto 0)
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
CHAN_BOND_SEQ_2_3_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:127
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
NUM_VC_EN_Ginteger range 1 to 4:= 4
CBCC_DATA_SOURCE_SEL_Gstring := "DECODED"
Definition: Gth7Core.vhd:95
ALIGN_MCOMMA_VALUE_Gbit_vector := "1010000011"
Definition: Gth7Core.vhd:76
RX_CHAN_BOND_EN_Gboolean := false
Definition: Gth7Core.vhd:115
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
in gtRxNslv(( LANE_CNT_G- 1) downto 0)
CLK_COR_KEEP_IDLE_Gstring := "FALSE"
Definition: Gth7Core.vhd:97
TX_ENABLE_Gboolean := true
CHAN_BOND_SEQ_1_1_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:120
out syncRstsl
Definition: RstSync.vhd:36
sl phyTxReady
Definition: Pgp2bPkg.vhd:138
in txPreCursorslv( 4 downto 0) :=( others => '0')
CLK_COR_SEQ_2_USE_Gstring := "FALSE"
Definition: Gth7Core.vhd:96
array(natural range <> ) of AxiLiteWriteSlaveType AxiLiteWriteSlaveArray
Definition: AxiLitePkg.vhd:164
FTS_LANE_DESKEW_EN_Gstring := "FALSE"
Definition: Gth7Core.vhd:133
out drpAddrslv( ADDR_WIDTH_G- 1 downto 0)
out rxUserRdyOutsl
Definition: Gth7Core.vhd:159
SIM_VERSION_Gstring := "2.0"
TX_8B10B_EN_Gboolean := true
Definition: Gth7Core.vhd:54
in rxMmcmLockedInsl := '1'
Definition: Gth7Core.vhd:161
CLK_COR_MAX_LAT_Ginteger := 9
Definition: Gth7Core.vhd:98
out pgpTxSlavesAxiStreamSlaveArray( 3 downto 0)
Definition: Pgp2bLane.vhd:58
in drpGntsl := '1'
std_logic sl
Definition: StdRtlPkg.vhd:28
out qPllResetOutsl
Definition: Gth7Core.vhd:148
CHAN_BOND_SEQ_2_2_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:126
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
STABLE_CLOCK_PERIOD_Greal := 4.0E-9
in pgpTxMastersAxiStreamMasterArray( 3 downto 0) :=( others => AXI_STREAM_MASTER_INIT_C)
in txPostCursorslv( 4 downto 0) :=( others => '0')
in gtRxNsl
Definition: Gth7Core.vhd:154
in stableClkInsl
Definition: Gth7Core.vhd:141
CLK_CORRECT_USE_Gstring := "FALSE"
Definition: Gth7Core.vhd:108
in drpDoslv( DATA_WIDTH_G- 1 downto 0)
COMMON_CLK_Gboolean := false
RX_CHAN_BOND_MASTER_Gboolean := false
Definition: Gth7Core.vhd:116
ALIGN_PCOMMA_EN_Gsl := '0'
Definition: Gth7Core.vhd:80
CPLL_FBDIV_Ginteger := 4
Definition: Gth7Core.vhd:38
in txDiffCtrlslv( 3 downto 0) := "1000"
CPLL_REFCLK_DIV_Ginteger := 1
array(natural range <> ) of AxiLiteReadMasterType AxiLiteReadMasterArray
Definition: AxiLitePkg.vhd:77
in pgpRxInPgp2bRxInType := PGP2B_RX_IN_INIT_C
Definition: Pgp2bLane.vhd:74
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
ALIGN_COMMA_DOUBLE_Gstring := "FALSE"
Definition: Gth7Core.vhd:72
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
SIM_GTRESET_SPEEDUP_Gstring := "FALSE"
RX_OS_CFG_Gbit_vector := "0000010000000"
RX_EQUALIZER_Gstring := "LPM"
Definition: Gth7Core.vhd:135
TX_INT_DATA_WIDTH_Ginteger := 20
Definition: Gth7Core.vhd:53
RX_DLY_BYPASS_Gsl := '1'
Definition: Gth7Core.vhd:67
in rxChBondLevelInslv( 2 downto 0) := "000"
Definition: Gth7Core.vhd:176
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
in axilReadMastersAxiLiteReadMasterArray(( LANE_CNT_G- 1) downto 0) :=( others => AXI_LITE_READ_MASTER_INIT_C)
SIM_GTRESET_SPEEDUP_Gstring := "FALSE"
Definition: Gth7Core.vhd:32
TX_BUF_EN_Gboolean := true
out txBufStatusOutslv( 1 downto 0)
Definition: Gth7Core.vhd:192
ALIGN_COMMA_WORD_Ginteger := 2
Definition: Gth7Core.vhd:74
in asyncRstsl
Definition: RstSync.vhd:35
RX_BUF_ADDR_MODE_Gstring := "FAST"
Definition: Gth7Core.vhd:69
in txUserResetInsl
Definition: Gth7Core.vhd:187
TX_DLY_BYPASS_Gsl := '1'
Definition: Gth7Core.vhd:61
in rxChBondInslv( 4 downto 0) := "00000"
Definition: Gth7Core.vhd:177
TX_PHASE_ALIGN_Gstring := "NONE"
RX_8B10B_EN_Gboolean := true
Definition: Gth7Core.vhd:57
LANE_CNT_Ginteger range 1 to 2:= 2
array(natural range <> ) of Pgp2bTxPhyLaneOutType Pgp2bTxPhyLaneOutArray
Definition: Pgp2bPkg.vhd:192
RXDFEXYDEN_Gsl := '1'
Definition: Gth7Core.vhd:139
in clksl
Definition: RstSync.vhd:34
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
RX_ENABLE_Gboolean := true
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
CLK_COR_SEQ_2_3_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:112
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
CLK_COR_REPEAT_WAIT_Ginteger := 0
Definition: Gth7Core.vhd:101
NUM_VC_EN_Ginteger range 1 to 4:= 4
Definition: Pgp2bLane.vhd:37
PMA_RSV_Gbit_vector := x"00000080"
in pgpRxInPgp2bRxInType
TX_EXT_DATA_WIDTH_Ginteger := 16
Definition: Gth7Core.vhd:52
in txMmcmLockedInsl := '1'
Definition: Gth7Core.vhd:185
DEC_VALID_COMMA_ONLY_Gstring := "FALSE"
Definition: Gth7Core.vhd:93
TPD_Gtime := 1 ns
Definition: Gth7Core.vhd:30
RX_EXT_DATA_WIDTH_Ginteger := 16
Definition: Gth7Core.vhd:55
CHAN_BOND_MAX_SKEW_Ginteger := 1
Definition: Gth7Core.vhd:118
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
CHAN_BOND_SEQ_1_3_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:122
slv( 1 downto 0) := "11" AXI_RESP_DECERR_C
Definition: AxiLitePkg.vhd:49
out gtTxNslv(( LANE_CNT_G- 1) downto 0)
slv( 1 downto 0) dataK
Definition: Pgp2bPkg.vhd:169
PAYLOAD_CNT_TOP_Ginteger := 7
Definition: Pgp2bLane.vhd:36
RXCDR_CFG_Gbit_vector := x"0002007FE1000C2200018"
in rxUserResetInsl
Definition: Gth7Core.vhd:163
in axilReadMasterAxiLiteReadMasterType
TX_OUTCLK_SRC_Gstring := "OUTCLKPMA"
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
CHAN_BOND_SEQ_1_2_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:121
out phyRxLanesOutPgp2bRxPhyLaneOutArray( 0 to LANE_CNT_G- 1)
Definition: Pgp2bLane.vhd:85
ALIGN_COMMA_ENABLE_Gbit_vector := "1111111111"
Definition: Gth7Core.vhd:73
in qPllRefClkInsl := '0'
Definition: Gth7Core.vhd:144
slv( 1 downto 0) decErr
Definition: Pgp2bPkg.vhd:171
sl resetRx
Definition: Pgp2bPkg.vhd:57
in pgpTxClkRstsl := '0'
Definition: Pgp2bLane.vhd:50
in axilWriteMastersAxiLiteWriteMasterArray(( LANE_CNT_G- 1) downto 0) :=( others => AXI_LITE_WRITE_MASTER_INIT_C)
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
CLK_COR_SEQ_1_4_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:107
out axilReadSlavesAxiLiteReadSlaveArray(( LANE_CNT_G- 1) downto 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
CLK_COR_PRECEDENCE_Gstring := "TRUE"
Definition: Gth7Core.vhd:100
in rxPolarityInsl := '0'
Definition: Gth7Core.vhd:173
out drpRdysl
Definition: Gth7Core.vhd:203
in qPllClkInsl := '0'
Definition: Gth7Core.vhd:145
DEC_PCOMMA_DETECT_Gstring := "TRUE"
Definition: Gth7Core.vhd:92
TIMEOUT_Gpositive := 4096
PMA_RSV_Gbit_vector := X"00000080"
Definition: Gth7Core.vhd:45
RXCDR_CFG_Gbit_vector := x"0002007FE1000C2200018"
Definition: Gth7Core.vhd:47
in pgpRxClksl := '0'
Definition: Pgp2bLane.vhd:70
CLK_COR_SEQ_1_1_Gbit_vector := "0100000000"
Definition: Gth7Core.vhd:104
array(natural range <> ) of Pgp2bRxPhyLaneOutType Pgp2bRxPhyLaneOutArray
Definition: Pgp2bPkg.vhd:163
out pgpTxOutPgp2bTxOutType
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
CLK_COR_SEQ_1_2_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:105
in phyRxLanesInPgp2bRxPhyLaneInArray( 0 to LANE_CNT_G- 1) :=( others => PGP2B_RX_PHY_LANE_IN_INIT_C)
Definition: Pgp2bLane.vhd:86
CLK_COR_SEQ_2_2_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:111
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
CLK_COR_SEQ_2_1_Gbit_vector := "0100000000"
Definition: Gth7Core.vhd:110
out pgpRxMasterMuxedAxiStreamMasterType
in loopbackInslv( 2 downto 0) := "000"
Definition: Gth7Core.vhd:197
DEC_MCOMMA_DETECT_Gstring := "TRUE"
Definition: Gth7Core.vhd:91
in pgpTxClksl := '0'
Definition: Pgp2bLane.vhd:49
LANE_CNT_Ginteger range 1 to 2:= 1
Definition: Pgp2bLane.vhd:34
RXSLIDE_MODE_Gstring := "PCS"
Definition: Gth7Core.vhd:82
CHAN_BOND_SEQ_2_ENABLE_Gbit_vector := "0000"
Definition: Gth7Core.vhd:129
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
CHAN_BOND_SEQ_LEN_Ginteger := 1
Definition: Gth7Core.vhd:119
out cPllLockOutsl
Definition: Gth7Core.vhd:143
TX_PLL_Gstring := "QPLL"
RX_DDIEN_Gsl := '0'
Definition: Gth7Core.vhd:68
CLK_COR_SEQ_2_4_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:113
array(natural range <> ) of AxiLiteWriteMasterType AxiLiteWriteMasterArray
Definition: AxiLitePkg.vhd:136
array(natural range <> ) of slv( 4 downto 0) Slv5Array
Definition: StdRtlPkg.vhd:406
RX_PLL_Gstring := "CPLL"
out pgpRxOutPgp2bRxOutType
in gtRxPslv(( LANE_CNT_G- 1) downto 0)
in txDataInslv( TX_EXT_DATA_WIDTH_G- 1 downto 0)
Definition: Gth7Core.vhd:190
CHAN_BOND_SEQ_1_ENABLE_Gbit_vector := "1111"
Definition: Gth7Core.vhd:124
out gtTxPsl
Definition: Gth7Core.vhd:151
in axilWriteMasterAxiLiteWriteMasterType
in pgpTxInPgp2bTxInType := PGP2B_TX_IN_INIT_C
Definition: Pgp2bLane.vhd:53
TX_BUF_ADDR_MODE_Gstring := "FULL"
PAYLOAD_CNT_TOP_Ginteger := 7
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
CLK_COR_SEQ_LEN_Ginteger := 1
Definition: Gth7Core.vhd:102
out drpDoslv( 15 downto 0)
Definition: Gth7Core.vhd:208
out rxOutClkOutsl
Definition: Gth7Core.vhd:156
CHAN_BOND_SEQ_2_USE_Gstring := "FALSE"
Definition: Gth7Core.vhd:130
RX_USRCLK_SRC_Gstring := "RXOUTCLK"
Definition: Gth7Core.vhd:66
RX_PLL_Gstring := "CPLL"
Definition: Gth7Core.vhd:50
out txResetDoneOutsl
Definition: Gth7Core.vhd:188
TX_BUF_ADDR_MODE_Gstring := "FAST"
Definition: Gth7Core.vhd:63
ALIGN_PCOMMA_DET_Gstring := "FALSE"
Definition: Gth7Core.vhd:78
in pgpRxCtrlAxiStreamCtrlArray( 3 downto 0)
out axilWriteSlavesAxiLiteWriteSlaveArray(( LANE_CNT_G- 1) downto 0)
in txPreCursorslv( 4 downto 0) :=( others => '0')
Definition: Gth7Core.vhd:198
out rxChBondOutslv( 4 downto 0)
Definition: Gth7Core.vhd:178
TX_CLK25_DIV_Ginteger := 5
Definition: Gth7Core.vhd:44
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_DECERR_C
Pgp2bTxOutType
Definition: Pgp2bPkg.vhd:135
ALIGN_MCOMMA_DET_Gstring := "FALSE"
Definition: Gth7Core.vhd:75
array(natural range <> ) of AxiLiteReadSlaveType AxiLiteReadSlaveArray
Definition: AxiLitePkg.vhd:103
in drpWesl := '0'
Definition: Gth7Core.vhd:205
in txUsrClkInsl
Definition: Gth7Core.vhd:181
CPLL_FBDIV_45_Ginteger := 5
Definition: Gth7Core.vhd:39
ALIGN_PCOMMA_VALUE_Gbit_vector := "0101111100"
Definition: Gth7Core.vhd:79
CLK_COR_SEQ_2_ENABLE_Gbit_vector := "0000"
Definition: Gth7Core.vhd:109
CPLL_REFCLK_SEL_Gbit_vector := "001"
CHAN_BOND_KEEP_ALIGN_Gstring := "FALSE"
Definition: Gth7Core.vhd:117
CLK_COR_SEQ_1_3_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:106
CLK_COR_SEQ_1_ENABLE_Gbit_vector := "1111"
Definition: Gth7Core.vhd:103
out gtTxPslv(( LANE_CNT_G- 1) downto 0)
in pgpTxInPgp2bTxInType
out pgpTxSlavesAxiStreamSlaveArray( 3 downto 0)
RX_INT_DATA_WIDTH_Ginteger := 20
Definition: Gth7Core.vhd:56
CHAN_BOND_SEQ_2_4_Gbit_vector := "0000000000"
Definition: Gth7Core.vhd:128
in phyTxReadysl := '0'
Definition: Pgp2bLane.vhd:62
array(natural range <> ) of Pgp2bRxPhyLaneInType Pgp2bRxPhyLaneInArray
Definition: Pgp2bPkg.vhd:174
FTS_LANE_DESKEW_CFG_Gbit_vector := "1111"
Definition: Gth7Core.vhd:132
out txMmcmResetOutsl
Definition: Gth7Core.vhd:184
Pgp2bRxOutType
Definition: Pgp2bPkg.vhd:69
SHOW_REALIGN_COMMA_Gstring := "FALSE"
Definition: Gth7Core.vhd:81
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
CLK_COR_MIN_LAT_Ginteger := 7
Definition: Gth7Core.vhd:99
std_logic_vector slv
Definition: StdRtlPkg.vhd:29
RX_DISPERR_SEQ_MATCH_Gstring := "TRUE"
Definition: Gth7Core.vhd:90
ALIGN_MCOMMA_EN_Gsl := '0'
Definition: Gth7Core.vhd:77
out pgpRxMasterMuxedAxiStreamMasterType
Definition: Pgp2bLane.vhd:79