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_arzkrto.vhd
|
||||||
#analyze Level_0/L0_dds_reader_test3_arznriu.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_test3_arzksto.vhd
|
||||||
analyze Level_0/L0_dds_reader_test4_arzkriu.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_arznriu.vhd
|
||||||
|
analyze Level_0/L0_dds_reader_test5_arzkriu.vhd
|
||||||
|
|
||||||
#simulate L0_rtps_handler_test1
|
#simulate L0_rtps_handler_test1
|
||||||
#simulate L0_rtps_handler_test2
|
#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_arzkrto
|
||||||
#simulate L0_dds_reader_test3_arznriu
|
#simulate L0_dds_reader_test3_arznriu
|
||||||
#simulate L0_dds_reader_test3_arzksto
|
#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_test4_arznriu
|
||||||
|
simulate L0_dds_reader_test5_arzkriu
|
||||||
@ -823,6 +823,13 @@ begin
|
|||||||
stage_next <= SKIP_AND_RETURN;
|
stage_next <= SKIP_AND_RETURN;
|
||||||
cnt_next <= 0;
|
cnt_next <= 0;
|
||||||
rtps_return_code_latch_next <= REJECTED;
|
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
|
else
|
||||||
assert (oldest_sample /= SAMPLE_MEMORY_MAX_ADDRESS) severity FAILURE;
|
assert (oldest_sample /= SAMPLE_MEMORY_MAX_ADDRESS) severity FAILURE;
|
||||||
-- Do not ACK Operation
|
-- Do not ACK Operation
|
||||||
@ -1433,7 +1440,7 @@ begin
|
|||||||
status_sig_next <= status_sig or SAMPLE_REJECTED_STATUS;
|
status_sig_next <= status_sig or SAMPLE_REJECTED_STATUS;
|
||||||
sample_rej_cnt_next <= sample_rej_cnt + 1;
|
sample_rej_cnt_next <= sample_rej_cnt + 1;
|
||||||
sample_rej_cnt_change_next <= sample_rej_cnt_change + 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;
|
sample_rej_last_inst_next <= key_hash;
|
||||||
else
|
else
|
||||||
-- Latch next Payload Slot and Continue
|
-- Latch next Payload Slot and Continue
|
||||||
@ -4223,7 +4230,7 @@ begin
|
|||||||
valid_out_dds <= '1';
|
valid_out_dds <= '1';
|
||||||
if (ready_out_dds = '1') then
|
if (ready_out_dds = '1') then
|
||||||
-- Reset
|
-- Reset
|
||||||
sample_rej_last_reason <= NOT_REJECTED;
|
sample_rej_last_reason_next <= NOT_REJECTED;
|
||||||
cnt_next <= cnt + 1;
|
cnt_next <= cnt + 1;
|
||||||
end if;
|
end if;
|
||||||
-- Last Instance Handle 1/4
|
-- Last Instance Handle 1/4
|
||||||
@ -4254,6 +4261,7 @@ begin
|
|||||||
last_word_out_dds <= '1';
|
last_word_out_dds <= '1';
|
||||||
if (ready_out_dds = '1') then
|
if (ready_out_dds = '1') then
|
||||||
-- Reset
|
-- Reset
|
||||||
|
sample_rej_last_inst_next <= HANDLE_NIL;
|
||||||
status_sig_next <= status_sig and (not SAMPLE_REJECTED_STATUS);
|
status_sig_next <= status_sig and (not SAMPLE_REJECTED_STATUS);
|
||||||
|
|
||||||
-- DONE
|
-- DONE
|
||||||
@ -4313,6 +4321,7 @@ begin
|
|||||||
last_word_out_dds <= '1';
|
last_word_out_dds <= '1';
|
||||||
if (ready_out_dds = '1') then
|
if (ready_out_dds = '1') then
|
||||||
-- Reset
|
-- Reset
|
||||||
|
deadline_miss_last_inst_next <= HANDLE_NIL;
|
||||||
status_sig_next <= status_sig and (not REQUESTED_DEADLINE_MISSED_STATUS);
|
status_sig_next <= status_sig and (not REQUESTED_DEADLINE_MISSED_STATUS);
|
||||||
|
|
||||||
-- DONE
|
-- DONE
|
||||||
|
|||||||
@ -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_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_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));
|
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)
|
-- *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));
|
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