BUG FIX: rtps_reader/rtps_discovery_module GAP Processing

An internal signal was initialized wrongly, and due to various
other reasons (testbench bug, to_integer conversion bug) was not picked
up by the testbenches.
This commit is contained in:
John Ring 2022-03-12 20:36:05 +01:00
parent 76824037d1
commit 290807f2ae
9 changed files with 105 additions and 86 deletions

View File

@ -1,53 +1,70 @@
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -divider SYSTEM
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/clk
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/reset
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/clk
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/reset
add wave -noupdate -divider INPUT
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/empty_meta
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/rd_meta
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/last_word_in_meta
add wave -noupdate -radix hexadecimal /l0_rtps_writer_test1_vrkdp/uut/data_in_meta
add wave -noupdate -divider OUTPUT
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/start_hc
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/opcode_hc
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/ack_hc
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/done_hc
add wave -noupdate -group META /l0_rtps_reader_test2_vrk/uut/empty_meta
add wave -noupdate -group META /l0_rtps_reader_test2_vrk/uut/rd_meta
add wave -noupdate -group META /l0_rtps_reader_test2_vrk/uut/last_word_in_meta
add wave -noupdate -group META -radix hexadecimal /l0_rtps_reader_test2_vrk/uut/data_in_meta
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_vrk/uut/empty_user
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_vrk/uut/rd_user
add wave -noupdate -expand -group USER -radix hexadecimal /l0_rtps_reader_test2_vrk/uut/data_in_user
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_vrk/uut/last_word_in_user
add wave -noupdate -divider HC
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/start_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/opcode_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/ack_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/valid_out_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/ready_out_hc
add wave -noupdate -radix hexadecimal /l0_rtps_reader_test2_vrk/uut/data_out_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/last_word_out_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/done_hc
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/ret_hc
add wave -noupdate -divider {MAIN FSM}
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/stage
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/stage_next
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/cnt
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/stage
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/cnt
add wave -noupdate -divider {MEMORY FSM}
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/mem_op_done
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/mem_op_start
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/mem_opcode
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/mem_stage
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/mem_cnt
add wave -noupdate -radix unsigned /l0_rtps_writer_test1_vrkdp/uut/mem_occupied_head
add wave -noupdate -radix unsigned /l0_rtps_writer_test1_vrkdp/uut/mem_empty_head
add wave -noupdate -radix unsigned /l0_rtps_writer_test1_vrkdp/uut/mem_prev_addr
add wave -noupdate /l0_rtps_writer_test1_vrkdp/uut/mem_prev_addr_valid
add wave -noupdate -radix unsigned /l0_rtps_writer_test1_vrkdp/uut/mem_addr_base
add wave -noupdate -expand -group MEM_CTRL -radix unsigned /l0_rtps_writer_test1_vrkdp/uut/mem_addr
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_writer_test1_vrkdp/uut/mem_valid_in
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_writer_test1_vrkdp/uut/mem_ready_in
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_writer_test1_vrkdp/uut/mem_read
add wave -noupdate -expand -group MEM_CTRL -radix hexadecimal /l0_rtps_writer_test1_vrkdp/uut/mem_write_data
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_writer_test1_vrkdp/uut/abort_read
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_writer_test1_vrkdp/uut/mem_valid_out
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_writer_test1_vrkdp/uut/mem_ready_out
add wave -noupdate -expand -group MEM_CTRL -radix hexadecimal /l0_rtps_writer_test1_vrkdp/uut/mem_read_data
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/mem_op_done
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/mem_op_start
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/mem_opcode
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/mem_stage
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/mem_cnt
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/mem_occupied_head
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/mem_empty_head
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/mem_addr_base
add wave -noupdate -childformat {{/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.addr -radix unsigned} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.guid -radix hexadecimal} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.ip_addr -radix hexadecimal} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.portn -radix hexadecimal} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr -radix unsigned -childformat {{/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.lease_deadline -radix unsigned} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.lifespan -radix unsigned} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.res_time -radix unsigned} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.writer_id -radix unsigned}} -expand -subitemconfig {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.addr {-height 15 -radix unsigned} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.guid {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.ip_addr {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.portn {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr {-height 15 -radix unsigned -childformat {{/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr(0) {-height 15 -radix unsigned} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.next_seq_nr(1) {-height 15 -radix unsigned} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.lease_deadline {-height 15 -radix unsigned} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.lifespan {-height 15 -radix unsigned} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.res_time {-height 15 -radix unsigned} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data.writer_id {-height 15 -radix unsigned}} /l0_rtps_reader_test2_vrk/uut/mem_endpoint_data
add wave -noupdate -group MEM_CTRL -radix unsigned /l0_rtps_reader_test2_vrk/uut/mem_addr
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrk/uut/mem_valid_in
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrk/uut/mem_ready_in
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrk/uut/mem_read
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2_vrk/uut/mem_write_data
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrk/uut/abort_read
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrk/uut/mem_valid_out
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_vrk/uut/mem_ready_out
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2_vrk/uut/mem_read_data
add wave -noupdate -divider TESTBENCH
add wave -noupdate -group TESTBENCH /l0_rtps_writer_test1_vrkdp/start
add wave -noupdate -group TESTBENCH /l0_rtps_writer_test1_vrkdp/cnt_stim
add wave -noupdate -group TESTBENCH /l0_rtps_writer_test1_vrkdp/packet_sent
add wave -noupdate -group TESTBENCH /l0_rtps_writer_test1_vrkdp/mem_check_done
add wave -noupdate -group TESTBENCH /l0_rtps_writer_test1_vrkdp/stim_done
add wave -noupdate -group TESTBENCH /l0_rtps_writer_test1_vrkdp/test_done
add wave -noupdate -group TESTBENCH /l0_rtps_writer_test1_vrkdp/uut/idle_sig
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/start_meta
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/packet_sent_meta
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/start_user
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/packet_sent_user
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/check_stage
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/out_check_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/stim_done
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_vrk/test_done
add wave -noupdate -divider GAP
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/gap_start
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/gap_list_base
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/gap_list_end
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/bitmap_latch
add wave -noupdate /l0_rtps_reader_test2_vrk/uut/bitmap_pos
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/next_seq_nr
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/bitmap_cnt
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_vrk/uut/seq_nr
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {Begin {8325000 ps} 1} {Error {9725000 ps} 1} {Cursor {5753724 ps} 0}
quietly wave cursor active 3
WaveRestoreCursors {Cursor {77575000 ps} 0}
quietly wave cursor active 1
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
@ -62,4 +79,4 @@ configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ns
update
WaveRestoreZoom {0 ps} {1024 ns}
WaveRestoreZoom {77085800 ps} {78109800 ps}

View File

@ -555,7 +555,7 @@ begin
-- *GAP HANDLING*
Log("Test GAP Handling", INFO);
Log("Endpoint 2 Heartbeat [GAP 1-10]", INFO);
Log("Endpoint 2 GAP [GAP 1-10]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -584,7 +584,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 2-10,12]", INFO);
Log("Endpoint 2 GAP [GAP 2-10,12]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -613,7 +613,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22]", INFO);
Log("Endpoint 2 GAP [GAP 21-22]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -646,7 +646,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -675,7 +675,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -708,14 +708,14 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
sub.writerId := endpoint.entityid;
sub.readerId := DEFAULT_READER_ENTITYID;
sub.gapStart := gen_sn(21);
sub.gapList := (base => gen_sn(23), numBits => int(3, CDR_LONG_WIDTH), bitmap => (0 => '1', 2 => '1', others => '0'));
sub.gapList := (base => gen_sn(22), numBits => int(3, CDR_LONG_WIDTH), bitmap => (0 => '1', 2 => '1', others => '0'));
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
start_user_test;
wait_on_user_sent;
@ -756,7 +756,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 20-30]", INFO);
Log("Endpoint 2 GAP [GAP 20-30]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;

View File

@ -536,7 +536,7 @@ begin
-- *GAP HANDLING*
Log("Test GAP Handling", INFO);
Log("Endpoint 2 Heartbeat [GAP 1-10]", INFO);
Log("Endpoint 2 GAP [GAP 1-10]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -565,7 +565,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 2-10,12]", INFO);
Log("Endpoint 2 GAP [GAP 2-10,12]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -594,7 +594,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22]", INFO);
Log("Endpoint 2 GAP [GAP 21-22]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -627,7 +627,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -656,7 +656,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -689,14 +689,14 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
sub.writerId := endpoint.entityid;
sub.readerId := DEFAULT_READER_ENTITYID;
sub.gapStart := gen_sn(21);
sub.gapList := (base => gen_sn(23), numBits => int(3, CDR_LONG_WIDTH), bitmap => (0 => '1', 2 => '1', others => '0'));
sub.gapList := (base => gen_sn(22), numBits => int(3, CDR_LONG_WIDTH), bitmap => (0 => '1', 2 => '1', others => '0'));
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
start_user_test;
wait_on_user_sent;
@ -737,7 +737,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 20-30]", INFO);
Log("Endpoint 2 GAP [GAP 20-30]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;

View File

@ -536,7 +536,7 @@ begin
-- *GAP HANDLING*
Log("Test GAP Handling", INFO);
Log("Endpoint 2 Heartbeat [GAP 1-10]", INFO);
Log("Endpoint 2 GAP [GAP 1-10]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -565,7 +565,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 2-10,12]", INFO);
Log("Endpoint 2 GAP [GAP 2-10,12]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -594,7 +594,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22]", INFO);
Log("Endpoint 2 GAP [GAP 21-22]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -627,7 +627,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -656,7 +656,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -689,14 +689,14 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
sub.writerId := endpoint.entityid;
sub.readerId := DEFAULT_READER_ENTITYID;
sub.gapStart := gen_sn(21);
sub.gapList := (base => gen_sn(23), numBits => int(3, CDR_LONG_WIDTH), bitmap => (0 => '1', 2 => '1', others => '0'));
sub.gapList := (base => gen_sn(22), numBits => int(3, CDR_LONG_WIDTH), bitmap => (0 => '1', 2 => '1', others => '0'));
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
start_user_test;
wait_on_user_sent;
@ -737,7 +737,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 20-30]", INFO);
Log("Endpoint 2 GAP [GAP 20-30]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;

View File

@ -551,7 +551,7 @@ begin
-- *GAP HANDLING*
Log("Test GAP Handling", INFO);
Log("Endpoint 2 Heartbeat [GAP 1-10]", INFO);
Log("Endpoint 2 GAP [GAP 1-10]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -580,7 +580,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 2-10,12]", INFO);
Log("Endpoint 2 GAP [GAP 2-10,12]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -609,7 +609,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22]", INFO);
Log("Endpoint 2 GAP [GAP 21-22]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -642,7 +642,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -671,7 +671,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -704,14 +704,14 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
sub.writerId := endpoint.entityid;
sub.readerId := DEFAULT_READER_ENTITYID;
sub.gapStart := gen_sn(21);
sub.gapList := (base => gen_sn(23), numBits => int(3, CDR_LONG_WIDTH), bitmap => (0 => '1', 2 => '1', others => '0'));
sub.gapList := (base => gen_sn(22), numBits => int(3, CDR_LONG_WIDTH), bitmap => (0 => '1', 2 => '1', others => '0'));
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
start_user_test;
wait_on_user_sent;
@ -752,7 +752,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 20-30]", INFO);
Log("Endpoint 2 GAP [GAP 20-30]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;

View File

@ -551,7 +551,7 @@ begin
-- *GAP HANDLING*
Log("Test GAP Handling", INFO);
Log("Endpoint 2 Heartbeat [GAP 1-10]", INFO);
Log("Endpoint 2 GAP [GAP 1-10]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -580,7 +580,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 2-10,12]", INFO);
Log("Endpoint 2 GAP [GAP 2-10,12]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -609,7 +609,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22]", INFO);
Log("Endpoint 2 GAP [GAP 21-22]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -642,7 +642,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -671,7 +671,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
@ -704,14 +704,14 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 21-22, 24]", INFO);
Log("Endpoint 2 GAP [GAP 21-22, 24]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;
sub.writerId := endpoint.entityid;
sub.readerId := DEFAULT_READER_ENTITYID;
sub.gapStart := gen_sn(21);
sub.gapList := (base => gen_sn(23), numBits => int(3, CDR_LONG_WIDTH), bitmap => (0 => '1', 2 => '1', others => '0'));
sub.gapList := (base => gen_sn(22), numBits => int(3, CDR_LONG_WIDTH), bitmap => (0 => '1', 2 => '1', others => '0'));
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
start_user_test;
wait_on_user_sent;
@ -752,7 +752,7 @@ begin
stimulus_user := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET;
Log("Endpoint 2 Heartbeat [GAP 20-30]", INFO);
Log("Endpoint 2 GAP [GAP 20-30]", INFO);
endpoint := e2;
sub := DEFAULT_RTPS_SUBMESSAGE;
sub.submessageID := SID_GAP;

View File

@ -1520,7 +1520,8 @@ begin
-- Next Expected is in GAP List
if (gap_list_base <= mem_seq_nr) then
-- Begin searching next valid SN from the current expected in the bitmap list
bitmap_pos_next <= to_integer(next_seq_nr - gap_list_base);
next_seq_nr_next <= mem_seq_nr;
bitmap_pos_next <= to_integer(mem_seq_nr - gap_list_base);
else
-- Begin searching next valid SN from the beginning of the bitmap list
next_seq_nr_next <= gap_list_base;

View File

@ -825,7 +825,7 @@ package body rtps_package is
function to_integer(dw : DOUBLE_WORD_ARRAY) return integer is
begin
return to_integer(dw(0));
return to_integer(dw(1));
end function;
function to_guid(A : GUIDPREFIX_TYPE; B : std_logic_vector(ENTITYID_WIDTH-1 downto 0)) return GUID_TYPE is

View File

@ -1129,7 +1129,8 @@ begin
-- Next Expected is in GAP List
if (gap_list_base <= mem_endpoint_data.next_seq_nr) then
-- Begin searching next valid SN from the current expected in the bitmap list
bitmap_pos_next <= to_integer(next_seq_nr - gap_list_base);
next_seq_nr_next <= mem_endpoint_data.next_seq_nr;
bitmap_pos_next <= to_integer(mem_endpoint_data.next_seq_nr - gap_list_base);
else
-- Begin searching next valid SN from the beginning of the bitmap list
next_seq_nr_next <= gap_list_base;