Change memory format of rtps_discovery_module to use double linked list
This commit is contained in:
parent
290807f2ae
commit
70072a51bf
@ -1,71 +0,0 @@
|
|||||||
onerror {resume}
|
|
||||||
quietly WaveActivateNextPane {} 0
|
|
||||||
add wave -noupdate -divider SYSTEM
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/uut/clk
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/uut/reset
|
|
||||||
add wave -noupdate -divider INPUT
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/uut/empty
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/uut/rd
|
|
||||||
add wave -noupdate -radix hexadecimal /l0_rtps_builtin_endpoint_test1/uut/data_in
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/uut/last_word_in
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/uut/last_word_in_latch
|
|
||||||
add wave -noupdate -divider OUTPUT
|
|
||||||
add wave -noupdate -group ENDPOINTS /l0_rtps_builtin_endpoint_test1/uut/full_ue
|
|
||||||
add wave -noupdate -group ENDPOINTS /l0_rtps_builtin_endpoint_test1/uut/wr_ue
|
|
||||||
add wave -noupdate -group ENDPOINTS -radix hexadecimal /l0_rtps_builtin_endpoint_test1/uut/data_out_ue
|
|
||||||
add wave -noupdate -group ENDPOINTS /l0_rtps_builtin_endpoint_test1/uut/last_word_out_ue
|
|
||||||
add wave -noupdate -group {RTPS OUT} /l0_rtps_builtin_endpoint_test1/uut/full_ro
|
|
||||||
add wave -noupdate -group {RTPS OUT} /l0_rtps_builtin_endpoint_test1/uut/wr_ro
|
|
||||||
add wave -noupdate -group {RTPS OUT} -radix hexadecimal /l0_rtps_builtin_endpoint_test1/uut/data_out_ro
|
|
||||||
add wave -noupdate -group {RTPS OUT} /l0_rtps_builtin_endpoint_test1/uut/last_word_out_ro
|
|
||||||
add wave -noupdate -divider TESTBENCH
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/start
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/stim_stage
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/stimulus.length
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/cnt_stim
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/packet_sent
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/SB.ItemNumberVar
|
|
||||||
add wave -noupdate -divider {MAIN FSM}
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/uut/stage
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/uut/stage_next
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/uut/cnt
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/uut/endpoint_mask
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/uut/participant_match
|
|
||||||
add wave -noupdate -divider {MEM FSM}
|
|
||||||
add wave -noupdate -group MEM_FSM /l0_rtps_builtin_endpoint_test1/uut/mem_opcode
|
|
||||||
add wave -noupdate -group MEM_FSM /l0_rtps_builtin_endpoint_test1/uut/mem_op_start
|
|
||||||
add wave -noupdate -group MEM_FSM /l0_rtps_builtin_endpoint_test1/uut/mem_op_done
|
|
||||||
add wave -noupdate -group MEM_FSM /l0_rtps_builtin_endpoint_test1/uut/mem_stage
|
|
||||||
add wave -noupdate -group MEM_FSM /l0_rtps_builtin_endpoint_test1/uut/mem_stage_next
|
|
||||||
add wave -noupdate -group MEM_FSM /l0_rtps_builtin_endpoint_test1/uut/mem_cnt
|
|
||||||
add wave -noupdate -group MEM_FSM -radix unsigned /l0_rtps_builtin_endpoint_test1/uut/mem_addr_base
|
|
||||||
add wave -noupdate -divider GUARD
|
|
||||||
add wave -noupdate -radix unsigned /l0_rtps_builtin_endpoint_test1/uut/read_cnt
|
|
||||||
add wave -noupdate -radix unsigned /l0_rtps_builtin_endpoint_test1/uut/parameter_end
|
|
||||||
add wave -noupdate /l0_rtps_builtin_endpoint_test1/uut/parse_prc/rd_guard
|
|
||||||
add wave -noupdate -divider MEMORY
|
|
||||||
add wave -noupdate -group MEMORY -radix unsigned /l0_rtps_builtin_endpoint_test1/uut/mem_ctrl_inst/ram_inst/addr
|
|
||||||
add wave -noupdate -group MEMORY /l0_rtps_builtin_endpoint_test1/uut/mem_ctrl_inst/ram_inst/wen
|
|
||||||
add wave -noupdate -group MEMORY /l0_rtps_builtin_endpoint_test1/uut/mem_ctrl_inst/ram_inst/ren
|
|
||||||
add wave -noupdate -group MEMORY -radix hexadecimal /l0_rtps_builtin_endpoint_test1/uut/mem_ctrl_inst/ram_inst/wr_data
|
|
||||||
add wave -noupdate -group MEMORY -radix hexadecimal /l0_rtps_builtin_endpoint_test1/uut/mem_ctrl_inst/ram_inst/rd_data
|
|
||||||
add wave -noupdate -divider MISC
|
|
||||||
add wave -noupdate -radix unsigned /l0_rtps_builtin_endpoint_test1/uut/seq_nr
|
|
||||||
TreeUpdate [SetDefaultTree]
|
|
||||||
WaveRestoreCursors {Begin {63775000 ps} 1} {Error {66975000 ps} 1} {Cursor {33675000 ps} 0}
|
|
||||||
quietly wave cursor active 1
|
|
||||||
configure wave -namecolwidth 149
|
|
||||||
configure wave -valuecolwidth 144
|
|
||||||
configure wave -justifyvalue left
|
|
||||||
configure wave -signalnamewidth 1
|
|
||||||
configure wave -snapdistance 10
|
|
||||||
configure wave -datasetprefix 0
|
|
||||||
configure wave -rowmargin 4
|
|
||||||
configure wave -childrowmargin 2
|
|
||||||
configure wave -gridoffset 0
|
|
||||||
configure wave -gridperiod 1
|
|
||||||
configure wave -griddelta 40
|
|
||||||
configure wave -timeline 0
|
|
||||||
configure wave -timelineunits ns
|
|
||||||
update
|
|
||||||
WaveRestoreZoom {63200829 ps} {64349171 ps}
|
|
||||||
65
sim/L0_rtps_discovery_module_test1_uc.do
Normal file
65
sim/L0_rtps_discovery_module_test1_uc.do
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
onerror {resume}
|
||||||
|
quietly WaveActivateNextPane {} 0
|
||||||
|
add wave -noupdate -divider SYSTEM
|
||||||
|
add wave -noupdate /l0_rtps_discovery_module_test1_uc/uut/clk
|
||||||
|
add wave -noupdate /l0_rtps_discovery_module_test1_uc/uut/reset
|
||||||
|
add wave -noupdate -divider INPUT
|
||||||
|
add wave -noupdate /l0_rtps_discovery_module_test1_uc/uut/empty
|
||||||
|
add wave -noupdate /l0_rtps_discovery_module_test1_uc/uut/rd
|
||||||
|
add wave -noupdate -radix hexadecimal /l0_rtps_discovery_module_test1_uc/uut/data_in
|
||||||
|
add wave -noupdate /l0_rtps_discovery_module_test1_uc/uut/last_word_in
|
||||||
|
add wave -noupdate /l0_rtps_discovery_module_test1_uc/uut/last_word_in_latch
|
||||||
|
add wave -noupdate -divider OUTPUT
|
||||||
|
add wave -noupdate -group {RTPS OUT} /l0_rtps_discovery_module_test1_uc/uut/full_ro
|
||||||
|
add wave -noupdate -group {RTPS OUT} /l0_rtps_discovery_module_test1_uc/uut/wr_ro
|
||||||
|
add wave -noupdate -group {RTPS OUT} -radix hexadecimal /l0_rtps_discovery_module_test1_uc/uut/data_out_ro
|
||||||
|
add wave -noupdate -group {RTPS OUT} /l0_rtps_discovery_module_test1_uc/uut/last_word_out_ro
|
||||||
|
add wave -noupdate -divider {MAIN FSM}
|
||||||
|
add wave -noupdate /l0_rtps_discovery_module_test1_uc/uut/stage
|
||||||
|
add wave -noupdate /l0_rtps_discovery_module_test1_uc/uut/cnt
|
||||||
|
add wave -noupdate /l0_rtps_discovery_module_test1_uc/uut/endpoint_mask
|
||||||
|
add wave -noupdate /l0_rtps_discovery_module_test1_uc/uut/participant_match
|
||||||
|
add wave -noupdate -divider {MEM FSM}
|
||||||
|
add wave -noupdate -expand -group MEM_FSM /l0_rtps_discovery_module_test1_uc/uut/mem_op_start
|
||||||
|
add wave -noupdate -expand -group MEM_FSM /l0_rtps_discovery_module_test1_uc/uut/mem_opcode
|
||||||
|
add wave -noupdate -expand -group MEM_FSM /l0_rtps_discovery_module_test1_uc/uut/mem_op_done
|
||||||
|
add wave -noupdate -expand -group MEM_FSM /l0_rtps_discovery_module_test1_uc/uut/mem_stage
|
||||||
|
add wave -noupdate -expand -group MEM_FSM /l0_rtps_discovery_module_test1_uc/uut/mem_cnt
|
||||||
|
add wave -noupdate -expand -group MEM_FSM -radix unsigned /l0_rtps_discovery_module_test1_uc/uut/mem_empty_head
|
||||||
|
add wave -noupdate -expand -group MEM_FSM -radix unsigned /l0_rtps_discovery_module_test1_uc/uut/mem_occupied_head
|
||||||
|
add wave -noupdate -expand -group MEM_FSM -radix unsigned /l0_rtps_discovery_module_test1_uc/uut/mem_addr_base
|
||||||
|
add wave -noupdate -expand -group MEMORY -radix unsigned /l0_rtps_discovery_module_test1_uc/uut/mem_ctrl_inst/ram_inst/addr
|
||||||
|
add wave -noupdate -expand -group MEMORY /l0_rtps_discovery_module_test1_uc/uut/mem_ctrl_inst/ram_inst/wen
|
||||||
|
add wave -noupdate -expand -group MEMORY /l0_rtps_discovery_module_test1_uc/uut/mem_ctrl_inst/ram_inst/ren
|
||||||
|
add wave -noupdate -expand -group MEMORY -radix hexadecimal /l0_rtps_discovery_module_test1_uc/uut/mem_ctrl_inst/ram_inst/wr_data
|
||||||
|
add wave -noupdate -expand -group MEMORY -radix hexadecimal /l0_rtps_discovery_module_test1_uc/uut/mem_ctrl_inst/ram_inst/rd_data
|
||||||
|
add wave -noupdate -divider MISC
|
||||||
|
add wave -noupdate -radix unsigned /l0_rtps_discovery_module_test1_uc/uut/seq_nr
|
||||||
|
add wave -noupdate -divider TESTBENCH
|
||||||
|
add wave -noupdate -group TESTBENCH /l0_rtps_discovery_module_test1_uc/start
|
||||||
|
add wave -noupdate -group TESTBENCH /l0_rtps_discovery_module_test1_uc/stim_stage
|
||||||
|
add wave -noupdate -group TESTBENCH /l0_rtps_discovery_module_test1_uc/stimulus.length
|
||||||
|
add wave -noupdate -group TESTBENCH /l0_rtps_discovery_module_test1_uc/cnt_stim
|
||||||
|
add wave -noupdate -group TESTBENCH /l0_rtps_discovery_module_test1_uc/packet_sent
|
||||||
|
add wave -noupdate -divider GUARD
|
||||||
|
add wave -noupdate -radix unsigned /l0_rtps_discovery_module_test1_uc/uut/read_cnt
|
||||||
|
add wave -noupdate -radix unsigned /l0_rtps_discovery_module_test1_uc/uut/parameter_end
|
||||||
|
add wave -noupdate /l0_rtps_discovery_module_test1_uc/uut/parse_prc/rd_guard
|
||||||
|
TreeUpdate [SetDefaultTree]
|
||||||
|
WaveRestoreCursors {Begin {63775000 ps} 1} {Error {66975000 ps} 1} {Cursor {4039782 ps} 0}
|
||||||
|
quietly wave cursor active 3
|
||||||
|
configure wave -namecolwidth 149
|
||||||
|
configure wave -valuecolwidth 144
|
||||||
|
configure wave -justifyvalue left
|
||||||
|
configure wave -signalnamewidth 1
|
||||||
|
configure wave -snapdistance 10
|
||||||
|
configure wave -datasetprefix 0
|
||||||
|
configure wave -rowmargin 4
|
||||||
|
configure wave -childrowmargin 2
|
||||||
|
configure wave -gridoffset 0
|
||||||
|
configure wave -gridperiod 1
|
||||||
|
configure wave -griddelta 40
|
||||||
|
configure wave -timeline 0
|
||||||
|
configure wave -timelineunits ns
|
||||||
|
update
|
||||||
|
WaveRestoreZoom {3817836 ps} {4966178 ps}
|
||||||
52
src/REF.txt
52
src/REF.txt
@ -195,53 +195,55 @@ PARTICICPANT DATA
|
|||||||
| | | | |
|
| | | | |
|
||||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||||
+---------------------------------------------------------------+
|
+---------------------------------------------------------------+
|
||||||
00| NEXT_ADDRESS |
|
00| |
|
||||||
+---------------------------------------------------------------+
|
|
||||||
01| |
|
|
||||||
+ +
|
+ +
|
||||||
02| GUIDPREFIX |
|
01| GUIDPREFIX |
|
||||||
+ +
|
+ +
|
||||||
03| |
|
02| |
|
||||||
+---------------------------------------------------------------+
|
+---------------------------------------------------------------+
|
||||||
04| META_IPv4_ADDRESS |
|
03| META_IPv4_ADDRESS |
|
||||||
+---------------------------------------------------------------+
|
+---------------------------------------------------------------+
|
||||||
05| DEFAULT_IPv4_ADDRESS |
|
04| DEFAULT_IPv4_ADDRESS |
|
||||||
+-------------------------------+-------------------------------+
|
+-------------------------------+-------------------------------+
|
||||||
06| META_UDP_PORT | DEFAULT_UDP_PORT |
|
05| META_UDP_PORT | DEFAULT_UDP_PORT |
|
||||||
+-------------------------------+-------------------------------+
|
+-------------------------------+-------------------------------+
|
||||||
07| |
|
06| |
|
||||||
+ SPDP_SEQ_NR +
|
+ SPDP_SEQ_NR +
|
||||||
|
07| |
|
||||||
|
+---------------------------------------------------------------+
|
||||||
08| |
|
08| |
|
||||||
+---------------------------------------------------------------+
|
|
||||||
09| |
|
|
||||||
+ LEASE_DURATION +
|
+ LEASE_DURATION +
|
||||||
|
09| |
|
||||||
|
+---------------------------------------------------------------+
|
||||||
10| |
|
10| |
|
||||||
+---------------------------------------------------------------+
|
|
||||||
11| |
|
|
||||||
+ LEASE_DEADLINE +
|
+ LEASE_DEADLINE +
|
||||||
12| |
|
11| |
|
||||||
+---------------------------------------------------------+-+-+-+
|
+---------------------------------------------------------+-+-+-+
|
||||||
13| UNUSED |P|S|M|
|
12| UNUSED |P|S|M|
|
||||||
+---------------------------------------------------------+-+-+-+
|
+---------------------------------------------------------+-+-+-+
|
||||||
14| |
|
13| |
|
||||||
+ ACKNACK_RES_TIME +
|
+ ACKNACK_RES_TIME +
|
||||||
|
14| |
|
||||||
|
+---------------------------------------------------------------+
|
||||||
15| |
|
15| |
|
||||||
+---------------------------------------------------------------+
|
|
||||||
16| |
|
|
||||||
+ HEARTBEAT_RES_TIME +
|
+ HEARTBEAT_RES_TIME +
|
||||||
|
16| |
|
||||||
|
+---------------------------------------------------------------+
|
||||||
17| |
|
17| |
|
||||||
+---------------------------------------------------------------+
|
|
||||||
18| |
|
|
||||||
+ PUBLICATION_SEQ_NR +
|
+ PUBLICATION_SEQ_NR +
|
||||||
|
18| |
|
||||||
|
+---------------------------------------------------------------+
|
||||||
19| |
|
19| |
|
||||||
+---------------------------------------------------------------+
|
|
||||||
20| |
|
|
||||||
+ SUBSCRIPTION_SEQ_NR +
|
+ SUBSCRIPTION_SEQ_NR +
|
||||||
21| |
|
20| |
|
||||||
+---------------------------------------------------------------+
|
+---------------------------------------------------------------+
|
||||||
22| |
|
21| |
|
||||||
+ MESSAGE_SEQ_NR +
|
+ MESSAGE_SEQ_NR +
|
||||||
23| |
|
22| |
|
||||||
|
+---------------------------------------------------------------+
|
||||||
|
23| NEXT_ADDRESS |
|
||||||
|
+---------------------------------------------------------------+
|
||||||
|
24| PREV_ADDRESS |
|
||||||
+---------------------------------------------------------------+
|
+---------------------------------------------------------------+
|
||||||
|
|
||||||
M...Send Message Data (Liveliness Update)
|
M...Send Message Data (Liveliness Update)
|
||||||
|
|||||||
@ -108,6 +108,8 @@ begin
|
|||||||
variable m0, m1, m2 : PARTICIPANT_DATA_TYPE := DEFAULT_PARTICIPANT_DATA;
|
variable m0, m1, m2 : PARTICIPANT_DATA_TYPE := DEFAULT_PARTICIPANT_DATA;
|
||||||
variable p0, p1, p2, p3 : GUIDPREFIX_TYPE;
|
variable p0, p1, p2, p3 : GUIDPREFIX_TYPE;
|
||||||
|
|
||||||
|
alias empty_head is <<signal uut.empty_head_sig : natural>>;
|
||||||
|
|
||||||
-- Wrapper to use procedure as function
|
-- Wrapper to use procedure as function
|
||||||
impure function gen_rand_loc_2 return LOCATOR_TYPE is
|
impure function gen_rand_loc_2 return LOCATOR_TYPE is
|
||||||
variable ret : LOCATOR_TYPE := EMPTY_LOCATOR;
|
variable ret : LOCATOR_TYPE := EMPTY_LOCATOR;
|
||||||
@ -171,7 +173,7 @@ begin
|
|||||||
wait until rising_edge(clk);
|
wait until rising_edge(clk);
|
||||||
wait until rising_edge(clk);
|
wait until rising_edge(clk);
|
||||||
reset <= '0';
|
reset <= '0';
|
||||||
-- MEMORY STATE: -/0,1,2
|
-- MEMORY STATE -/0,25,50
|
||||||
|
|
||||||
Log("Match Participant 0 [Compatible]", INFO);
|
Log("Match Participant 0 [Compatible]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -192,10 +194,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 0(p0)/1,2
|
-- MEMORY STATE: 0(P0)/25,50
|
||||||
|
|
||||||
Log("Match Participant 1 [Compatible, Little Endian]", INFO);
|
Log("Match Participant 1 [Compatible, Little Endian]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -210,8 +213,6 @@ begin
|
|||||||
participant.availableBuiltinEndpoints(DISC_BUILTIN_ENDPOINT_PUBLICATIONS_DETECTOR) := '1';
|
participant.availableBuiltinEndpoints(DISC_BUILTIN_ENDPOINT_PUBLICATIONS_DETECTOR) := '1';
|
||||||
participant.availableBuiltinEndpoints(DISC_BUILTIN_ENDPOINT_PUBLICATIONS_ANNOUNCER) := '1';
|
participant.availableBuiltinEndpoints(DISC_BUILTIN_ENDPOINT_PUBLICATIONS_ANNOUNCER) := '1';
|
||||||
m1 := participant;
|
m1 := participant;
|
||||||
report "DOMAIN_ID: " & to_hstring(DOMAIN_ID);
|
|
||||||
report "PARTICIPANT DOMAIN_ID: " & to_hstring(participant.domainId);
|
|
||||||
gen_participant_data(participant, rtps_sub.data);
|
gen_participant_data(participant, rtps_sub.data);
|
||||||
gen_sentinel('1', rtps_sub.data);
|
gen_sentinel('1', rtps_sub.data);
|
||||||
gen_rtps_handler_out(rtps_sub, participant, stimulus);
|
gen_rtps_handler_out(rtps_sub, participant, stimulus);
|
||||||
@ -219,10 +220,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p1),0(p0)/2
|
-- MEMORY STATE: 25(P1),0(P0)/50
|
||||||
|
|
||||||
Log("Ignore Participant 2 [Incompatible Domain ID]", INFO);
|
Log("Ignore Participant 2 [Incompatible Domain ID]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -242,10 +244,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p1),0(p0)/2
|
-- MEMORY STATE: 25(P1),0(P0)/50
|
||||||
|
|
||||||
Log("Unmatch Participant 0 [Incompatible Domain ID]", INFO);
|
Log("Unmatch Participant 0 [Incompatible Domain ID]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -267,10 +270,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p1)/0,2
|
-- MEMORY STATE: 25(P1)/0,50
|
||||||
|
|
||||||
|
|
||||||
Log("Ignore Participant 2 [Incompatible Domain TAG]", INFO);
|
Log("Ignore Participant 2 [Incompatible Domain TAG]", INFO);
|
||||||
@ -291,10 +295,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p1)/0,2
|
-- MEMORY STATE: 25(P1)/0,50
|
||||||
|
|
||||||
Log("Unmatch Participant 1 [Incompatible Domain TAG]", INFO);
|
Log("Unmatch Participant 1 [Incompatible Domain TAG]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -315,10 +320,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: -/1,0,2
|
-- MEMORY STATE: -/25,0,50
|
||||||
|
|
||||||
Log("Match Participant 0 [+Unicast Metatraffic Locator]", INFO);
|
Log("Match Participant 0 [+Unicast Metatraffic Locator]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -340,10 +346,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p0)/0,2
|
-- MEMORY STATE: 25(P0)/0,50
|
||||||
|
|
||||||
Log("Match Participant 1 [ALL Values Set non default]", INFO);
|
Log("Match Participant 1 [ALL Values Set non default]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -372,10 +379,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 0(p1),1(p0)/2
|
-- MEMORY STATE: 0(P1),25(P0)/50
|
||||||
|
|
||||||
Log("Ignore Participant 2 [Incompatible Protocol Version]", INFO);
|
Log("Ignore Participant 2 [Incompatible Protocol Version]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -395,10 +403,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 0(p1),1(p0)/2
|
-- MEMORY STATE: 0(P1),25(P0)/50
|
||||||
|
|
||||||
Log("Unmatch Participant 0 [Incompatible Protocol Version]", INFO);
|
Log("Unmatch Participant 0 [Incompatible Protocol Version]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -420,10 +429,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 0(p1)/1,2
|
-- MEMORY STATE: 0(P1)/25,50
|
||||||
|
|
||||||
Log("Match Participant 0 [Compatible, Only Subscribers]", INFO);
|
Log("Match Participant 0 [Compatible, Only Subscribers]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -442,10 +452,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p0),0(p1)/2
|
-- MEMORY STATE: 25(P0),0(P1)/50
|
||||||
|
|
||||||
Log("Match Participant 2 [Compatible, Only Publishers]", INFO);
|
Log("Match Participant 2 [Compatible, Only Publishers]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -464,10 +475,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 74, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 2(p2),1(p0),0(p1)/-
|
-- MEMORY STATE: 50(P2),25(P0),0(P1)/-
|
||||||
|
|
||||||
Log("Update Participant 1 [Valid/Invalid Default/Metatraffic Locators]", INFO);
|
Log("Update Participant 1 [Valid/Invalid Default/Metatraffic Locators]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -501,10 +513,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 74, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 2(p2),1(p0),0(p1)/-
|
-- MEMORY STATE: 50(P2),25(P0),0(P1)/-
|
||||||
|
|
||||||
Log("Ignore Participant 3 [Memory Full]", INFO);
|
Log("Ignore Participant 3 [Memory Full]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -527,9 +540,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 74, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
|
-- MEMORY STATE: 50(P2),25(P0),0(P1)/-
|
||||||
|
|
||||||
Log("Unmatch Participant 2 [No Endpoints]", INFO);
|
Log("Unmatch Participant 2 [No Endpoints]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -546,10 +561,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p0),0(p1)/2
|
-- MEMORY STATE: 25(P0),0(P1)/50
|
||||||
|
|
||||||
Log("Unmatch Participant 0 [Incompatible Built-in Endpoints]", INFO);
|
Log("Unmatch Participant 0 [Incompatible Built-in Endpoints]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -568,10 +584,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 0(p1)/1,2
|
-- MEMORY STATE: 0(P1)/25,50
|
||||||
|
|
||||||
Log("Unmatch Participant 1 [Unregister/Dispose]", INFO);
|
Log("Unmatch Participant 1 [Unregister/Dispose]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -588,11 +605,12 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.inlineQos := EMPTY_TEST_PACKET;
|
rtps_sub.inlineQos := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
rtps_sub.flags := (SUBMESSAGE_DATA_FLAG_POS => '1', others => '0');
|
rtps_sub.flags := (SUBMESSAGE_DATA_FLAG_POS => '1', others => '0');
|
||||||
-- MEMORY STATE: -/0,1,2
|
-- MEMORY STATE: -/0,25,50
|
||||||
|
|
||||||
stim_done <= '1';
|
stim_done <= '1';
|
||||||
wait_on_complete;
|
wait_on_complete;
|
||||||
|
|||||||
@ -107,6 +107,8 @@ begin
|
|||||||
variable m0, m1, m2 : PARTICIPANT_DATA_TYPE := DEFAULT_PARTICIPANT_DATA;
|
variable m0, m1, m2 : PARTICIPANT_DATA_TYPE := DEFAULT_PARTICIPANT_DATA;
|
||||||
variable p0, p1, p2, p3 : GUIDPREFIX_TYPE;
|
variable p0, p1, p2, p3 : GUIDPREFIX_TYPE;
|
||||||
|
|
||||||
|
alias empty_head is <<signal uut.empty_head_sig : natural>>;
|
||||||
|
|
||||||
-- Wrapper to use procedure as function
|
-- Wrapper to use procedure as function
|
||||||
impure function gen_rand_loc_2 return LOCATOR_TYPE is
|
impure function gen_rand_loc_2 return LOCATOR_TYPE is
|
||||||
variable ret : LOCATOR_TYPE := EMPTY_LOCATOR;
|
variable ret : LOCATOR_TYPE := EMPTY_LOCATOR;
|
||||||
@ -170,7 +172,7 @@ begin
|
|||||||
wait until rising_edge(clk);
|
wait until rising_edge(clk);
|
||||||
wait until rising_edge(clk);
|
wait until rising_edge(clk);
|
||||||
reset <= '0';
|
reset <= '0';
|
||||||
-- MEMORY STATE: -/0,1,2
|
-- MEMORY STATE: -/0,25,50
|
||||||
|
|
||||||
Log("Match Participant 0 [Compatible]", INFO);
|
Log("Match Participant 0 [Compatible]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -190,10 +192,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 0(p0)/1,2
|
-- MEMORY STATE: 0(P0)/25,50
|
||||||
|
|
||||||
Log("Match Participant 1 [Compatible, Little Endian]", INFO);
|
Log("Match Participant 1 [Compatible, Little Endian]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -207,8 +210,6 @@ begin
|
|||||||
participant.availableBuiltinEndpoints(DISC_BUILTIN_ENDPOINT_PUBLICATIONS_DETECTOR) := '1';
|
participant.availableBuiltinEndpoints(DISC_BUILTIN_ENDPOINT_PUBLICATIONS_DETECTOR) := '1';
|
||||||
participant.availableBuiltinEndpoints(DISC_BUILTIN_ENDPOINT_PUBLICATIONS_ANNOUNCER) := '1';
|
participant.availableBuiltinEndpoints(DISC_BUILTIN_ENDPOINT_PUBLICATIONS_ANNOUNCER) := '1';
|
||||||
m1 := participant;
|
m1 := participant;
|
||||||
report "DOMAIN_ID: " & to_hstring(DOMAIN_ID);
|
|
||||||
report "PARTICIPANT DOMAIN_ID: " & to_hstring(participant.domainId);
|
|
||||||
gen_participant_data(participant, rtps_sub.data);
|
gen_participant_data(participant, rtps_sub.data);
|
||||||
gen_sentinel('1', rtps_sub.data);
|
gen_sentinel('1', rtps_sub.data);
|
||||||
gen_rtps_handler_out(rtps_sub, participant, stimulus);
|
gen_rtps_handler_out(rtps_sub, participant, stimulus);
|
||||||
@ -216,10 +217,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p1),0(p0)/2
|
-- MEMORY STATE: 25(P1),0(P0)/50
|
||||||
|
|
||||||
Log("Ignore Participant 2 [Incompatible Domain ID]", INFO);
|
Log("Ignore Participant 2 [Incompatible Domain ID]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -238,10 +240,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p1),0(p0)/2
|
-- MEMORY STATE: 25(P1),0(P0)/50
|
||||||
|
|
||||||
Log("Unmatch Participant 0 [Incompatible Domain ID]", INFO);
|
Log("Unmatch Participant 0 [Incompatible Domain ID]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -262,10 +265,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p1)/0,2
|
-- MEMORY STATE: 25(P1)/0,50
|
||||||
|
|
||||||
|
|
||||||
Log("Ignore Participant 2 [Incompatible Domain TAG]", INFO);
|
Log("Ignore Participant 2 [Incompatible Domain TAG]", INFO);
|
||||||
@ -285,10 +289,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p1)/0,2
|
-- MEMORY STATE: 25(P1)/0,50
|
||||||
|
|
||||||
Log("Unmatch Participant 1 [Incompatible Domain TAG]", INFO);
|
Log("Unmatch Participant 1 [Incompatible Domain TAG]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -308,10 +313,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: -/1,0,2
|
-- MEMORY STATE: -/25,0,50
|
||||||
|
|
||||||
Log("Match Participant 0 [+Unicast Metatraffic Locator]", INFO);
|
Log("Match Participant 0 [+Unicast Metatraffic Locator]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -332,10 +338,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p0)/0,2
|
-- MEMORY STATE: 25(P0)/0,50
|
||||||
|
|
||||||
Log("Match Participant 1 [ALL Values Set non default]", INFO);
|
Log("Match Participant 1 [ALL Values Set non default]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -363,10 +370,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 0(p1),1(p0)/2
|
-- MEMORY STATE: 0(P1),25(P0)/50
|
||||||
|
|
||||||
Log("Ignore Participant 2 [Incompatible Protocol Version]", INFO);
|
Log("Ignore Participant 2 [Incompatible Protocol Version]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -385,10 +393,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 0(p1),1(p0)/2
|
-- MEMORY STATE: 0(P1),25(P0)/50
|
||||||
|
|
||||||
Log("Unmatch Participant 0 [Incompatible Protocol Version]", INFO);
|
Log("Unmatch Participant 0 [Incompatible Protocol Version]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -409,10 +418,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 0(p1)/1,2
|
-- MEMORY STATE: 0(P1)/25,50
|
||||||
|
|
||||||
Log("Match Participant 0 [Compatible, Only Subscribers]", INFO);
|
Log("Match Participant 0 [Compatible, Only Subscribers]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -430,10 +440,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p0),0(p1)/2
|
-- MEMORY STATE: 25(P0),0(P1)/50
|
||||||
|
|
||||||
Log("Match Participant 2 [Compatible, Only Publishers]", INFO);
|
Log("Match Participant 2 [Compatible, Only Publishers]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -451,10 +462,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 74, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 2(p2),1(p0),0(p1)/-
|
-- MEMORY STATE: 50(P2),25(P0),0(P1)/-
|
||||||
|
|
||||||
Log("Update Participant 1 [Valid/Invalid Default/Metatraffic Locators]", INFO);
|
Log("Update Participant 1 [Valid/Invalid Default/Metatraffic Locators]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -487,10 +499,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 74, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 2(p2),1(p0),0(p1)/-
|
-- MEMORY STATE: 50(P2),25(P0),0(P1)/-
|
||||||
|
|
||||||
Log("Ignore Participant 3 [Memory Full]", INFO);
|
Log("Ignore Participant 3 [Memory Full]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -512,9 +525,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 74, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
|
-- MEMORY STATE: 50(P2),25(P0),0(P1)/-
|
||||||
|
|
||||||
Log("Unmatch Participant 2 [No Endpoints]", INFO);
|
Log("Unmatch Participant 2 [No Endpoints]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -530,10 +545,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 1(p0),0(p1)/2
|
-- MEMORY STATE: 25(P0),0(P1)/50
|
||||||
|
|
||||||
Log("Unmatch Participant 0 [Incompatible Built-in Endpoints]", INFO);
|
Log("Unmatch Participant 0 [Incompatible Built-in Endpoints]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -551,10 +567,11 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
-- MEMORY STATE: 0(p1)/1,2
|
-- MEMORY STATE: 0(P1)/25,50
|
||||||
|
|
||||||
Log("Unmatch Participant 1 [Unregister/Dispose]", INFO);
|
Log("Unmatch Participant 1 [Unregister/Dispose]", INFO);
|
||||||
participant := DEFAULT_PARTICIPANT_DATA;
|
participant := DEFAULT_PARTICIPANT_DATA;
|
||||||
@ -570,11 +587,12 @@ begin
|
|||||||
start_test;
|
start_test;
|
||||||
wait_on_sent;
|
wait_on_sent;
|
||||||
wait_on_mem_check;
|
wait_on_mem_check;
|
||||||
|
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||||
stimulus := EMPTY_TEST_PACKET;
|
stimulus := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.inlineQos := EMPTY_TEST_PACKET;
|
rtps_sub.inlineQos := EMPTY_TEST_PACKET;
|
||||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||||
rtps_sub.flags := (SUBMESSAGE_DATA_FLAG_POS => '1', others => '0');
|
rtps_sub.flags := (SUBMESSAGE_DATA_FLAG_POS => '1', others => '0');
|
||||||
-- MEMORY STATE: -/0,1,2
|
-- MEMORY STATE: -/0,25,50
|
||||||
|
|
||||||
stim_done <= '1';
|
stim_done <= '1';
|
||||||
wait_on_complete;
|
wait_on_complete;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -22,7 +22,7 @@ package rtps_test_package is
|
|||||||
|
|
||||||
-- Frame Sizes have to be specified, so that direct memory probing is possible
|
-- Frame Sizes have to be specified, so that direct memory probing is possible
|
||||||
-- rtps_discovery_module Participant Frame Size
|
-- rtps_discovery_module Participant Frame Size
|
||||||
constant PARTICIPANT_FRAME_SIZE : natural := 24;
|
constant PARTICIPANT_FRAME_SIZE : natural := 25;
|
||||||
-- rtps_reader Endpoint Frame Size (RELIABLE=TRUE)
|
-- rtps_reader Endpoint Frame Size (RELIABLE=TRUE)
|
||||||
constant WRITER_ENDPOINT_FRAME_SIZE_A : natural := 17;
|
constant WRITER_ENDPOINT_FRAME_SIZE_A : natural := 17;
|
||||||
-- rtps_reader Endpoint Frame Size (RELIABLE=FALSE)
|
-- rtps_reader Endpoint Frame Size (RELIABLE=FALSE)
|
||||||
@ -1871,28 +1871,28 @@ package body rtps_test_package is
|
|||||||
ret(i).addr := start + i;
|
ret(i).addr := start + i;
|
||||||
case (i) is
|
case (i) is
|
||||||
-- GUID Prefix 1/3
|
-- GUID Prefix 1/3
|
||||||
when 1 =>
|
when 0 =>
|
||||||
ret(i).data := ref.guidPrefix(0);
|
ret(i).data := ref.guidPrefix(0);
|
||||||
-- GUID Prefix 2/3
|
-- GUID Prefix 2/3
|
||||||
when 2 =>
|
when 1 =>
|
||||||
ret(i).data := ref.guidPrefix(1);
|
ret(i).data := ref.guidPrefix(1);
|
||||||
-- GUID Prefix 3/3
|
-- GUID Prefix 3/3
|
||||||
when 3 =>
|
when 2 =>
|
||||||
ret(i).data := ref.guidPrefix(2);
|
ret(i).data := ref.guidPrefix(2);
|
||||||
-- METATRAFFIC IPv4 Address
|
-- METATRAFFIC IPv4 Address
|
||||||
when 4 =>
|
when 3 =>
|
||||||
ret(i).data := meta_loc.addr(IPv4_ADDRESS_WIDTH-1 downto 0);
|
ret(i).data := meta_loc.addr(IPv4_ADDRESS_WIDTH-1 downto 0);
|
||||||
-- DEFAULT IPv4 Address
|
-- DEFAULT IPv4 Address
|
||||||
when 5 =>
|
when 4 =>
|
||||||
ret(i).data := user_loc.addr(IPv4_ADDRESS_WIDTH-1 downto 0);
|
ret(i).data := user_loc.addr(IPv4_ADDRESS_WIDTH-1 downto 0);
|
||||||
-- METATRAFFIC & DEFAULT UDP Port
|
-- METATRAFFIC & DEFAULT UDP Port
|
||||||
when 6 =>
|
when 5 =>
|
||||||
ret(i).data := meta_loc.portn(UDP_PORT_WIDTH-1 downto 0) & user_loc.portn(UDP_PORT_WIDTH-1 downto 0);
|
ret(i).data := meta_loc.portn(UDP_PORT_WIDTH-1 downto 0) & user_loc.portn(UDP_PORT_WIDTH-1 downto 0);
|
||||||
-- Lease Duration 1/2
|
-- Lease Duration 1/2
|
||||||
when 9 =>
|
when 8 =>
|
||||||
ret(i).data := std_logic_vector(ref.leaseDuration(0));
|
ret(i).data := std_logic_vector(ref.leaseDuration(0));
|
||||||
-- Lease Duration 2/2
|
-- Lease Duration 2/2
|
||||||
when 10 =>
|
when 9 =>
|
||||||
ret(i).data := std_logic_vector(ref.leaseDuration(1));
|
ret(i).data := std_logic_vector(ref.leaseDuration(1));
|
||||||
-- Other Fields Ignored
|
-- Other Fields Ignored
|
||||||
when others =>
|
when others =>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user