SURF  1.0
Jesd204bTx.vhd
Go to the documentation of this file.
1 -------------------------------------------------------------------------------
2 -- File : Jesd204bTx.vhd
3 -- Company : SLAC National Accelerator Laboratory
4 -- Created : 2015-04-14
5 -------------------------------------------------------------------------------
6 -- Description: JESD204b multi-lane transmitter module
7 -- Transmitter JESD204b module.
8 -- Supports a subset of features from JESD204b standard.
9 -- Supports sub-class 1 deterministic latency.
10 -- Supports sub-class 0 non deterministic latency.
11 -- Features:
12 -- - Synchronization of LMFC to SYSREF
13 -- - Multi-lane operation (L_G: 1-32)
14 --
15 -- Warning: Scrambling support has not been tested on the TX module yet.
16 --
17 -- Note: extSampleDataArray_i should be little endian and not byte swapped
18 -- First sample in time: sampleData_i(15 downto 0)
19 -- Second sample in time: sampleData_i(31 downto 16)
20 -------------------------------------------------------------------------------
21 -- This file is part of 'SLAC Firmware Standard Library'.
22 -- It is subject to the license terms in the LICENSE.txt file found in the
23 -- top-level directory of this distribution and at:
24 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html.
25 -- No part of 'SLAC Firmware Standard Library', including this file,
26 -- may be copied, modified, propagated, or distributed except according to
27 -- the terms contained in the LICENSE.txt file.
28 -------------------------------------------------------------------------------
29 
30 library ieee;
31 use ieee.std_logic_1164.all;
32 use ieee.std_logic_arith.all;
33 use ieee.std_logic_unsigned.all;
34 
35 use work.StdRtlPkg.all;
36 use work.AxiLitePkg.all;
37 use work.AxiStreamPkg.all;
38 use work.SsiPkg.all;
39 
40 use work.Jesd204bPkg.all;
41 
42 --! @see entity
43  --! @ingroup protocols_jesd204b
44 entity Jesd204bTx is
45  generic (
46  TPD_G : time := 1 ns;
48  -- Register sample data at input and/or output
49  INPUT_REG_G : boolean := false;
50  OUTPUT_REG_G : boolean := false;
51  -- Number of bytes in a frame
52  F_G : positive := 2;
53  -- Number of frames in a multi frame
54  K_G : positive := 32;
55  -- Number of TX lanes (1 to 32)
56  L_G : positive range 1 to 32 := 2);
57  port (
58  -- AXI interface
59  -- Clocks and Resets
60  axiClk : in sl;
61  axiRst : in sl;
62 
63  -- AXI-Lite Register Interface
68 
69  -- Legacy Interface that we will remove in the future
72 
73  -- JESD
74  -- Clocks and Resets
75  devClk_i : in sl;
76  devRst_i : in sl;
77 
78  -- SYSREF for subclass 1 fixed latency
79  sysRef_i : in sl;
80 
81  -- Synchronization input combined from all receivers
82  nSync_i : in sl;
83 
84  -- External sample data input
86 
87  -- GT is ready to transmit data after reset
88  gtTxReset_o : out slv(L_G-1 downto 0);
89  gtTxReady_i : in slv(L_G-1 downto 0);
90 
91  -- Data and character inputs from GT (transceivers)
93 
94  -- TX Configurable Driver Ports
95  txDiffCtrl : out Slv8Array(L_G-1 downto 0);
96  txPostCursor : out Slv8Array(L_G-1 downto 0);
97  txPreCursor : out Slv8Array(L_G-1 downto 0);
98  txPolarity : out slv(L_G-1 downto 0);
99  loopback : out slv(L_G-1 downto 0);
100  txEnable : out slv(L_G-1 downto 0);
101  txEnableL : out slv(L_G-1 downto 0);
102 
103  -- Debug signals
104  pulse_o : out slv(L_G-1 downto 0);
105  leds_o : out slv(1 downto 0));
106 end Jesd204bTx;
107 
108 architecture rtl of Jesd204bTx is
109 
110  -- Internal signals
111 
112  -- Local Multi Frame Clock
113  signal s_lmfc : sl;
114 
115  -- Control and status from AxiLite
116  ------------------------------------------------------------
117  signal s_sysrefDlyTx : slv(SYSRF_DLY_WIDTH_C-1 downto 0);
118  signal s_enableTx : slv(L_G-1 downto 0);
119  signal s_replEnable : sl;
120  signal s_scrEnable : sl;
121  signal s_statusTxArr : txStatuRegisterArray(L_G-1 downto 0);
122  signal s_dataValid : slv(L_G-1 downto 0);
123  signal s_invertData : slv(L_G-1 downto 0);
124 
125  -- JESD subclass selection (from AXI lite register)
126  signal s_subClass : sl;
127  -- User reset (from AXI lite register)
128  signal s_gtReset : sl;
129  signal s_clearErr : sl;
130  signal s_sigTypeArr : Slv2Array(L_G-1 downto 0);
131  -- Test signal control
132  signal s_rampStep : slv(PER_STEP_WIDTH_C-1 downto 0);
133  signal s_squarePeriod : slv(PER_STEP_WIDTH_C-1 downto 0);
134  signal s_enableTestSig : sl;
135 
136  signal s_posAmplitude : slv(F_G*8-1 downto 0);
137  signal s_negAmplitude : slv(F_G*8-1 downto 0);
138 
139  -- Data out multiplexer
140  signal s_testDataArr : sampleDataArray(L_G-1 downto 0);
141  signal s_extDataArraySwap : sampleDataArray(L_G-1 downto 0);
142 
143  signal s_regSampleDataIn : sampleDataArray(L_G-1 downto 0);
144  signal s_regSampleDataOut : sampleDataArray(L_G-1 downto 0);
145 
146  signal s_sampleDataArr : sampleDataArray(L_G-1 downto 0);
147 
148  -- Sysref conditioning
149  signal s_sysrefSync : sl;
150  signal s_sysrefRe : sl;
151  signal s_sysrefD : sl;
152 
153  -- Sync conditioning
154  signal s_nSync : sl;
155  signal s_invertSync : sl;
156  signal s_nSyncSync : sl;
157 
158  -- Select output
159  signal s_muxOutSelArr : Slv3Array(L_G-1 downto 0);
160  signal s_testEn : slv(L_G-1 downto 0);
161  signal s_jesdGtTxArr : jesdGtTxLaneTypeArray(L_G-1 downto 0);
162 
163 begin
164 
165  -- Legacy Interface that we will remove in the future
167 
168  ----------------------
169  -- Input data register
170  ----------------------
171  GEN_REG_I : if (INPUT_REG_G = true) generate
172  GEN_LANE : for I in L_G-1 downto 0 generate
173  process(devClk_i)
174  begin
175  if rising_edge(devClk_i) then
176  s_regSampleDataIn(I) <= extSampleDataArray_i(I) after TPD_G;
177  end if;
178  end process;
179  end generate GEN_LANE;
180  end generate GEN_REG_I;
181 
182  GEN_N_REG_I : if (INPUT_REG_G = false) generate
183  s_regSampleDataIn <= extSampleDataArray_i;
184  end generate GEN_N_REG_I;
185 
186  GEN_VALID : for I in L_G-1 downto 0 generate
187  s_dataValid(I) <= s_statusTxArr(I)(1);
188  end generate GEN_VALID;
189 
190  txEnable <= s_enableTx;
191  txEnableL <= not(s_enableTx);
192 
193  ---------------------
194  -- AXI-Lite registers
195  ---------------------
196  U_Reg : entity work.JesdTxReg
197  generic map (
198  TPD_G => TPD_G,
200  L_G => L_G,
201  F_G => F_G)
202  port map (
203  axiClk_i => axiClk,
204  axiRst_i => axiRst,
209  -- DevClk domain
210  devClk_i => devClk_i,
211  devRst_i => devRst_i,
212  statusTxArr_i => s_statusTxArr,
213  muxOutSelArr_o => s_muxOutSelArr,
214  sysrefDlyTx_o => s_sysrefDlyTx,
215  enableTx_o => s_enableTx,
216  replEnable_o => s_replEnable,
217  scrEnable_o => s_scrEnable,
218  invertData_o => s_invertData,
219  subClass_o => s_subClass,
220  gtReset_o => s_gtReset,
221  clearErr_o => s_clearErr,
222  sigTypeArr_o => s_sigTypeArr,
223  posAmplitude_o => s_posAmplitude,
224  negAmplitude_o => s_negAmplitude,
225  rampStep_o => s_rampStep,
226  squarePeriod_o => s_squarePeriod,
227  enableTestSig_o => s_enableTestSig,
228  invertSync_o => s_invertSync,
229  -- TX Configurable Driver Ports
234  loopback => loopback);
235 
236  GEN_TEST : for I in L_G-1 downto 0 generate
237 
238  -- Check the test pattern enable bit
239  s_testEn(I) <= s_dataValid(I) and s_enableTestSig;
240 
241  U_TestStream : entity work.JesdTestStreamTx
242  generic map (
243  TPD_G => TPD_G,
244  F_G => F_G)
245  port map (
246  clk => devClk_i,
247  rst => devRst_i,
248  enable_i => s_testEn(I),
249  rampStep_i => s_rampStep,
250  squarePeriod_i => s_squarePeriod,
251  posAmplitude_i => s_posAmplitude,
252  negAmplitude_i => s_negAmplitude,
253  type_i => s_sigTypeArr(I),
254  pulse_o => pulse_o(I),
255  sampleData_o => s_testDataArr(I));
256 
257  end generate GEN_TEST;
258 
259  -- Sample data mux
260  GEN_MUX : for I in L_G-1 downto 0 generate
261 
262  -- Swap endian (the module is built to use big endian data but the interface is little endian)
263  s_extDataArraySwap(I) <= endianSwapSlv(s_regSampleDataIn(I), GT_WORD_SIZE_C);
264 
265  -- Separate mux for separate lane
266  process(devClk_i)
267  begin
268  if rising_edge(devClk_i) then
269  if (s_muxOutSelArr(I) = "000") then
270  s_sampleDataArr(I) <= outSampleZero(F_G, GT_WORD_SIZE_C) after TPD_G;
271  elsif (s_muxOutSelArr(I) = "001") then
272  s_sampleDataArr(I) <= s_extDataArraySwap(I) after TPD_G;
273  elsif (s_muxOutSelArr(I) = "010") then
274  s_sampleDataArr(I) <= (others => '1') after TPD_G;
275  else
276  s_sampleDataArr(I) <= s_testDataArr(I) after TPD_G;
277  end if;
278  end if;
279  end process;
280 
281  end generate GEN_MUX;
282 
283  -----------------------------------------------------------
284  -- SYSREF, SYNC, and LMFC
285  -----------------------------------------------------------
286 
287  -- Synchronize SYSREF input to devClk_i
288  Synchronizer_sysref_INST : entity work.Synchronizer
289  generic map (
290  TPD_G => TPD_G,
291  RST_POLARITY_G => '1',
292  OUT_POLARITY_G => '1',
293  RST_ASYNC_G => false,
294  STAGES_G => 2,
295  BYPASS_SYNC_G => false,
296  INIT_G => "0")
297  port map (
298  clk => devClk_i,
299  rst => devRst_i,
300  dataIn => sysref_i,
301  dataOut => s_sysrefSync);
302 
303  -- Invert/or not nSync signal (control from axil)
304  s_nSync <= nSync_i when s_invertSync = '0' else not nSync_i;
305 
306  -- Synchronize nSync input to devClk_i
307  Synchronizer_nsync_INST : entity work.Synchronizer
308  generic map (
309  TPD_G => TPD_G,
310  RST_POLARITY_G => '1',
311  OUT_POLARITY_G => '1',
312  RST_ASYNC_G => false,
313  STAGES_G => 2,
314  BYPASS_SYNC_G => false,
315  INIT_G => "0")
316  port map (
317  clk => devClk_i,
318  rst => devRst_i,
319  dataIn => s_nSync,
320  dataOut => s_nSyncSync);
321 
322  -- Delay SYSREF input (for 1 to 32 c-c)
323  U_SysrefDly : entity work.JesdSysrefDly
324  generic map (
325  TPD_G => TPD_G,
327  port map (
328  clk => devClk_i,
329  rst => devRst_i,
330  dly_i => s_sysrefDlyTx,
331  sysref_i => s_sysrefSync,
332  sysref_o => s_sysrefD
333  );
334 
335  -- LMFC period generator aligned to SYSREF input
336  U_LmfcGen : entity work.JesdLmfcGen
337  generic map (
338  TPD_G => TPD_G,
339  K_G => K_G,
340  F_G => F_G)
341  port map (
342  clk => devClk_i,
343  rst => devRst_i,
344  nSync_i => s_nSyncSync,
345  sysref_i => s_sysrefD,
346  sysrefRe_o => s_sysrefRe, -- Rising-edge of SYSREF OUT
347  lmfc_o => s_lmfc);
348 
349  ----------------------------
350  -- Transmitter modules (L_G)
351  ----------------------------
352  GEN_TX : for I in L_G-1 downto 0 generate
353  -- JESD Transmitter modules (one module per Lane)
354  U_JesdTxLane : entity work.JesdTxLane
355  generic map (
356  TPD_G => TPD_G,
357  F_G => F_G,
358  K_G => K_G)
359  port map (
360  devClk_i => devClk_i,
361  devRst_i => devRst_i,
362  subClass_i => s_subClass, -- From AXI lite
363  enable_i => s_enableTx(I), -- From AXI lite
364  replEnable_i => s_replEnable, -- From AXI lite
365  scrEnable_i => s_scrEnable, -- From AXI lite
366  inv_i => s_invertData(I), -- From AXI lite
367  lmfc_i => s_lmfc,
368  nSync_i => s_nSyncSync,
369  gtTxReady_i => gtTxReady_i(I),
370  sysRef_i => s_sysrefRe,
371  status_o => s_statusTxArr(I), -- To AXI lite
372  sampleData_i => s_sampleDataArr(I),
373  r_jesdGtTx => s_jesdGtTxArr(I));
374  end generate GEN_TX;
375 
376  ------------------
377  -- Output register
378  ------------------
379  GEN_REG_O : if (OUTPUT_REG_G = true) generate
380  GEN_LANE : for I in L_G-1 downto 0 generate
381  process(devClk_i)
382  begin
383  if rising_edge(devClk_i) then
384  r_jesdGtTxArr(I).data <= s_jesdGtTxArr(I).data after TPD_G;
385  r_jesdGtTxArr(I).dataK <= s_jesdGtTxArr(I).dataK after TPD_G;
386  end if;
387  end process;
388  end generate GEN_LANE;
389  end generate GEN_REG_O;
390 
391  GEN_N_REG_O : if (OUTPUT_REG_G = false) generate
392  r_jesdGtTxArr <= s_jesdGtTxArr;
393  end generate GEN_N_REG_O;
394 
395  -- Output assignment
396  gtTxReset_o <= (others => s_gtReset);
397  leds_o <= uOr(s_dataValid) & s_nSyncSync;
398 
399 end rtl;
in axiClk_isl
Definition: JesdTxReg.vhd:39
slv( 127 downto 0) data
Definition: SsiPkg.vhd:67
INPUT_REG_Gboolean := false
Definition: Jesd204bTx.vhd:49
out loopbackslv( L_G- 1 downto 0)
Definition: JesdTxReg.vhd:80
INIT_Gslv := "0"
array(natural range <> ) of slv(( GT_WORD_SIZE_C* 8)- 1 downto 0) sampleDataArray
Definition: Jesd204bPkg.vhd:91
K_Gpositive := 32
Definition: JesdTxLane.vhd:54
array(natural range <> ) of AxiStreamSlaveType AxiStreamSlaveArray
TPD_Gtime := 1 ns
Definition: Jesd204bTx.vhd:46
in devClk_isl
Definition: JesdTxReg.vhd:49
out negAmplitude_oslv( F_G* 8- 1 downto 0)
Definition: JesdTxReg.vhd:73
array(natural range <> ) of slv( 2 downto 0) Slv3Array
Definition: StdRtlPkg.vhd:408
out scrEnable_osl
Definition: JesdTxReg.vhd:62
K_Gpositive := 32
Definition: Jesd204bTx.vhd:54
TPD_Gtime := 1 ns
Definition: JesdLmfcGen.vhd:37
in devClk_isl
Definition: JesdTxLane.vhd:59
in axilReadMasterAxiLiteReadMasterType
Definition: Jesd204bTx.vhd:64
out txPreCursorSlv8Array( L_G- 1 downto 0)
Definition: JesdTxReg.vhd:78
TPD_Gtime := 1 ns
AxiLiteWriteMasterType
Definition: AxiLitePkg.vhd:111
std_logic sl
Definition: StdRtlPkg.vhd:28
positive := 16 PER_STEP_WIDTH_C
Definition: Jesd204bPkg.vhd:54
in rstsl :=not RST_POLARITY_G
in subClass_isl
Definition: JesdTxLane.vhd:63
array(natural range <> ) of slv(( TX_STAT_WIDTH_C)- 1 downto 0) txStatuRegisterArray
Definition: Jesd204bPkg.vhd:94
out txPreCursorSlv8Array( L_G- 1 downto 0)
Definition: Jesd204bTx.vhd:97
TPD_Gtime := 1 ns
Definition: JesdTxReg.vhd:32
in nSync_isl
Definition: Jesd204bTx.vhd:82
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 loopbackslv( L_G- 1 downto 0)
Definition: Jesd204bTx.vhd:99
BYPASS_SYNC_Gboolean := false
K_Gpositive := 32
Definition: JesdLmfcGen.vhd:38
out axilWriteSlaveAxiLiteWriteSlaveType
Definition: JesdTxReg.vhd:46
in squarePeriod_islv( PER_STEP_WIDTH_C- 1 downto 0)
F_Gpositive := 2
Definition: Jesd204bTx.vhd:52
out sampleData_oslv( GT_WORD_SIZE_C* 8- 1 downto 0)
in sysref_isl
Definition: JesdLmfcGen.vhd:46
slv( GT_WORD_SIZE_C- 1 downto 0) dataK
Definition: Jesd204bPkg.vhd:63
STAGES_Gpositive := 2
out invertSync_osl
Definition: JesdTxReg.vhd:69
in negAmplitude_islv( F_G* 8- 1 downto 0)
L_Gpositive range 1 to 32:= 2
Definition: Jesd204bTx.vhd:56
out txEnableLslv( L_G- 1 downto 0)
Definition: Jesd204bTx.vhd:101
out r_jesdGtTxArrjesdGtTxLaneTypeArray( L_G- 1 downto 0)
Definition: Jesd204bTx.vhd:92
RST_POLARITY_Gsl := '1'
out sigTypeArr_oSlv2Array( L_G- 1 downto 0)
Definition: JesdTxReg.vhd:58
out clearErr_osl
Definition: JesdTxReg.vhd:68
out gtTxReset_oslv( L_G- 1 downto 0)
Definition: Jesd204bTx.vhd:88
out pulse_oslv( L_G- 1 downto 0)
Definition: Jesd204bTx.vhd:104
out squarePeriod_oslv( PER_STEP_WIDTH_C- 1 downto 0)
Definition: JesdTxReg.vhd:65
out gtReset_osl
Definition: JesdTxReg.vhd:67
out dataOutsl
in dly_islv( DLY_WIDTH_G- 1 downto 0)
array(natural range <> ) of jesdGtTxLaneType jesdGtTxLaneTypeArray
Definition: Jesd204bPkg.vhd:89
out axilReadSlaveAxiLiteReadSlaveType
Definition: Jesd204bTx.vhd:65
in devClk_isl
Definition: Jesd204bTx.vhd:75
out txPostCursorSlv8Array( L_G- 1 downto 0)
Definition: Jesd204bTx.vhd:96
DLY_WIDTH_Gpositive := 5
in devRst_isl
Definition: Jesd204bTx.vhd:76
out lmfc_osl
Definition: JesdLmfcGen.vhd:51
out enableTestSig_osl
Definition: JesdTxReg.vhd:70
slv( 1 downto 0) := "10" AXI_RESP_SLVERR_C
Definition: AxiLitePkg.vhd:36
out sysrefRe_osl
Definition: JesdLmfcGen.vhd:49
out sysrefDlyTx_oslv( SYSRF_DLY_WIDTH_C- 1 downto 0)
Definition: JesdTxReg.vhd:59
in axiRstsl
Definition: Jesd204bTx.vhd:61
in axiClksl
Definition: Jesd204bTx.vhd:60
in axilWriteMasterAxiLiteWriteMasterType := AXI_LITE_WRITE_MASTER_INIT_C
Definition: JesdTxReg.vhd:45
out status_oslv( TX_STAT_WIDTH_C- 1 downto 0)
Definition: JesdTxLane.vhd:84
out subClass_osl
Definition: JesdTxReg.vhd:66
in nSync_isl
Definition: JesdTxLane.vhd:75
L_Gpositive range 1 to 16:= 2
Definition: JesdTxReg.vhd:35
in type_islv( 1 downto 0)
AxiLiteReadMasterType
Definition: AxiLitePkg.vhd:59
in nSync_isl
Definition: JesdLmfcGen.vhd:45
TPD_Gtime := 1 ns
Definition: JesdTxLane.vhd:51
F_Gpositive := 2
Definition: JesdTxLane.vhd:52
out txPolarityslv( L_G- 1 downto 0)
Definition: JesdTxReg.vhd:79
in extSampleDataArray_isampleDataArray( L_G- 1 downto 0)
Definition: Jesd204bTx.vhd:85
in devRst_isl
Definition: JesdTxLane.vhd:60
in replEnable_isl
Definition: JesdTxLane.vhd:67
in scrEnable_isl
Definition: JesdTxLane.vhd:68
out replEnable_osl
Definition: JesdTxReg.vhd:61
TPD_Gtime := 1 ns
positive := 4 GT_WORD_SIZE_C
Definition: Jesd204bPkg.vhd:31
in inv_isl
Definition: JesdTxLane.vhd:69
in txAxisMasterArr_iAxiStreamMasterArray( L_G- 1 downto 0) :=( others => AXI_STREAM_MASTER_INIT_C)
Definition: Jesd204bTx.vhd:70
in axilReadMasterAxiLiteReadMasterType := AXI_LITE_READ_MASTER_INIT_C
Definition: JesdTxReg.vhd:43
in statusTxArr_itxStatuRegisterArray( L_G- 1 downto 0)
Definition: JesdTxReg.vhd:54
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
Definition: JesdTxReg.vhd:33
array(natural range <> ) of AxiStreamMasterType AxiStreamMasterArray
OUT_POLARITY_Gsl := '1'
out txDiffCtrlSlv8Array( L_G- 1 downto 0)
Definition: Jesd204bTx.vhd:95
in axiRst_isl
Definition: JesdTxReg.vhd:40
out invertData_oslv( L_G- 1 downto 0)
Definition: JesdTxReg.vhd:63
out txDiffCtrlSlv8Array( L_G- 1 downto 0)
Definition: JesdTxReg.vhd:76
in sampleData_islv(( GT_WORD_SIZE_C* 8)- 1 downto 0)
Definition: JesdTxLane.vhd:87
positive := 5 SYSRF_DLY_WIDTH_C
Definition: Jesd204bPkg.vhd:44
out txPolarityslv( L_G- 1 downto 0)
Definition: Jesd204bTx.vhd:98
in devRst_isl
Definition: JesdTxReg.vhd:50
AxiLiteReadSlaveType
Definition: AxiLitePkg.vhd:85
F_Gpositive := 2
Definition: JesdTxReg.vhd:36
out txPostCursorSlv8Array( L_G- 1 downto 0)
Definition: JesdTxReg.vhd:77
in enable_isl
Definition: JesdTxLane.vhd:66
in lmfc_isl
Definition: JesdTxLane.vhd:72
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
Definition: Jesd204bTx.vhd:47
in sysRef_isl
Definition: JesdTxLane.vhd:81
out r_jesdGtTxjesdGtTxLaneType
Definition: JesdTxLane.vhd:91
in axilWriteMasterAxiLiteWriteMasterType
Definition: Jesd204bTx.vhd:66
in posAmplitude_islv( F_G* 8- 1 downto 0)
out txEnableslv( L_G- 1 downto 0)
Definition: Jesd204bTx.vhd:100
F_Gpositive := 2
Definition: JesdLmfcGen.vhd:39
out leds_oslv( 1 downto 0)
Definition: Jesd204bTx.vhd:105
AxiStreamSlaveType :=(tReady => '1') AXI_STREAM_SLAVE_FORCE_C
RST_ASYNC_Gboolean := false
in gtTxReady_islv( L_G- 1 downto 0)
Definition: Jesd204bTx.vhd:89
out axilWriteSlaveAxiLiteWriteSlaveType
Definition: Jesd204bTx.vhd:67
in rampStep_islv( PER_STEP_WIDTH_C- 1 downto 0)
array(natural range <> ) of slv( 7 downto 0) Slv8Array
Definition: StdRtlPkg.vhd:403
in sysRef_isl
Definition: Jesd204bTx.vhd:79
_library_ ieeeieee
Definition: Jesd204bRx.vhd:32
out posAmplitude_oslv( F_G* 8- 1 downto 0)
Definition: JesdTxReg.vhd:72
out txAxisSlaveArr_oAxiStreamSlaveArray( L_G- 1 downto 0)
Definition: Jesd204bTx.vhd:71
out muxOutSelArr_oSlv3Array( L_G- 1 downto 0)
Definition: JesdTxReg.vhd:57
in gtTxReady_isl
Definition: JesdTxLane.vhd:78
out rampStep_oslv( PER_STEP_WIDTH_C- 1 downto 0)
Definition: JesdTxReg.vhd:64
out axilReadSlaveAxiLiteReadSlaveType
Definition: JesdTxReg.vhd:44
std_logic_vector slv
Definition: StdRtlPkg.vhd:29
OUTPUT_REG_Gboolean := false
Definition: Jesd204bTx.vhd:50
array(natural range <> ) of slv( 1 downto 0) Slv2Array
Definition: StdRtlPkg.vhd:409
out enableTx_oslv( L_G- 1 downto 0)
Definition: JesdTxReg.vhd:60