SURF  1.0
Jesd204bRx.vhd
Go to the documentation of this file.
1 -------------------------------------------------------------------------------
2 -- File : Jesd204bRx.vhd
3 -- Company : SLAC National Accelerator Laboratory
4 -- Created : 2015-04-14
5 -- Last update: 2016-02-12
6 -------------------------------------------------------------------------------
7 -- Description: JESD204b multi-lane receiver module
8 -- Receiver JESD204b module.
9 -- Supports a subset of features from JESD204b standard.
10 -- Supports sub-class 1 deterministic latency.
11 -- Supports sub-class 0 non deterministic latency.
12 -- Features:
13 -- - Synchronization of LMFC to SYSREF
14 -- - Multi-lane operation (L_G: 1-16)
15 -- - Lane alignment using RX buffers
16 -- - Serial lane error check
17 -- - Alignment character replacement and alignment check
18 --
19 -- Note: sampleDataArr_o is little endian and not byte-swapped
20 -- First sample in time: sampleData_o(15 downto 0)
21 -- Second sample in time: sampleData_o(31 downto 16)
22 -------------------------------------------------------------------------------
23 -- This file is part of 'SLAC Firmware Standard Library'.
24 -- It is subject to the license terms in the LICENSE.txt file found in the
25 -- top-level directory of this distribution and at:
26 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html.
27 -- No part of 'SLAC Firmware Standard Library', including this file,
28 -- may be copied, modified, propagated, or distributed except according to
29 -- the terms contained in the LICENSE.txt file.
30 -------------------------------------------------------------------------------
31 
32 library ieee;
33 use ieee.std_logic_1164.all;
34 use ieee.std_logic_arith.all;
35 use ieee.std_logic_unsigned.all;
36 
37 use work.StdRtlPkg.all;
38 use work.AxiLitePkg.all;
39 use work.AxiStreamPkg.all;
40 use work.SsiPkg.all;
41 
42 use work.Jesd204bPkg.all;
43 
44 --! @see entity
45  --! @ingroup protocols_jesd204b
46 entity Jesd204bRx is
47  generic (
48  TPD_G : time := 1 ns;
49 
50  -- Test tx module instead of GTX
51  TEST_G : boolean := false;
52 
53  -- AXI Lite and stream generics
55 
56  -- JESD generics
57 
58  -- Number of bytes in a frame (1,2,or 4)
59  F_G : positive := 2;
60 
61  -- Number of frames in a multi frame (32)
62  K_G : positive := 32;
63 
64  -- Number of RX lanes (1 to 32)
65  L_G : positive range 1 to 32 := 2);
66 
67  port (
68  -- AXI interface
69  -- Clocks and Resets
70  axiClk : in sl;
71  axiRst : in sl;
72 
73  -- AXI-Lite Register Interface
78 
79  -- Legacy Interface that we will remove in the future
82 
83  -- Sample data output (Use if external data acquisition core is attached)
84  sampleDataArr_o : out sampleDataArray(L_G-1 downto 0);
85  dataValidVec_o : out slv(L_G-1 downto 0);
86 
87  -- JESD
88  -- Clocks and Resets
89  devClk_i : in sl;
90  devRst_i : in sl;
91 
92  -- SYSREF for subclass 1 fixed latency
93  sysRef_i : in sl;
94 
95  -- SYSREF output for debug
96  sysRefDbg_o : out sl;
97 
98  -- Data and character inputs from GT (transceivers)
100  gtRxReset_o : out slv(L_G-1 downto 0);
101 
102  rxPolarity : out slv(L_G-1 downto 0);
103 
104  -- Synchronization output combined from all receivers
105  nSync_o : out sl;
106 
107  -- Debug signals
108  pulse_o : out slv(L_G-1 downto 0);
109  leds_o : out slv(1 downto 0)
110  );
111 end Jesd204bRx;
112 
113 architecture rtl of Jesd204bRx is
114 
115 -- Register
116  type RegType is record
117  nSyncAnyD1 : sl;
118  end record RegType;
119 
120  constant REG_INIT_C : RegType := (
121  nSyncAnyD1 => '0'
122  );
123 
124  signal r : RegType := REG_INIT_C;
125  signal rin : RegType;
126 
127  -- Internal signals
128 
129  -- Local Multi Frame Clock
130  signal s_lmfc : sl;
131 
132  -- Synchronization output generation
133  signal s_nSyncVec : slv(L_G-1 downto 0);
134  signal s_nSyncVecEn : slv(L_G-1 downto 0);
135  signal s_dataValidVec : slv(L_G-1 downto 0);
136 
137  signal s_nSyncAll : sl;
138  signal s_nSyncAny : sl;
139 
140  -- Control and status from AxiLite
141  ------------------------------------------------------------
142  signal s_sysrefDlyRx : slv(SYSRF_DLY_WIDTH_C-1 downto 0);
143  signal s_enableRx : slv(L_G-1 downto 0);
144  signal s_replEnable : sl;
145  signal s_scrEnable : sl;
146  signal s_invertData : slv(L_G-1 downto 0);
147 
148  -- JESD subclass selection (from AXI lite register)
149  signal s_subClass : sl;
150  -- User reset (from AXI lite register)
151  signal s_gtReset : sl;
152 
153  signal s_invertSync : sl;
154  signal s_clearErr : sl;
155  signal s_statusRxArr : rxStatuRegisterArray(L_G-1 downto 0);
156  signal s_thresoldHighArr : Slv16Array(L_G-1 downto 0);
157  signal s_thresoldLowArr : Slv16Array(L_G-1 downto 0);
158 
159  -- Testing registers
160  signal s_dlyTxArr : Slv4Array(L_G-1 downto 0);
161  signal s_alignTxArr : alignTxArray(L_G-1 downto 0);
162 
163 
164  signal s_sampleDataArr : sampleDataArray(L_G-1 downto 0);
165 
166  -- Sysref conditioning
167  signal s_sysrefSync : sl;
168  signal s_sysrefD : sl;
169  signal s_sysrefRe : sl;
170 
171  -- Record containing GT signals
172  signal s_jesdGtRxArr : jesdGtRxLaneTypeArray(L_G-1 downto 0);
173  signal s_rawData : slv32Array(L_G-1 downto 0);
174 
175  -- Generate pause signal logic OR
176  signal s_linkErrMask : slv(5 downto 0);
177 
178 begin
179 
180  -- Check JESD generics
181  assert (((K_G * F_G) mod GT_WORD_SIZE_C) = 0) report "K_G setting is incorrect" severity failure;
182  assert (F_G = 1 or F_G = 2 or (F_G = 4 and GT_WORD_SIZE_C = 4)) report "F_G setting must be 1,2,or 4*" severity failure;
183 
184  -- Legacy Interface that we will remove in the future
186 
187  -----------------------------------------------------------
188  -- AXI Lite AXI clock domain crossed
189  -----------------------------------------------------------
190 
191  GEN_rawData : for I in L_G-1 downto 0 generate
192  s_rawData(I) <= s_jesdGtRxArr(I).data;
193  end generate GEN_rawData;
194 
195  -- axiLite register interface
196  U_Reg : entity work.JesdRxReg
197  generic map (
198  TPD_G => TPD_G,
200  L_G => L_G)
201  port map (
202  axiClk_i => axiClk,
203  axiRst_i => axiRst,
208 
209  -- DevClk domain
210  devClk_i => devClk_i,
211  devRst_i => devRst_i,
212  statusRxArr_i => s_statusRxArr,
213  rawData_i => s_rawData,
214  linkErrMask_o => s_linkErrMask,
215  sysrefDlyRx_o => s_sysrefDlyRx,
216  enableRx_o => s_enableRx,
217  replEnable_o => s_replEnable,
218  scrEnable_o => s_scrEnable,
219  dlyTxArr_o => s_dlyTxArr,
220  alignTxArr_o => s_alignTxArr,
221  subClass_o => s_subClass,
222  gtReset_o => s_gtReset,
223  clearErr_o => s_clearErr,
224  invertSync_o => s_invertSync,
225  invertData_o => s_invertData,
226  thresoldHighArr_o => s_thresoldHighArr,
227  thresoldLowArr_o => s_thresoldLowArr,
229 
230  -----------------------------------------------------------
231  -- TEST or OPER
232  -----------------------------------------------------------
233  -- IF DEF TEST_G
234 
235  -- Generate TX test core if TEST_G=true is selected
236  TEST_GEN : if TEST_G = true generate
237  -----------------------------------------
238  TX_LANES_GEN : for I in L_G-1 downto 0 generate
239  JesdTxTest_INST : entity work.JesdTxTest
240  generic map (
241  TPD_G => TPD_G)
242  port map (
243  devClk_i => devClk_i,
244  devRst_i => devRst_i,
245  enable_i => s_enableRx(I),
246  delay_i => s_dlyTxArr(I),
247  align_i => s_alignTxArr(I),
248  lmfc_i => s_lmfc,
249  nSync_i => r.nSyncAnyD1,
250  r_jesdGtRx => s_jesdGtRxArr(I),
251  subClass_i => s_subClass,
252  txDataValid_o => open);
253  end generate TX_LANES_GEN;
254  end generate TEST_GEN;
255 
256  -- ELSE (not TEST_G) just connect to the input from the MGT
257  GT_OPER_GEN : if TEST_G = false generate
258  -----------------------------------------
259  -- Use input from GTX
260  s_jesdGtRxArr <= r_jesdGtRxArr;
261  end generate GT_OPER_GEN;
262  ----------------------------------------
263 
264  -----------------------------------------------------------
265  -- SYSREF and LMFC
266  -----------------------------------------------------------
267  -- Synchronize SYSREF input to devClk_i
268  Synchronizer_INST : entity work.Synchronizer
269  generic map (
270  TPD_G => TPD_G,
271  RST_POLARITY_G => '1',
272  OUT_POLARITY_G => '1',
273  RST_ASYNC_G => false,
274  STAGES_G => 2,
275  BYPASS_SYNC_G => false,
276  INIT_G => "0")
277  port map (
278  clk => devClk_i,
279  rst => devRst_i,
280  dataIn => sysref_i,
281  dataOut => s_sysrefSync
282  );
283 
284  -- Delay SYSREF input (for 1 to 32 c-c)
285  SysrefDly_INST : entity work.JesdSysrefDly
286  generic map (
287  TPD_G => TPD_G,
289  )
290  port map (
291  clk => devClk_i,
292  rst => devRst_i,
293  dly_i => s_sysrefDlyRx,
294  sysref_i => s_sysrefSync,
295  sysref_o => s_sysrefD
296  );
297 
298  -- LMFC period generator aligned to SYSREF input
299  LmfcGen_INST : entity work.JesdLmfcGen
300  generic map (
301  TPD_G => TPD_G,
302  K_G => K_G,
303  F_G => F_G)
304  port map (
305  clk => devClk_i,
306  rst => devRst_i,
307  --nSync_i => '0', -- r.nSyncAnyD1,
308  nSync_i => r.nSyncAnyD1,
309  sysref_i => s_sysrefD, -- Delayed SYSREF IN
310  sysrefRe_o => s_sysrefRe, -- Rising-edge of SYSREF OUT
311  lmfc_o => s_lmfc
312  );
313 
314  -----------------------------------------------------------
315  -- Receiver modules (L_G)
316  -----------------------------------------------------------
317 
318  -- JESD Receiver modules (one module per Lane)
319  generateRxLanes : for I in L_G-1 downto 0 generate
320  JesdRx_INST : entity work.JesdRxLane
321  generic map (
322  TPD_G => TPD_G,
323  F_G => F_G,
324  K_G => K_G)
325  port map (
326  devClk_i => devClk_i,
327  devRst_i => devRst_i,
328  sysRef_i => s_sysrefRe, -- Rising-edge of SYSREF
329  enable_i => s_enableRx(I),
330  clearErr_i => s_clearErr,
331  linkErrMask_i=> s_linkErrMask,
332  replEnable_i => s_replEnable,
333  scrEnable_i => s_scrEnable,
334  inv_i => s_invertData(I),
335  status_o => s_statusRxArr(I),
336  r_jesdGtRx => s_jesdGtRxArr(I),
337  lmfc_i => s_lmfc,
338  nSyncAnyD1_i => r.nSyncAnyD1,
339  nSyncAny_i => s_nSyncAny,
340  nSync_o => s_nSyncVec(I),
341  dataValid_o => s_dataValidVec(I),
342  sampleData_o => s_sampleDataArr(I),
343  subClass_i => s_subClass
344  );
345  end generate;
346 
347  -- Test signal generator
348  generatePulserLanes : for I in L_G-1 downto 0 generate
349  Pulser_INST : entity work.JesdTestSigGen
350  generic map (
351  TPD_G => TPD_G,
352  F_G => F_G)
353  port map (
354  clk => devClk_i,
355  rst => devRst_i,
356  enable_i => s_dataValidVec(I),
357  thresoldLow_i => s_thresoldLowArr(I),
358  thresoldHigh_i => s_thresoldHighArr(I),
359  sampleData_i => s_sampleDataArr(I),
360  testSig_o => pulse_o(I));
361  end generate;
362 
363  -- Put sync output in 'z' if not enabled
364  syncVectEn : for I in L_G-1 downto 0 generate
365  s_nSyncVecEn(I) <= s_nSyncVec(I) or not s_enableRx(I);
366  end generate syncVectEn;
367 
368  -- Combine nSync signals from all receivers
369  s_nSyncAny <= '0' when allBits (s_enableRx, '0') else uAnd(s_nSyncVecEn);
370 
371  -- DFF
372  comb : process (r, devRst_i, s_nSyncAll, s_nSyncAny) is
373  variable v : RegType;
374  begin
375  v.nSyncAnyD1 := s_nSyncAny;
376 
377  if (devRst_i = '1') then
378  v := REG_INIT_C;
379  end if;
380 
381  rin <= v;
382  end process comb;
383 
384  seq : process (devClk_i) is
385  begin
386  if (rising_edge(devClk_i)) then
387  r <= rin after TPD_G;
388  end if;
389  end process seq;
390 
391  -- Output assignment
392 
393  -- Invert/or not nSync signal (control from axil)
394  nSync_o <= r.nSyncAnyD1 when s_invertSync = '0' else not r.nSyncAnyD1;
395  gtRxReset_o <= (others => s_gtReset);
396  leds_o <= uOr(s_dataValidVec) & s_nSyncAny;
397  sysRefDbg_o <= s_sysrefD;
398  sampleDataArr_o <= s_sampleDataArr;
399  dataValidVec_o <= s_dataValidVec;
400 
401 -----------------------------------------------------
402 end rtl;
slv( 127 downto 0) data
Definition: SsiPkg.vhd:67
in axiClk_isl
Definition: JesdRxReg.vhd:40
INIT_Gslv := "0"
array(natural range <> ) of slv(( GT_WORD_SIZE_C* 8)- 1 downto 0) sampleDataArray
Definition: Jesd204bPkg.vhd:91
out alignTxArr_oalignTxArray( L_G- 1 downto 0)
Definition: JesdRxReg.vhd:65
in subClass_isl
Definition: JesdTxTest.vhd:42
in devClk_isl
Definition: JesdRxLane.vhd:75
in devClk_isl
Definition: JesdRxReg.vhd:50
out scrEnable_osl
Definition: JesdRxReg.vhd:62
TPD_Gtime := 1 ns
Definition: JesdLmfcGen.vhd:37
out thresoldLowArr_oSlv16Array( L_G- 1 downto 0)
Definition: JesdRxReg.vhd:66
out enableRx_oslv( L_G- 1 downto 0)
Definition: JesdRxReg.vhd:60
TPD_Gtime := 1 ns
AxiLiteWriteMasterType
Definition: AxiLitePkg.vhd:111
TPD_Gtime := 1 ns
Definition: Jesd204bRx.vhd:48
std_logic sl
Definition: StdRtlPkg.vhd:28
L_Gpositive range 1 to 32:= 2
Definition: Jesd204bRx.vhd:65
in rstsl :=not RST_POLARITY_G
out dataValidVec_oslv( L_G- 1 downto 0)
Definition: Jesd204bRx.vhd:85
out rxAxisMasterArr_oAxiStreamMasterArray( L_G- 1 downto 0)
Definition: Jesd204bRx.vhd:80
TPD_Gtime := 1 ns
Definition: JesdRxReg.vhd:32
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
in devClk_isl
Definition: JesdTxTest.vhd:38
BYPASS_SYNC_Gboolean := false
K_Gpositive := 32
Definition: JesdLmfcGen.vhd:38
out axilWriteSlaveAxiLiteWriteSlaveType
Definition: JesdRxReg.vhd:47
in sampleData_islv(( GT_WORD_SIZE_C* 8)- 1 downto 0)
TEST_Gboolean := false
Definition: Jesd204bRx.vhd:51
in subClass_isl
Definition: JesdRxLane.vhd:79
in sysref_isl
Definition: JesdLmfcGen.vhd:46
STAGES_Gpositive := 2
out invertSync_osl
Definition: JesdRxReg.vhd:71
array(natural range <> ) of slv(( RX_STAT_WIDTH_C)- 1 downto 0) rxStatuRegisterArray
Definition: Jesd204bPkg.vhd:93
_library_ ieeeieee
Definition: Jesd204bPkg.vhd:18
out sysRefDbg_osl
Definition: Jesd204bRx.vhd:96
in delay_islv( 3 downto 0)
Definition: JesdTxTest.vhd:54
RST_POLARITY_Gsl := '1'
out linkErrMask_oslv( 5 downto 0)
Definition: JesdRxReg.vhd:72
in rawData_islv32Array( L_G- 1 downto 0)
Definition: JesdRxReg.vhd:56
out clearErr_osl
Definition: JesdRxReg.vhd:70
out gtReset_osl
Definition: JesdRxReg.vhd:69
TPD_Gtime := 1 ns
K_Gpositive := 32
Definition: Jesd204bRx.vhd:62
out sampleDataArr_osampleDataArray( L_G- 1 downto 0)
Definition: Jesd204bRx.vhd:84
TPD_Gtime := 1 ns
Definition: JesdTxTest.vhd:33
out dataOutsl
in r_jesdGtRxjesdGtRxLaneType
Definition: JesdRxLane.vhd:94
in devRst_isl
Definition: JesdTxTest.vhd:39
in dly_islv( DLY_WIDTH_G- 1 downto 0)
in nSyncAny_isl
Definition: JesdRxLane.vhd:103
in clearErr_isl
Definition: JesdRxLane.vhd:85
F_Gpositive := 2
in axilReadMasterAxiLiteReadMasterType
Definition: Jesd204bRx.vhd:74
out txDataValid_osl
Definition: JesdTxTest.vhd:57
DLY_WIDTH_Gpositive := 5
out nSync_osl
Definition: Jesd204bRx.vhd:105
out lmfc_osl
Definition: JesdLmfcGen.vhd:51
slv( 1 downto 0) := "10" AXI_RESP_SLVERR_C
Definition: AxiLitePkg.vhd:36
out sysrefRe_osl
Definition: JesdLmfcGen.vhd:49
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
Definition: Jesd204bRx.vhd:54
in axilWriteMasterAxiLiteWriteMasterType := AXI_LITE_WRITE_MASTER_INIT_C
Definition: JesdRxReg.vhd:46
array(natural range <> ) of slv(( GT_WORD_SIZE_C)- 1 downto 0) alignTxArray
Definition: Jesd204bPkg.vhd:95
F_Gpositive := 2
Definition: Jesd204bRx.vhd:59
out axilReadSlaveAxiLiteReadSlaveType
Definition: Jesd204bRx.vhd:75
in thresoldHigh_islv(( F_G* 8)- 1 downto 0)
out subClass_osl
Definition: JesdRxReg.vhd:68
in devRst_isl
Definition: Jesd204bRx.vhd:90
in enable_isl
Definition: JesdTxTest.vhd:45
out rxPolarityslv( L_G- 1 downto 0)
Definition: Jesd204bRx.vhd:102
in nSync_isl
Definition: JesdTxTest.vhd:51
AxiLiteReadMasterType
Definition: AxiLitePkg.vhd:59
in nSync_isl
Definition: JesdLmfcGen.vhd:45
in axiClksl
Definition: Jesd204bRx.vhd:70
out dataValid_osl
Definition: JesdRxLane.vhd:113
in lmfc_isl
Definition: JesdTxTest.vhd:48
out replEnable_osl
Definition: JesdRxReg.vhd:61
TPD_Gtime := 1 ns
positive := 4 GT_WORD_SIZE_C
Definition: Jesd204bPkg.vhd:31
array(natural range <> ) of AxiStreamCtrlType AxiStreamCtrlArray
out sysrefDlyRx_oslv( SYSRF_DLY_WIDTH_C- 1 downto 0)
Definition: JesdRxReg.vhd:59
TPD_Gtime := 1 ns
Definition: JesdRxLane.vhd:63
F_Gpositive := 2
Definition: JesdRxLane.vhd:66
in devRst_isl
Definition: JesdRxLane.vhd:76
out thresoldHighArr_oSlv16Array( L_G- 1 downto 0)
Definition: JesdRxReg.vhd:67
in sysRef_isl
Definition: Jesd204bRx.vhd:93
out pulse_oslv( L_G- 1 downto 0)
Definition: Jesd204bRx.vhd:108
in replEnable_isl
Definition: JesdRxLane.vhd:89
in scrEnable_isl
Definition: JesdRxLane.vhd:90
in axilReadMasterAxiLiteReadMasterType := AXI_LITE_READ_MASTER_INIT_C
Definition: JesdRxReg.vhd:44
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
Definition: JesdRxReg.vhd:33
array(natural range <> ) of AxiStreamMasterType AxiStreamMasterArray
OUT_POLARITY_Gsl := '1'
out gtRxReset_oslv( L_G- 1 downto 0)
Definition: Jesd204bRx.vhd:100
out invertData_oslv( L_G- 1 downto 0)
Definition: JesdRxReg.vhd:63
in axilWriteMasterAxiLiteWriteMasterType
Definition: Jesd204bRx.vhd:76
in axiRst_isl
Definition: JesdRxReg.vhd:41
array(natural range <> ) of slv( 15 downto 0) Slv16Array
Definition: StdRtlPkg.vhd:395
in devClk_isl
Definition: Jesd204bRx.vhd:89
positive := 5 SYSRF_DLY_WIDTH_C
Definition: Jesd204bPkg.vhd:44
in sysRef_isl
Definition: JesdRxLane.vhd:82
AxiStreamCtrlType :=(pause => '0',overflow => '0',idle => '1') AXI_STREAM_CTRL_UNUSED_C
in devRst_isl
Definition: JesdRxReg.vhd:51
AxiLiteReadSlaveType
Definition: AxiLitePkg.vhd:85
out sampleData_oslv(( GT_WORD_SIZE_C* 8)- 1 downto 0)
Definition: JesdRxLane.vhd:115
out status_oslv(( RX_STAT_WIDTH_C)- 1 downto 0)
Definition: JesdRxLane.vhd:91
in r_jesdGtRxArrjesdGtRxLaneTypeArray( L_G- 1 downto 0)
Definition: Jesd204bRx.vhd:99
in axiRstsl
Definition: Jesd204bRx.vhd:71
in linkErrMask_islv( 5 downto 0) :=( others => '1')
Definition: JesdRxLane.vhd:100
out r_jesdGtRxjesdGtRxLaneType
Definition: JesdTxTest.vhd:62
out nSync_osl
Definition: JesdRxLane.vhd:110
in thresoldLow_islv(( F_G* 8)- 1 downto 0)
in nSyncAnyD1_isl
Definition: JesdRxLane.vhd:104
F_Gpositive := 2
Definition: JesdLmfcGen.vhd:39
in enable_isl
Definition: JesdRxLane.vhd:88
in lmfc_isl
Definition: JesdRxLane.vhd:97
RST_ASYNC_Gboolean := false
in align_islv( GT_WORD_SIZE_C- 1 downto 0)
Definition: JesdTxTest.vhd:55
array(natural range <> ) of jesdGtRxLaneType jesdGtRxLaneTypeArray
Definition: Jesd204bPkg.vhd:88
out dlyTxArr_oSlv4Array( L_G- 1 downto 0)
Definition: JesdRxReg.vhd:64
in inv_isl := '0'
Definition: JesdRxLane.vhd:107
out leds_oslv( 1 downto 0)
Definition: Jesd204bRx.vhd:110
out rxPolarityslv( L_G- 1 downto 0)
Definition: JesdRxReg.vhd:73
in rxCtrlArr_iAxiStreamCtrlArray( L_G- 1 downto 0) :=( others => AXI_STREAM_CTRL_UNUSED_C)
Definition: Jesd204bRx.vhd:81
in statusRxArr_irxStatuRegisterArray( L_G- 1 downto 0)
Definition: JesdRxReg.vhd:55
L_Gpositive range 1 to 32:= 2
Definition: JesdRxReg.vhd:37
array(natural range <> ) of slv( 3 downto 0) Slv4Array
Definition: StdRtlPkg.vhd:407
out axilWriteSlaveAxiLiteWriteSlaveType
Definition: Jesd204bRx.vhd:77
out axilReadSlaveAxiLiteReadSlaveType
Definition: JesdRxReg.vhd:45
K_Gpositive := 32
Definition: JesdRxLane.vhd:70
std_logic_vector slv
Definition: StdRtlPkg.vhd:29