Example Waveforms

These waveforms demonstrate the core's operation in typical use cases. The waveforms build on each other chronologically, i.e., inherit the state from the previous waveforms. They are excerpts from a simulation reproduced by simulating the demonstration testbench (vhdl_tb/AntiReplay_TB_demonstration.vhdl).
Time: N/A clock: N/A in_ready: N/A in_cmd_valid: N/A in_cmd_opcode: N/A 0xX 0x3 0x2 0x5 0x2 0x5 0xX in_cmd_connectionIndex: N/A 0xXXX 0x000 0x001 0xXXX in_cmd_sequenceNumber: N/A 0xXXXXXXXXXXXXXXXX 0xXXXXXXXXXXXXXXXX in_cmd_windowSize: N/A 0xXXXXX 0x00064 0xXXXXX out_ready: N/A
Waveform 5.1: Shows a sample "initialization" (could also happen during normal operation) comprising: 1) Setting the virtual window size to 100 (it defaults to the physical window size); 2) Initializing the sequence number (OpSetSeqNr) of connection 0 to 0; 3) Activating (OpActivate) connection 0; 4) Initializing the sequence number (OpSetSeqNr) of connection 1 to 0; 5) Activating (OpActivate) connection 1;
Time: N/A clock: N/A in_ready: N/A in_cmd_valid: N/A in_cmd_opcode: N/A 0xX 0x0 0xX 0x0 0xX in_cmd_connectionIndex: N/A 0xXXX 0x000 0xXXX 0x000 0x010 0xXXX in_cmd_sequenceNumber: N/A 0xXXXXXXXXXXXXXXXX in_cmd_windowSize: N/A 0xXXXXX in_frame_valid: N/A in_frame_channel: N/A 0xX in_frame_startofpacket: N/A in_frame_endofpacket: N/A in_frame_empty: N/A 0xX 0x0 0xX in_frame_error: N/A in_frame_data: N/A out_ready: N/A out_result_valid: N/A out_result_data: N/A 0xX 0x1 0xX 0x2 0x3 0xX out_frame_valid: N/A out_frame_channel: N/A 0xX out_frame_startofpacket: N/A out_frame_endofpacket: N/A out_frame_empty: N/A 0xX 0x0 0xX out_frame_error: N/A out_frame_data: N/A
Waveform 5.2: Shows a normal replay check and update operation comprising: 1) Receiving a 3-beat packet on connection 0 with sequence number 5 (a new highest sequence number). 2) Receiving the exact same packet again: same connection index, same sequence number. The payload happens to be the same but that is irrelevant for the test. 3) Receiving a single-beat packet on connection 16 with sequence number 32 (the connection has not been activated). The core delays the first packet because of its internal latency but then responds in the same rate as the rate with which packets were received. The responses coincide with the packets on the output stream and comprise: 1) A PassAboveWindow for the first packet. 2) A FailReplay for the duplicate of the first packet. 3) A PassCheckDisabled for the last packet on the deactivated connection.
Time: N/A clock: N/A in_ready: N/A in_cmd_valid: N/A in_cmd_opcode: N/A 0xX 0x0 0x2 0x5 0x0 0xX in_cmd_connectionIndex: N/A 0xXXX 0x020 0xXXX in_cmd_sequenceNumber: N/A 0xXXXXXXXXXXXXXXXX in_cmd_windowSize: N/A 0xXXXXX in_frame_valid: N/A in_frame_channel: N/A 0xX in_frame_startofpacket: N/A in_frame_endofpacket: N/A in_frame_empty: N/A 0xX 0x0 0xX 0x0 0xX in_frame_error: N/A in_frame_data: N/A out_ready: N/A out_result_valid: N/A out_result_data: N/A 0xX 0x3 0xX 0x1 0x2 0xX out_frame_valid: N/A out_frame_channel: N/A 0xX out_frame_startofpacket: N/A out_frame_endofpacket: N/A out_frame_empty: N/A 0xX 0x0 0xX out_frame_error: N/A out_frame_data: N/A
Waveform 5.3: Shows normal replay check operation where the configuration is changed during operation: 1) Receiving of a single-beat packet on connection 32 with sequence number 1 (the connection has not yet been activated). 2) A bubble in the packet stream during which the sequence number of connection 32 is set to 0 (OpSetSeqNr). 3) An unrelated single beat packet in the packet stream for which a replay check is not required and during which the connection 32 is activated (OpActivate). 3) The exact same packet of 1) is received again. 4) The exact same packet of 1) is received a third time. The core delays the first packet because of its internal latency but then responds in the same rate as the rate with which packets were received. The responses coincide with the packets on the output stream and comprise: 1) A PassCheckDisabled for the first packet on the deactivated connection. 2) The unrelated packet with no corresponding result, transmitted as soon as possible but without breaking order. 3) A bubble corresponding to the bubble on the input stream while the result of the replay check is awaited (necessary, because the unrelated packet was transmitted one beat earlier). 4) A PassAboveWindow for the first replay (because the sequence number was set to zero). 5) A FailReplay for the second replay.