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 |
|
||||
+---------------------------------------------------------------+
|
||||
01| |
|
||||
00| |
|
||||
+ +
|
||||
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 +
|
||||
07| |
|
||||
+---------------------------------------------------------------+
|
||||
08| |
|
||||
+---------------------------------------------------------------+
|
||||
09| |
|
||||
+ LEASE_DURATION +
|
||||
09| |
|
||||
+---------------------------------------------------------------+
|
||||
10| |
|
||||
+---------------------------------------------------------------+
|
||||
11| |
|
||||
+ LEASE_DEADLINE +
|
||||
12| |
|
||||
11| |
|
||||
+---------------------------------------------------------+-+-+-+
|
||||
13| UNUSED |P|S|M|
|
||||
12| UNUSED |P|S|M|
|
||||
+---------------------------------------------------------+-+-+-+
|
||||
14| |
|
||||
13| |
|
||||
+ ACKNACK_RES_TIME +
|
||||
14| |
|
||||
+---------------------------------------------------------------+
|
||||
15| |
|
||||
+---------------------------------------------------------------+
|
||||
16| |
|
||||
+ HEARTBEAT_RES_TIME +
|
||||
16| |
|
||||
+---------------------------------------------------------------+
|
||||
17| |
|
||||
+---------------------------------------------------------------+
|
||||
18| |
|
||||
+ PUBLICATION_SEQ_NR +
|
||||
18| |
|
||||
+---------------------------------------------------------------+
|
||||
19| |
|
||||
+---------------------------------------------------------------+
|
||||
20| |
|
||||
+ SUBSCRIPTION_SEQ_NR +
|
||||
21| |
|
||||
20| |
|
||||
+---------------------------------------------------------------+
|
||||
22| |
|
||||
21| |
|
||||
+ MESSAGE_SEQ_NR +
|
||||
23| |
|
||||
22| |
|
||||
+---------------------------------------------------------------+
|
||||
23| NEXT_ADDRESS |
|
||||
+---------------------------------------------------------------+
|
||||
24| PREV_ADDRESS |
|
||||
+---------------------------------------------------------------+
|
||||
|
||||
M...Send Message Data (Liveliness Update)
|
||||
|
||||
@ -108,6 +108,8 @@ begin
|
||||
variable m0, m1, m2 : PARTICIPANT_DATA_TYPE := DEFAULT_PARTICIPANT_DATA;
|
||||
variable p0, p1, p2, p3 : GUIDPREFIX_TYPE;
|
||||
|
||||
alias empty_head is <<signal uut.empty_head_sig : natural>>;
|
||||
|
||||
-- Wrapper to use procedure as function
|
||||
impure function gen_rand_loc_2 return LOCATOR_TYPE is
|
||||
variable ret : LOCATOR_TYPE := EMPTY_LOCATOR;
|
||||
@ -171,7 +173,7 @@ begin
|
||||
wait until rising_edge(clk);
|
||||
wait until rising_edge(clk);
|
||||
reset <= '0';
|
||||
-- MEMORY STATE: -/0,1,2
|
||||
-- MEMORY STATE -/0,25,50
|
||||
|
||||
Log("Match Participant 0 [Compatible]", INFO);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -192,10 +194,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -210,8 +213,6 @@ begin
|
||||
participant.availableBuiltinEndpoints(DISC_BUILTIN_ENDPOINT_PUBLICATIONS_DETECTOR) := '1';
|
||||
participant.availableBuiltinEndpoints(DISC_BUILTIN_ENDPOINT_PUBLICATIONS_ANNOUNCER) := '1';
|
||||
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_sentinel('1', rtps_sub.data);
|
||||
gen_rtps_handler_out(rtps_sub, participant, stimulus);
|
||||
@ -219,10 +220,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -242,10 +244,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -267,10 +270,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
@ -291,10 +295,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -315,10 +320,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -340,10 +346,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -372,10 +379,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -395,10 +403,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -420,10 +429,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -442,10 +452,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -464,10 +475,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 74, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -501,10 +513,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 74, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -527,9 +540,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 74, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||
-- MEMORY STATE: 50(P2),25(P0),0(P1)/-
|
||||
|
||||
Log("Unmatch Participant 2 [No Endpoints]", INFO);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -546,10 +561,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -568,10 +584,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -588,11 +605,12 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.inlineQos := EMPTY_TEST_PACKET;
|
||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||
rtps_sub.flags := (SUBMESSAGE_DATA_FLAG_POS => '1', others => '0');
|
||||
-- MEMORY STATE: -/0,1,2
|
||||
-- MEMORY STATE: -/0,25,50
|
||||
|
||||
stim_done <= '1';
|
||||
wait_on_complete;
|
||||
|
||||
@ -107,6 +107,8 @@ begin
|
||||
variable m0, m1, m2 : PARTICIPANT_DATA_TYPE := DEFAULT_PARTICIPANT_DATA;
|
||||
variable p0, p1, p2, p3 : GUIDPREFIX_TYPE;
|
||||
|
||||
alias empty_head is <<signal uut.empty_head_sig : natural>>;
|
||||
|
||||
-- Wrapper to use procedure as function
|
||||
impure function gen_rand_loc_2 return LOCATOR_TYPE is
|
||||
variable ret : LOCATOR_TYPE := EMPTY_LOCATOR;
|
||||
@ -170,7 +172,7 @@ begin
|
||||
wait until rising_edge(clk);
|
||||
wait until rising_edge(clk);
|
||||
reset <= '0';
|
||||
-- MEMORY STATE: -/0,1,2
|
||||
-- MEMORY STATE: -/0,25,50
|
||||
|
||||
Log("Match Participant 0 [Compatible]", INFO);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -190,10 +192,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -207,8 +210,6 @@ begin
|
||||
participant.availableBuiltinEndpoints(DISC_BUILTIN_ENDPOINT_PUBLICATIONS_DETECTOR) := '1';
|
||||
participant.availableBuiltinEndpoints(DISC_BUILTIN_ENDPOINT_PUBLICATIONS_ANNOUNCER) := '1';
|
||||
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_sentinel('1', rtps_sub.data);
|
||||
gen_rtps_handler_out(rtps_sub, participant, stimulus);
|
||||
@ -216,10 +217,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -238,10 +240,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -262,10 +265,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
@ -285,10 +289,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -308,10 +313,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -332,10 +338,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -363,10 +370,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -385,10 +393,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -409,10 +418,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -430,10 +440,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -451,10 +462,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 74, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -487,10 +499,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 74, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -512,9 +525,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 74, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||
-- MEMORY STATE: 50(P2),25(P0),0(P1)/-
|
||||
|
||||
Log("Unmatch Participant 2 [No Endpoints]", INFO);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -530,10 +545,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 50, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -551,10 +567,11 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 25, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.data := EMPTY_TEST_PACKET;
|
||||
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);
|
||||
participant := DEFAULT_PARTICIPANT_DATA;
|
||||
@ -570,11 +587,12 @@ begin
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
AlertIf(empty_head /= 0, "Memory Empty List Head incorrect", FAILURE);
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
rtps_sub.inlineQos := EMPTY_TEST_PACKET;
|
||||
rtps_sub.writerSN := rtps_sub.writerSN + 1;
|
||||
rtps_sub.flags := (SUBMESSAGE_DATA_FLAG_POS => '1', others => '0');
|
||||
-- MEMORY STATE: -/0,1,2
|
||||
-- MEMORY STATE: -/0,25,50
|
||||
|
||||
stim_done <= '1';
|
||||
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
|
||||
-- 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)
|
||||
constant WRITER_ENDPOINT_FRAME_SIZE_A : natural := 17;
|
||||
-- rtps_reader Endpoint Frame Size (RELIABLE=FALSE)
|
||||
@ -1871,28 +1871,28 @@ package body rtps_test_package is
|
||||
ret(i).addr := start + i;
|
||||
case (i) is
|
||||
-- GUID Prefix 1/3
|
||||
when 1 =>
|
||||
when 0 =>
|
||||
ret(i).data := ref.guidPrefix(0);
|
||||
-- GUID Prefix 2/3
|
||||
when 2 =>
|
||||
when 1 =>
|
||||
ret(i).data := ref.guidPrefix(1);
|
||||
-- GUID Prefix 3/3
|
||||
when 3 =>
|
||||
when 2 =>
|
||||
ret(i).data := ref.guidPrefix(2);
|
||||
-- METATRAFFIC IPv4 Address
|
||||
when 4 =>
|
||||
when 3 =>
|
||||
ret(i).data := meta_loc.addr(IPv4_ADDRESS_WIDTH-1 downto 0);
|
||||
-- DEFAULT IPv4 Address
|
||||
when 5 =>
|
||||
when 4 =>
|
||||
ret(i).data := user_loc.addr(IPv4_ADDRESS_WIDTH-1 downto 0);
|
||||
-- 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);
|
||||
-- Lease Duration 1/2
|
||||
when 9 =>
|
||||
when 8 =>
|
||||
ret(i).data := std_logic_vector(ref.leaseDuration(0));
|
||||
-- Lease Duration 2/2
|
||||
when 10 =>
|
||||
when 9 =>
|
||||
ret(i).data := std_logic_vector(ref.leaseDuration(1));
|
||||
-- Other Fields Ignored
|
||||
when others =>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user