SURF  1.0
RssiAxiLiteRegItf.vhd
Go to the documentation of this file.
1 -------------------------------------------------------------------------------
2 -- File : RssiAxiLiteRegItf.vhd
3 -- Company : SLAC National Accelerator Laboratory
4 -- Created : 2016-01-15
5 -- Last update: 2016-01-19
6 -------------------------------------------------------------------------------
7 -- Description: Register decoding for RSSI core
8 -- 0x00 (RW)- Control register [4:0]:
9 -- bit 0: Open connection request (Default '0')
10 -- bit 1: Close connection request (Default '0')
11 -- bit 2: Mode (Default '0'):
12 -- - '0': Use internal parameters from generics
13 -- - '1': Use parameters from Axil
14 -- bit 3: Header checksum enable (Default '1')
15 -- bit 4: Inject fault to the next packet header checksum (Default '0')
16 -- Acts on rising edge - injects exactly one fault in next segment (ACK, NULL, or DATA)
17 -- 0x01 (RW)- Initial sequence number [7:0] (Default x"80")
18 -- 0x02 (RW)- Version register [3:0](Default x"1")
19 -- 0x03 (RW)- Maximum out standing segments [7:0](Default "008"):
20 -- Defines the max number of segments in the RSSI receiver buffer
21 -- 0x04 (RW)- Maximum segment size [15:0](Default x"0400")
22 -- Defines the size of segment buffer! Number of bytes!
23 -- 0x05 (RW)- Retransmission timeout [15:0](Default 50)
24 -- Unit depends on TIMEOUT_UNIT_G
25 -- 0x06 (RW)- Cumulative acknowledgment timeout [15:0](Default 50)
26 -- Unit depends on TIMEOUT_UNIT_G
27 -- 0x07 (RW)- Null segment timeout [15:0](Default 50)
28 -- Unit depends on TIMEOUT_UNIT_G
29 -- Server: Close connection if Null segment missed!
30 -- Client: Transmit Null segment when nullSegTout/2 reached!
31 -- 0x08 (RW)- Maximum number of retransmissions [7:0](Default x"02")
32 -- How many times segments are retransmitted before the connection gets broken.
33 -- 0x09 (RW)- Maximum cumulative acknowledgments [7:0](Default x"03")
34 -- When more than maxCumAck are received and not acknowledged the
35 -- ACK packet will be sent to acknowledge the received packets. Even though the
36 -- cumulative acknowledgment timeout has not been reached yet!
37 -- 0x0A (RW)- Max out of sequence segments (EACK) [7:0](Default x"03")
38 -- Currently not used TBD
39 -- 0x0B (RW)- Connection ID [31:0](Default x"12345678")
40 -- Every connection should have unique connection ID.
41 -- Statuses
42 -- 0x10 (R)- Status register [5:0]:
43 -- bit(0) : Connection Active
44 -- bit(1) : Maximum retransmissions exceeded retransMax
45 -- bit(2) : Null timeout reached (server) r.nullTout
46 -- bit(3) : Error in acknowledgment mechanism
47 -- bit(4) : SSI Frame length too long
48 -- bit(5) : Connection to peer timed out
49 -- bit(6) : Parameters from peer rejected (Client) or new proposed(Server)
50 -- 0x11 (R)- Number of valid segments [31:0]:
51 -- The value rests to 0 when new connection open is requested.
52 -- 0x12 (R)- Number of dropped segments [31:0]:
53 -- The value rests to 0 when new connection open is requested.
54 -- 0x13 (R)- Counts all retransmission requests within the active connection [31:0]:
55 -- The value rests to 0 when new connection open is requested.
56 -- 0x14 (R)- Counts all reconnections from reset [31:0]:
57 -- The value rests to 0 when module is reset.
58 ------------------------------------------------------------------------------
59 -- This file is part of 'SLAC Firmware Standard Library'.
60 -- It is subject to the license terms in the LICENSE.txt file found in the
61 -- top-level directory of this distribution and at:
62 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html.
63 -- No part of 'SLAC Firmware Standard Library', including this file,
64 -- may be copied, modified, propagated, or distributed except according to
65 -- the terms contained in the LICENSE.txt file.
66 -------------------------------------------------------------------------------
67 
68 library ieee;
69 use ieee.std_logic_1164.all;
70 use ieee.std_logic_unsigned.all;
71 use ieee.std_logic_arith.all;
72 
73 use work.StdRtlPkg.all;
74 use work.AxiLitePkg.all;
75 use work.RssiPkg.all;
76 
77 --! @see entity
78  --! @ingroup protocols_rssi
80 generic (
81  -- General Configurations
82  TPD_G : time := 1 ns;
84  SEGMENT_ADDR_SIZE_G : positive := 3; -- 2^SEGMENT_ADDR_SIZE_G = Number of 64 bit wide data words
85  -- Defaults form generics
86  TIMEOUT_UNIT_G : real := 1.0E-6;
87  INIT_SEQ_N_G : natural := 16#80#;
88  CONN_ID_G : positive := 16#12345678#;
89  VERSION_G : positive := 1;
90  HEADER_CHKSUM_EN_G : boolean := true;
91  MAX_NUM_OUTS_SEG_G : positive := 8; -- <=(2**WINDOW_ADDR_SIZE_G)
92  MAX_SEG_SIZE_G : positive := 1024; -- Number of bytes
93  RETRANS_TOUT_G : positive := 50; -- unit depends on TIMEOUT_UNIT_G
94  ACK_TOUT_G : positive := 25; -- unit depends on TIMEOUT_UNIT_G
95  NULL_TOUT_G : positive := 200; -- unit depends on TIMEOUT_UNIT_G
96  MAX_RETRANS_CNT_G : positive := 2;
97  MAX_CUM_ACK_CNT_G : positive := 3;
98  MAX_OUT_OF_SEQUENCE_G : natural := 3);
99 
100 port (
101  -- AXI Clk
102  axiClk_i : in sl;
103  axiRst_i : in sl;
104 
105  -- Axi-Lite Register Interface (locClk domain)
110 
111  -- Rssi Clk
112  devClk_i : in sl;
113  devRst_i : in sl;
114 
115  -- Registers
116  -- Control (RW)
117  openRq_o : out sl;
118  closeRq_o : out sl;
119  mode_o : out sl;
121 
122  initSeqN_o : out slv(7 downto 0);
124 
125  -- Status (RO)
126  frameRate_i : in Slv32Array(1 downto 0);
127  bandwidth_i : in Slv64Array(1 downto 0);
128  status_i : in slv(6 downto 0);
129  dropCnt_i : in slv(31 downto 0);
130  validCnt_i : in slv(31 downto 0);
131  resendCnt_i : in slv(31 downto 0);
132  reconCnt_i : in slv(31 downto 0)
133 );
134 end RssiAxiLiteRegItf;
135 
136 architecture rtl of RssiAxiLiteRegItf is
137 
138  type RegType is record
139  -- Control (RW)
140  control : slv(4 downto 0);
141 
142  -- Parameters (RW)
143  initSeqN : slv(7 downto 0);
144  version : slv(3 downto 0);
145  maxOutsSeg : slv(7 downto 0);
146  maxSegSize : slv(15 downto 0);
147  retransTout : slv(15 downto 0);
148  cumulAckTout : slv(15 downto 0);
149  nullSegTout : slv(15 downto 0);
150  maxRetrans : slv(7 downto 0);
151  maxCumAck : slv(7 downto 0);
152  maxOutofseq : slv(7 downto 0);
153  connectionId : slv(31 downto 0);
154 
155  -- AXI lite
158  --
159  end record;
160 
161  constant REG_INIT_C : RegType := (
162  control => "01000",
163  initSeqN => toSlv(INIT_SEQ_N_G, 8),
164  version => toSlv(VERSION_G, 4),
165  maxOutsSeg => toSlv(MAX_NUM_OUTS_SEG_G, 8),
167  retransTout => toSlv(RETRANS_TOUT_G, 16),
168  cumulAckTout => toSlv(ACK_TOUT_G, 16),
169  nullSegTout => toSlv(NULL_TOUT_G, 16),
170  maxRetrans => toSlv(MAX_RETRANS_CNT_G, 8),
171  maxCumAck => toSlv(MAX_CUM_ACK_CNT_G, 8),
172  maxOutofseq => toSlv(MAX_OUT_OF_SEQUENCE_G, 8),
173  connectionId => toSlv(CONN_ID_G, 32),
174 
175  -- AXI lite
178 
179  signal r : RegType := REG_INIT_C;
180  signal rin : RegType;
181 
182  -- Integer address
183  signal s_RdAddr : natural := 0;
184  signal s_WrAddr : natural := 0;
185 
186  -- Synced status signals
187  signal s_status : slv(status_i'range);
188  signal s_dropCnt : slv(31 downto 0);
189  signal s_validCnt : slv(31 downto 0);
190  signal s_reconCnt : slv(31 downto 0);
191  signal s_resendCnt: slv(31 downto 0);
192 
193 begin
194 
195  -- Convert address to integer (lower two bits of address are always '0')
196  s_RdAddr <= conv_integer(axilReadMaster.araddr(9 downto 2));
197  s_WrAddr <= conv_integer(axilWriteMaster.awaddr(9 downto 2));
198 
199  comb : process (axiRst_i, axilReadMaster, axilWriteMaster, bandwidth_i, frameRate_i, r, s_RdAddr,
200  s_WrAddr, s_dropCnt, s_reconCnt, s_resendCnt, s_status, s_validCnt) is
201  variable v : RegType;
202  variable axilStatus : AxiLiteStatusType;
203  variable axilWriteResp : slv(1 downto 0);
204  variable axilReadResp : slv(1 downto 0);
205  begin
206  -- Latch the current value
207  v := r;
208 
209  ----------------------------------------------------------------------------------------------
210  -- Axi-Lite interface
211  ----------------------------------------------------------------------------------------------
212  axiSlaveWaitTxn(axilWriteMaster, axilReadMaster, v.axilWriteSlave, v.axilReadSlave, axilStatus);
213 
214  if (axilStatus.writeEnable = '1') then
215  axilWriteResp := ite(axilWriteMaster.awaddr(1 downto 0) = "00", AXI_RESP_OK_C, AXI_ERROR_RESP_G);
216  case (s_WrAddr) is
217  when 16#00# => -- ADDR (0)
218  v.control := axilWriteMaster.wdata(4 downto 0);
219  when 16#01# => -- ADDR (4)
220  v.initSeqN := axilWriteMaster.wdata(7 downto 0);
221  when 16#02# => -- ADDR (8)
222  v.version := axilWriteMaster.wdata(3 downto 0);
223  when 16#03# => -- ADDR (12)
224  v.maxOutsSeg := axilWriteMaster.wdata(7 downto 0);
225  when 16#04# => -- ADDR (16)
226  v.maxSegSize := axilWriteMaster.wdata(15 downto 0);
227  when 16#05# =>
228  v.retransTout := axilWriteMaster.wdata(15 downto 0);
229  when 16#06# =>
230  v.cumulAckTout:= axilWriteMaster.wdata(15 downto 0);
231  when 16#07# =>
232  v.nullSegTout := axilWriteMaster.wdata(15 downto 0);
233  when 16#08# =>
234  v.maxRetrans := axilWriteMaster.wdata(7 downto 0);
235  when 16#09# =>
236  v.maxCumAck := axilWriteMaster.wdata(7 downto 0);
237  when 16#0A# =>
238  v.maxOutofseq := axilWriteMaster.wdata(7 downto 0);
239  when 16#0B# =>
240  v.connectionId:= axilWriteMaster.wdata(31 downto 0);
241  when others =>
242  axilWriteResp := AXI_ERROR_RESP_G;
243  end case;
244  axiSlaveWriteResponse(v.axilWriteSlave);
245  end if;
246 
247  if (axilStatus.readEnable = '1') then
248  axilReadResp := ite(axilReadMaster.araddr(1 downto 0) = "00", AXI_RESP_OK_C, AXI_ERROR_RESP_G);
249  v.axilReadSlave.rdata := (others => '0');
250  case (s_RdAddr) is
251  when 16#00# => -- ADDR (0)
252  v.axilReadSlave.rdata(4 downto 0) := r.control;
253  when 16#01# => -- ADDR (4)
254  v.axilReadSlave.rdata(7 downto 0) := r.initSeqN;
255  when 16#02# => -- ADDR (8)
256  v.axilReadSlave.rdata(3 downto 0) := r.version;
257  when 16#03# => -- ADDR (12)
258  v.axilReadSlave.rdata(7 downto 0) := r.maxOutsSeg;
259  when 16#04# => -- ADDR (16)
260  v.axilReadSlave.rdata(15 downto 0) := r.maxSegSize;
261  when 16#05# => -- ADDR (20)
262  v.axilReadSlave.rdata(15 downto 0) := r.retransTout;
263  when 16#06# => -- ADDR (24)
264  v.axilReadSlave.rdata(15 downto 0) := r.cumulAckTout;
265  when 16#07# => -- ADDR (28)
266  v.axilReadSlave.rdata(15 downto 0) := r.nullSegTout;
267  when 16#08# => -- ADDR (32)
268  v.axilReadSlave.rdata(7 downto 0) := r.maxRetrans;
269  when 16#09# => -- ADDR (36)
270  v.axilReadSlave.rdata(7 downto 0) := r.maxCumAck;
271  when 16#0A# => -- ADDR (40)
272  v.axilReadSlave.rdata(7 downto 0) := r.maxOutofseq;
273  when 16#0B# => -- ADDR (44)
274  v.axilReadSlave.rdata(31 downto 0) := r.connectionId;
275  when 16#10# => -- ADDR (64)
276  v.axilReadSlave.rdata(status_i'range) := s_status;
277  when 16#11# => -- ADDR (68)
278  v.axilReadSlave.rdata(31 downto 0) := s_validCnt;
279  when 16#12# => -- ADDR (72)
280  v.axilReadSlave.rdata(31 downto 0) := s_dropCnt;
281  when 16#13# => -- ADDR (76)
282  v.axilReadSlave.rdata(31 downto 0) := s_resendCnt;
283  when 16#14# => -- ADDR (80)
284  v.axilReadSlave.rdata(31 downto 0) := s_reconCnt;
285  when 16#15# =>
286  v.axilReadSlave.rdata(31 downto 0) := frameRate_i(0);
287  when 16#16# =>
288  v.axilReadSlave.rdata(31 downto 0) := frameRate_i(1);
289  when 16#17# =>
290  v.axilReadSlave.rdata(31 downto 0) := bandwidth_i(0)(31 downto 0);
291  when 16#18# =>
292  v.axilReadSlave.rdata(31 downto 0) := bandwidth_i(0)(63 downto 32);
293  when 16#19# =>
294  v.axilReadSlave.rdata(31 downto 0) := bandwidth_i(1)(31 downto 0);
295  when 16#20# =>
296  v.axilReadSlave.rdata(31 downto 0) := bandwidth_i(1)(63 downto 32);
297  when others =>
298  axilReadResp := AXI_ERROR_RESP_G;
299  end case;
300  axiSlaveReadResponse(v.axilReadSlave);
301  end if;
302 
303  -- Reset
304  if (axiRst_i = '1') then
305  v := REG_INIT_C;
306  end if;
307 
308  -- Register the variable for next clock cycle
309  rin <= v;
310 
311  -- Outputs
314 
315  end process comb;
316 
317  seq : process (axiClk_i) is
318  begin
319  if rising_edge(axiClk_i) then
320  r <= rin after TPD_G;
321  end if;
322  end process seq;
323 
324  -- Input assignment and synchronization
325  SyncFifo_IN0 : entity work.SynchronizerFifo
326  generic map (
327  TPD_G => TPD_G,
328  DATA_WIDTH_G => status_i'length
329  )
330  port map (
331  wr_clk => devClk_i,
332  din => status_i,
333  rd_clk => axiClk_i,
334  dout => s_status
335  );
336 
337  SyncFifo_IN1 : entity work.SynchronizerFifo
338  generic map (
339  TPD_G => TPD_G,
340  DATA_WIDTH_G => validCnt_i'length
341  )
342  port map (
343  wr_clk => devClk_i,
344  din => validCnt_i,
345  rd_clk => axiClk_i,
346  dout => s_validCnt
347  );
348 
349  SyncFifo_IN2 : entity work.SynchronizerFifo
350  generic map (
351  TPD_G => TPD_G,
352  DATA_WIDTH_G => dropCnt_i'length
353  )
354  port map (
355  wr_clk => devClk_i,
356  din => dropCnt_i,
357  rd_clk => axiClk_i,
358  dout => s_dropCnt
359  );
360 
361  SyncFifo_IN3 : entity work.SynchronizerFifo
362  generic map (
363  TPD_G => TPD_G,
364  DATA_WIDTH_G => resendCnt_i'length
365  )
366  port map (
367  wr_clk => devClk_i,
368  din => resendCnt_i,
369  rd_clk => axiClk_i,
370  dout => s_resendCnt
371  );
372 
373  SyncFifo_IN4 : entity work.SynchronizerFifo
374  generic map (
375  TPD_G => TPD_G,
376  DATA_WIDTH_G => reconCnt_i'length
377  )
378  port map (
379  wr_clk => devClk_i,
380  din => reconCnt_i,
381  rd_clk => axiClk_i,
382  dout => s_reconCnt
383  );
384 
385  -- Output assignment and synchronization
386  Sync_OUT0 : entity work.Synchronizer
387  generic map (
388  TPD_G => TPD_G
389  )
390  port map (
391  dataIn => r.control(0),
392  clk => devClk_i,
393  dataOut => openRq_o
394  );
395 
396  Sync_OUT1 : entity work.Synchronizer
397  generic map (
398  TPD_G => TPD_G
399  )
400  port map (
401  dataIn => r.control(1),
402  clk => devClk_i,
403  dataOut => closeRq_o
404  );
405 
406  Sync_OUT2 : entity work.Synchronizer
407  generic map (
408  TPD_G => TPD_G
409  )
410  port map (
411  dataIn => r.control(2),
412  clk => devClk_i,
413  dataOut => mode_o
414  );
415 
416  Sync_OUT3 : entity work.Synchronizer
417  generic map (
418  TPD_G => TPD_G
419  )
420  port map (
421  dataIn => r.control(3),
422  clk => devClk_i,
423  dataOut => appRssiParam_o.chksumEn(0)
424  );
425 
426  Sync_OUT4 : entity work.Synchronizer
427  generic map (
428  TPD_G => TPD_G
429  )
430  port map (
431  dataIn => r.control(4),
432  clk => devClk_i,
434  );
435 
436  SyncFifo_OUT5 : entity work.SynchronizerFifo
437  generic map (
438  TPD_G => TPD_G,
439  DATA_WIDTH_G => 8
440  )
441  port map (
442  wr_clk => axiClk_i,
443  din => r.initSeqN,
444  rd_clk => devClk_i,
445  dout => initSeqN_o
446  );
447 
448  SyncFifo_OUT6 : entity work.SynchronizerFifo
449  generic map (
450  TPD_G => TPD_G,
451  DATA_WIDTH_G => 4
452  )
453  port map (
454  wr_clk => axiClk_i,
455  din => r.version,
456  rd_clk => devClk_i,
457  dout => appRssiParam_o.version
458  );
459 
460  SyncFifo_OUT7 : entity work.SynchronizerFifo
461  generic map (
462  TPD_G => TPD_G,
463  DATA_WIDTH_G => 8
464  )
465  port map (
466  wr_clk => axiClk_i,
467  din => r.maxOutsSeg,
468  rd_clk => devClk_i,
469  dout => appRssiParam_o.maxOutsSeg
470  );
471 
472  SyncFifo_OUT8 : entity work.SynchronizerFifo
473  generic map (
474  TPD_G => TPD_G,
475  DATA_WIDTH_G => 16
476  )
477  port map (
478  wr_clk => axiClk_i,
479  din => r.maxSegSize,
480  rd_clk => devClk_i,
481  dout => appRssiParam_o.maxSegSize
482  );
483 
484  SyncFifo_OUT9 : entity work.SynchronizerFifo
485  generic map (
486  TPD_G => TPD_G,
487  DATA_WIDTH_G => 16
488  )
489  port map (
490  wr_clk => axiClk_i,
491  din => r.retransTout,
492  rd_clk => devClk_i,
493  dout => appRssiParam_o.retransTout
494  );
495 
496  SyncFifo_OUT10 : entity work.SynchronizerFifo
497  generic map (
498  TPD_G => TPD_G,
499  DATA_WIDTH_G => 16
500  )
501  port map (
502  wr_clk => axiClk_i,
503  din => r.cumulAckTout,
504  rd_clk => devClk_i,
505  dout => appRssiParam_o.cumulAckTout
506  );
507 
508  SyncFifo_OUT11 : entity work.SynchronizerFifo
509  generic map (
510  TPD_G => TPD_G,
511  DATA_WIDTH_G => 16
512  )
513  port map (
514  wr_clk => axiClk_i,
515  din => r.nullSegTout,
516  rd_clk => devClk_i,
517  dout => appRssiParam_o.nullSegTout
518  );
519 
520  SyncFifo_OUT12 : entity work.SynchronizerFifo
521  generic map (
522  TPD_G => TPD_G,
523  DATA_WIDTH_G => 8
524  )
525  port map (
526  wr_clk => axiClk_i,
527  din => r.maxRetrans,
528  rd_clk => devClk_i,
529  dout => appRssiParam_o.maxRetrans
530  );
531 
532  SyncFifo_OUT13 : entity work.SynchronizerFifo
533  generic map (
534  TPD_G => TPD_G,
535  DATA_WIDTH_G => 8
536  )
537  port map (
538  wr_clk => axiClk_i,
539  din => r.maxCumAck,
540  rd_clk => devClk_i,
541  dout => appRssiParam_o.maxCumAck
542  );
543 
544  SyncFifo_OUT14 : entity work.SynchronizerFifo
545  generic map (
546  TPD_G => TPD_G,
547  DATA_WIDTH_G => 8
548  )
549  port map (
550  wr_clk => axiClk_i,
551  din => r.maxOutofseq,
552  rd_clk => devClk_i,
553  dout => appRssiParam_o.maxOutofseq
554  );
555 
556  SyncFifo_OUT15 : entity work.SynchronizerFifo
557  generic map (
558  TPD_G => TPD_G,
559  DATA_WIDTH_G => 32
560  )
561  port map (
562  wr_clk => axiClk_i,
563  din => r.connectionId,
564  rd_clk => devClk_i,
565  dout => appRssiParam_o.connectionId
566  );
567 
568  appRssiParam_o.timeoutUnit <= toSlv(integer(0.0 - (ieee.math_real.log(TIMEOUT_UNIT_G)/ieee.math_real.log(10.0))), 8);
569 ---------------------------------------------------------------------
570 end rtl;
array(natural range <> ) of slv( 31 downto 0) Slv32Array
Definition: StdRtlPkg.vhd:379
TIMEOUT_UNIT_Greal := 1.0E-6
ACK_TOUT_Gpositive := 25
NULL_TOUT_Gpositive := 200
AxiLiteWriteMasterType
Definition: AxiLitePkg.vhd:111
std_logic sl
Definition: StdRtlPkg.vhd:28
in dinslv( DATA_WIDTH_G- 1 downto 0)
slv( 3 downto 0) version
Definition: RssiPkg.vhd:53
MAX_CUM_ACK_CNT_Gpositive := 3
slv( 31 downto 0) connectionId
Definition: RssiPkg.vhd:69
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
in bandwidth_iSlv64Array( 1 downto 0)
in status_islv( 6 downto 0)
slv( 31 downto 0) rdata
Definition: AxiLitePkg.vhd:89
array(natural range <> ) of slv( 63 downto 0) Slv64Array
Definition: StdRtlPkg.vhd:347
out axilWriteSlaveAxiLiteWriteSlaveType
in axilWriteMasterAxiLiteWriteMasterType := AXI_LITE_WRITE_MASTER_INIT_C
MAX_SEG_SIZE_Gpositive := 1024
SEGMENT_ADDR_SIZE_Gpositive := 3
slv( 15 downto 0) nullSegTout
Definition: RssiPkg.vhd:62
_library_ ieeeieee
Definition: Monitor.vhd:35
out axilReadSlaveAxiLiteReadSlaveType
positive := 8 RSSI_WORD_WIDTH_C
Definition: RssiPkg.vhd:32
MAX_NUM_OUTS_SEG_Gpositive := 8
in resendCnt_islv( 31 downto 0)
MAX_OUT_OF_SEQUENCE_Gnatural := 3
slv( 31 downto 0) wdata
Definition: AxiLitePkg.vhd:117
out dataOutsl
out doutslv( DATA_WIDTH_G- 1 downto 0)
slv( 7 downto 0) maxRetrans
Definition: RssiPkg.vhd:64
slv( 7 downto 0) maxOutofseq
Definition: RssiPkg.vhd:67
slv( 1 downto 0) := "10" AXI_RESP_SLVERR_C
Definition: AxiLitePkg.vhd:36
out appRssiParam_oRssiParamType
slv( 15 downto 0) retransTout
Definition: RssiPkg.vhd:60
VERSION_Gpositive := 1
slv( 7 downto 0) maxCumAck
Definition: RssiPkg.vhd:65
in validCnt_islv( 31 downto 0)
_use_ math_realmath_real
Definition: StdRtlPkg.vhd:21
in dropCnt_islv( 31 downto 0)
AxiLiteReadMasterType
Definition: AxiLitePkg.vhd:59
slv( 31 downto 0) awaddr
Definition: AxiLitePkg.vhd:113
slv( 15 downto 0) cumulAckTout
Definition: RssiPkg.vhd:61
TPD_Gtime := 1 ns
slv( 7 downto 0) maxOutsSeg
Definition: RssiPkg.vhd:57
RETRANS_TOUT_Gpositive := 50
AxiLiteReadSlaveType :=(arready => '0',rdata =>( others => '0'),rresp =>( others => '0'),rvalid => '0') AXI_LITE_READ_SLAVE_INIT_C
Definition: AxiLitePkg.vhd:95
slv( 15 downto 0) maxSegSize
Definition: RssiPkg.vhd:58
MAX_RETRANS_CNT_Gpositive := 2
HEADER_CHKSUM_EN_Gboolean := true
AxiLiteReadMasterType :=(araddr =>( others => '0'),arprot =>( others => '0'),arvalid => '0',rready => '1') AXI_LITE_READ_MASTER_INIT_C
Definition: AxiLitePkg.vhd:69
AxiLiteReadSlaveType
Definition: AxiLitePkg.vhd:85
in reconCnt_islv( 31 downto 0)
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
RssiParamType
Definition: RssiPkg.vhd:52
slv( 1 downto 0) := "00" AXI_RESP_OK_C
Definition: AxiLitePkg.vhd:31
out initSeqN_oslv( 7 downto 0)
in frameRate_iSlv32Array( 1 downto 0)
slv( 31 downto 0) araddr
Definition: AxiLitePkg.vhd:61
CONN_ID_Gpositive := 16#12345678#
INIT_SEQ_N_Gnatural := 16#80#
AxiLiteWriteSlaveType :=(awready => '0',wready => '0',bresp =>( others => '0'),bvalid => '0') AXI_LITE_WRITE_SLAVE_INIT_C
Definition: AxiLitePkg.vhd:156
in axilReadMasterAxiLiteReadMasterType := AXI_LITE_READ_MASTER_INIT_C
DATA_WIDTH_Ginteger range 1 to ( 2** 24):= 16
std_logic_vector slv
Definition: StdRtlPkg.vhd:29
slv( 7 downto 0) timeoutUnit
Definition: RssiPkg.vhd:55