Add test 5 of DDS Reader
Test Sample Rejected Status Handling. Test GET_SAMPLE_REJECTED_STATUS DDS Operation. Extend Sample Rejected Status Kind by REJECTED_BY_PAYLOAD_MEMORY_LIMIT
This commit is contained in:
parent
7a096de5c1
commit
996c1fe962
198
sim/L0_dds_reader_test5_arzkriu.do
Normal file
198
sim/L0_dds_reader_test5_arzkriu.do
Normal file
File diff suppressed because one or more lines are too long
1010
src/Tests/Level_0/L0_dds_reader_test5_arzkriu.vhd
Normal file
1010
src/Tests/Level_0/L0_dds_reader_test5_arzkriu.vhd
Normal file
File diff suppressed because it is too large
Load Diff
@ -77,8 +77,9 @@ analyze ../dds_reader.vhd
|
||||
#analyze Level_0/L0_dds_reader_test3_arzkrto.vhd
|
||||
#analyze Level_0/L0_dds_reader_test3_arznriu.vhd
|
||||
#analyze Level_0/L0_dds_reader_test3_arzksto.vhd
|
||||
analyze Level_0/L0_dds_reader_test4_arzkriu.vhd
|
||||
analyze Level_0/L0_dds_reader_test4_arznriu.vhd
|
||||
#analyze Level_0/L0_dds_reader_test4_arzkriu.vhd
|
||||
#analyze Level_0/L0_dds_reader_test4_arznriu.vhd
|
||||
analyze Level_0/L0_dds_reader_test5_arzkriu.vhd
|
||||
|
||||
#simulate L0_rtps_handler_test1
|
||||
#simulate L0_rtps_handler_test2
|
||||
@ -137,5 +138,6 @@ analyze Level_0/L0_dds_reader_test4_arznriu.vhd
|
||||
#simulate L0_dds_reader_test3_arzkrto
|
||||
#simulate L0_dds_reader_test3_arznriu
|
||||
#simulate L0_dds_reader_test3_arzksto
|
||||
simulate L0_dds_reader_test4_arzkriu
|
||||
#simulate L0_dds_reader_test4_arzkriu
|
||||
#simulate L0_dds_reader_test4_arznriu
|
||||
simulate L0_dds_reader_test5_arzkriu
|
||||
@ -820,9 +820,16 @@ begin
|
||||
if (HISTORY_QOS = KEEP_ALL_HISTORY_QOS and RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) then
|
||||
ack_rtps <= '1';
|
||||
-- Reject Change
|
||||
stage_next <= SKIP_AND_RETURN;
|
||||
cnt_next <= 0;
|
||||
rtps_return_code_latch_next <= REJECTED;
|
||||
stage_next <= SKIP_AND_RETURN;
|
||||
cnt_next <= 0;
|
||||
rtps_return_code_latch_next <= REJECTED;
|
||||
|
||||
-- Update Sample Reject Status
|
||||
status_sig_next <= status_sig or SAMPLE_REJECTED_STATUS;
|
||||
sample_rej_cnt_next <= sample_rej_cnt + 1;
|
||||
sample_rej_cnt_change_next <= sample_rej_cnt_change + 1;
|
||||
sample_rej_last_reason_next <= REJECTED_BY_PAYOAD_MEMORY_LIMIT;
|
||||
sample_rej_last_inst_next <= HANDLE_NIL;
|
||||
else
|
||||
assert (oldest_sample /= SAMPLE_MEMORY_MAX_ADDRESS) severity FAILURE;
|
||||
-- Do not ACK Operation
|
||||
@ -1424,16 +1431,16 @@ begin
|
||||
-- No Empty Payload Slots available
|
||||
if (resize(unsigned(payload_read_data),PAYLOAD_MEMORY_ADDR_WIDTH) = PAYLOAD_MEMORY_MAX_ADDRESS) then
|
||||
-- Reject Change
|
||||
rtps_return_code_latch_next <= REJECTED;
|
||||
stage_next <= SKIP_AND_RETURN;
|
||||
cnt_next <= 0;
|
||||
rtps_return_code_latch_next <= REJECTED;
|
||||
stage_next <= SKIP_AND_RETURN;
|
||||
cnt_next <= 0;
|
||||
-- Abort Key Hash Generation
|
||||
abort_kh <= '1';
|
||||
-- Update Sample Reject Status
|
||||
status_sig_next <= status_sig or SAMPLE_REJECTED_STATUS;
|
||||
sample_rej_cnt_next <= sample_rej_cnt + 1;
|
||||
sample_rej_cnt_change_next <= sample_rej_cnt_change + 1;
|
||||
sample_rej_last_reason_next <= REJECTED_BY_SAMPLES_LIMIT;
|
||||
sample_rej_last_reason_next <= REJECTED_BY_PAYOAD_MEMORY_LIMIT;
|
||||
sample_rej_last_inst_next <= key_hash;
|
||||
else
|
||||
-- Latch next Payload Slot and Continue
|
||||
@ -4223,7 +4230,7 @@ begin
|
||||
valid_out_dds <= '1';
|
||||
if (ready_out_dds = '1') then
|
||||
-- Reset
|
||||
sample_rej_last_reason <= NOT_REJECTED;
|
||||
sample_rej_last_reason_next <= NOT_REJECTED;
|
||||
cnt_next <= cnt + 1;
|
||||
end if;
|
||||
-- Last Instance Handle 1/4
|
||||
@ -4254,7 +4261,8 @@ begin
|
||||
last_word_out_dds <= '1';
|
||||
if (ready_out_dds = '1') then
|
||||
-- Reset
|
||||
status_sig_next <= status_sig and (not SAMPLE_REJECTED_STATUS);
|
||||
sample_rej_last_inst_next <= HANDLE_NIL;
|
||||
status_sig_next <= status_sig and (not SAMPLE_REJECTED_STATUS);
|
||||
|
||||
-- DONE
|
||||
stage_next <= IDLE;
|
||||
@ -4313,7 +4321,8 @@ begin
|
||||
last_word_out_dds <= '1';
|
||||
if (ready_out_dds = '1') then
|
||||
-- Reset
|
||||
status_sig_next <= status_sig and (not REQUESTED_DEADLINE_MISSED_STATUS);
|
||||
deadline_miss_last_inst_next <= HANDLE_NIL;
|
||||
status_sig_next <= status_sig and (not REQUESTED_DEADLINE_MISSED_STATUS);
|
||||
|
||||
-- DONE
|
||||
stage_next <= IDLE;
|
||||
|
||||
@ -175,6 +175,8 @@ package rtps_package is
|
||||
constant REJECTED_BY_INSTANCES_LIMIT : std_logic_vector(CDR_ENUMERATION_WIDTH-1 downto 0) := std_logic_vector(to_unsigned(1,CDR_ENUMERATION_WIDTH));
|
||||
constant REJECTED_BY_SAMPLES_LIMIT : std_logic_vector(CDR_ENUMERATION_WIDTH-1 downto 0) := std_logic_vector(to_unsigned(2,CDR_ENUMERATION_WIDTH));
|
||||
constant REJECTED_BY_SAMPLES_PER_INSTANCE_LIMIT : std_logic_vector(CDR_ENUMERATION_WIDTH-1 downto 0) := std_logic_vector(to_unsigned(3,CDR_ENUMERATION_WIDTH));
|
||||
-- Extension
|
||||
constant REJECTED_BY_PAYOAD_MEMORY_LIMIT : std_logic_vector(CDR_ENUMERATION_WIDTH-1 downto 0) := std_logic_vector(to_unsigned(255,CDR_ENUMERATION_WIDTH));
|
||||
|
||||
-- *QOS POLICY ID* (DDS)
|
||||
constant INVALID_QOS_POLICY_ID : std_logic_vector(QOS_POLICY_ID_WIDTH-1 downto 0) := std_logic_vector(to_unsigned(0,QOS_POLICY_ID_WIDTH));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user