Code refactoring

This commit is contained in:
Greek 2021-11-20 16:01:57 +01:00
parent 63465e8e30
commit cffaafb284
71 changed files with 182 additions and 178 deletions

View File

@ -146,7 +146,7 @@ begin
ack <= '1';
stage_next <= GET_PAYLOAD_HEADER;
-- Reset
key_hash_next <= HANDLE_NIL;
key_hash_next <= KEY_HASH_NIL;
when PUSH_SERIALIZED_KEY =>
ack <= '1';
-- Serialized Key is in PLAIN_CDR2 Big Endian encoding
@ -161,7 +161,7 @@ begin
when READ_KEY_HASH =>
ack <= '1';
-- Key Hash not calculated
if (key_hash = HANDLE_NIL) then
if (key_hash = KEY_HASH_NIL) then
stage_next <= START_KEY_HASH_GENERATION;
else
stage_next <= PUSH_KEY_HASH;
@ -477,7 +477,7 @@ begin
align_offset <= (others => '0');
data_in_latch <= (others => '0');
data_out_latch <= (others => '0');
key_hash <= HANDLE_NIL;
key_hash <= KEY_HASH_NIL;
-- ###GENERATED START###
-- RESET SYNC SIGNAL VALUE
-- ###GENERATED END###

View File

@ -64,7 +64,7 @@ entity Type2_reader_wrapper is
si_instance_state_user : out std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_user : out TIME_TYPE;
si_instance_handle_user : out INSTANCE_HANDLE_TYPE;
si_publication_handle_user : out PUBLICATION_HANDLE_TYPE;
si_publication_handle_user : out INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_user : out std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_user : out std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_user : out std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);

View File

@ -79,6 +79,8 @@
* If a Keyed Reader receives a DATA Message with no Key hash and no Payload, it will drop it since there is no way to determine the instance (And the SN will never be accepted).
* If a Best Effort Remote Reader sends a ACKNACK, he will indirectly receive a lease deadline and may timeout (DoS Attack)
* Since the Instance Handle has to be Unique but also orderable, we could use the actual Instance Memory Base Address. Since the Instances are in a list, we also have implicitly an order to all registered Instances. [It may be necessary to add a PREV pointer to the IMF to better support the read_previous_isntance operation]
- Not possible, because according to 2.2.2.5.3.16 read_next_instance, DDS v1.4:
'This ordering is between the instance handles: It [...] must be defined even for instance handles that do not correspond to instances currently managed by the DataReader.'
* Does the DEADLINE_QOS apply also to NOT_ALIVE Instances? (Current implementation makes no distinction)
* Does TIME_BASED_FILTER also apply to meta-samples (DISPOSED, NO_WRITERS)? That is an easy way to not get convergent state in different DDS Readers. What do other implementations do?
* The Participant GUID of the ParticipantMessageData is theoretically not needed, since it is the same as the source GUID of the Packet. This is done, so that the ParticipantMessageData has a key and can be decrypted as every other DATA Message. Our implementation checks if it is the expected GUID and drops it otherwise.

View File

@ -92,7 +92,7 @@ architecture testbench of L0_dds_reader_test1_abzkriu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -221,7 +221,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -91,7 +91,7 @@ architecture testbench of L0_dds_reader_test1_arzkriu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -220,7 +220,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -91,7 +91,7 @@ architecture testbench of L0_dds_reader_test1_arzksiu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -220,7 +220,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -70,7 +70,7 @@ architecture testbench of L0_dds_reader_test1_arznriu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -199,7 +199,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);
@ -305,7 +305,7 @@ begin
cc := DEFAULT_CACHE_CHANGE;
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.payload := gen_payload(HANDLE_NIL,10);
cc.payload := gen_payload(KEY_HASH_NIL,10);
cc.src_timestamp := gen_duration(1,0);
-- TEST: NORMAL ADD_CACHE_CHANGE
@ -332,7 +332,7 @@ begin
cc := DEFAULT_CACHE_CHANGE;
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.payload := gen_payload(HANDLE_NIL,30);
cc.payload := gen_payload(KEY_HASH_NIL,30);
cc.src_timestamp := gen_duration(2,0);
-- TEST: ADD SAMPLE BIGGER THAN AVAILABLE MEMORY SPACE
@ -355,7 +355,7 @@ begin
cc := DEFAULT_CACHE_CHANGE;
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.payload := gen_payload(HANDLE_NIL,18);
cc.payload := gen_payload(KEY_HASH_NIL,18);
cc.src_timestamp := gen_duration(3,0);
-- TEST: SAMPLE WITH UNALIGNED PAYLOAD [>1 SLOT]
@ -380,7 +380,7 @@ begin
cc := DEFAULT_CACHE_CHANGE;
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.payload := gen_payload(HANDLE_NIL,10);
cc.payload := gen_payload(KEY_HASH_NIL,10);
cc.src_timestamp := gen_duration(4,0);
-- TEST: ADD SAMPLE ON MAX_SAMPLES
@ -510,7 +510,7 @@ begin
cc := DEFAULT_CACHE_CHANGE;
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.payload := gen_payload(HANDLE_NIL,30);
cc.payload := gen_payload(KEY_HASH_NIL,30);
cc.src_timestamp := gen_duration(8,0);
Log("RTPS Operation ADD_CACHE_CHANGE [Writer 0, Aligned Payload (3 Slots)] (ACCEPTED)", INFO);
@ -533,7 +533,7 @@ begin
cc := DEFAULT_CACHE_CHANGE;
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.payload := gen_payload(HANDLE_NIL,10);
cc.payload := gen_payload(KEY_HASH_NIL,10);
cc.src_timestamp := gen_duration(9,0);
-- TEST: ADD_CACHE_CHANGE ON PAYLOAD MEMORY FULL
@ -592,7 +592,7 @@ begin
cc := DEFAULT_CACHE_CHANGE;
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.payload := gen_payload(HANDLE_NIL,10);
cc.payload := gen_payload(KEY_HASH_NIL,10);
cc.src_timestamp := gen_duration(10,0);
Log("RTPS Operation ADD_CACHE_CHANGE [Writer 0, Aligned Payload] (ACCPETED)", INFO);
@ -615,7 +615,7 @@ begin
cc := DEFAULT_CACHE_CHANGE;
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.payload := gen_payload(HANDLE_NIL,10);
cc.payload := gen_payload(KEY_HASH_NIL,10);
cc.src_timestamp := gen_duration(11,0);
Log("RTPS Operation ADD_CACHE_CHANGE [Writer 0, Aligned Payload] (ACCPETED)", INFO);
@ -872,7 +872,7 @@ begin
cc := DEFAULT_CACHE_CHANGE;
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.payload := gen_payload(HANDLE_NIL,6);
cc.payload := gen_payload(KEY_HASH_NIL,6);
cc.src_timestamp := gen_duration(18,0);
-- TEST: SAMPLE WITH UNALIGNED PAYLOAD [<1 SLOT]
@ -897,7 +897,7 @@ begin
cc := DEFAULT_CACHE_CHANGE;
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.payload := gen_payload(HANDLE_NIL,10);
cc.payload := gen_payload(KEY_HASH_NIL,10);
cc.src_timestamp := gen_duration(19,0);
-- TEST: SAMPLE WITH EARLY TIMESTAMP [TIMESTAMP EARLIER THAN LAST READ]

View File

@ -92,7 +92,7 @@ architecture testbench of L0_dds_reader_test1_lbzkriu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -221,7 +221,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -92,7 +92,7 @@ architecture testbench of L0_dds_reader_test1_lrzkriu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -221,7 +221,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -45,7 +45,7 @@ architecture testbench of L0_dds_reader_test2_arpkriu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -174,7 +174,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -85,7 +85,7 @@ architecture testbench of L0_dds_reader_test3_arzkrio is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -214,7 +214,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -85,7 +85,7 @@ architecture testbench of L0_dds_reader_test3_arzkriu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -214,7 +214,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -85,7 +85,7 @@ architecture testbench of L0_dds_reader_test3_arzkrto is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -214,7 +214,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -85,7 +85,7 @@ architecture testbench of L0_dds_reader_test3_arzkrtu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -214,7 +214,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -86,7 +86,7 @@ architecture testbench of L0_dds_reader_test3_arzksto is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -215,7 +215,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -66,7 +66,7 @@ architecture testbench of L0_dds_reader_test3_arznriu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -195,7 +195,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);
@ -306,7 +306,7 @@ begin
cc := DEFAULT_CACHE_CHANGE;
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.payload := gen_payload(HANDLE_NIL,10);
cc.payload := gen_payload(KEY_HASH_NIL,10);
cc.src_timestamp := gen_duration(0,0);
Log("RTPS Operation ADD_CACHE_CHANGE [Writer 0, Aligned Payload] (ACCEPTED)", INFO);
@ -395,7 +395,7 @@ begin
cc := DEFAULT_CACHE_CHANGE;
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.payload := gen_payload(HANDLE_NIL,10);
cc.payload := gen_payload(KEY_HASH_NIL,10);
cc.src_timestamp := gen_duration(2,0);
Log("RTPS Operation ADD_CACHE_CHANGE [Writer 0, Aligned Payload] (ACCEPTED)", INFO);

View File

@ -45,7 +45,7 @@ architecture testbench of L0_dds_reader_test4_arzkriu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -174,7 +174,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -45,7 +45,7 @@ architecture testbench of L0_dds_reader_test4_arznriu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -174,7 +174,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);
@ -310,7 +310,7 @@ begin
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.instance := HANDLE_NIL;
cc.payload := gen_payload(HANDLE_NIL,10);
cc.payload := gen_payload(KEY_HASH_NIL,10);
cc.src_timestamp := gen_duration(1,0);
Log("RTPS Operation ADD_CACHE_CHANGE [KEY_HASH, Writer 0, Aligned Payload] (ACCEPTED)", INFO);
@ -340,7 +340,7 @@ begin
cc.serialized_key := FALSE;
cc.kind := ALIVE;
cc.instance := HANDLE_NIL;
cc.payload := gen_payload(HANDLE_NIL,10);
cc.payload := gen_payload(KEY_HASH_NIL,10);
cc.src_timestamp := gen_duration(2,0);
Log("RTPS Operation ADD_CACHE_CHANGE [KEY_HASH, Writer 1, Aligned Payload] (ACCEPTED)", INFO);

View File

@ -45,7 +45,7 @@ architecture testbench of L0_dds_reader_test5_arzkriu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -174,7 +174,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -45,7 +45,7 @@ architecture testbench of L0_dds_reader_test6_arzkriu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -174,7 +174,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -45,7 +45,7 @@ architecture testbench of L0_dds_reader_test7_arzkriu is
signal instance_handle_dds, si_instance_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal max_samples_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal si_source_timestamp : TIME_TYPE := TIME_INVALID;
signal si_publication_handle : PUBLICATION_HANDLE_TYPE := (others => (others => '0'));
signal si_publication_handle : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');
@ -174,7 +174,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -237,7 +237,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -217,7 +217,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -190,7 +190,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -217,7 +217,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -151,7 +151,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -153,7 +153,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -153,7 +153,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -153,7 +153,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -153,7 +153,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -165,7 +165,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -165,7 +165,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -165,7 +165,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -165,7 +165,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -165,7 +165,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -164,7 +164,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -164,7 +164,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -28,7 +28,7 @@ architecture testbench of L1_Type1_key_holder_test1 is
signal opcode_kh : KEY_HOLDER_OPCODE_TYPE := NOP;
shared variable SB_out : osvvm.ScoreBoardPkg_slv.ScoreBoardPType;
shared variable serialized_key : TEST_PACKET_TYPE := EMPTY_TEST_PACKET;
signal key_hash, key_hash_latch : KEY_HASH_TYPE := HANDLE_NIL;
signal key_hash, key_hash_latch : KEY_HASH_TYPE := KEY_HASH_NIL;
signal id_in : std_logic_vector(CDR_LONG_WIDTH-1 downto 0) := (others => '0');
signal a_in : std_logic_vector(CDR_LONG_WIDTH-1 downto 0) := (others => '0');

View File

@ -28,7 +28,7 @@ architecture testbench of L1_Type1_key_holder_test2 is
signal opcode_kh : KEY_HOLDER_OPCODE_TYPE := NOP;
shared variable SB_out : osvvm.ScoreBoardPkg_slv.ScoreBoardPType;
shared variable serialized_key : TEST_PACKET_TYPE := EMPTY_TEST_PACKET;
signal key_hash, key_hash_latch : KEY_HASH_TYPE := HANDLE_NIL;
signal key_hash, key_hash_latch : KEY_HASH_TYPE := KEY_HASH_NIL;
signal id_in : std_logic_vector(CDR_LONG_WIDTH-1 downto 0) := (others => '0');
signal a_in : std_logic_vector(CDR_LONG_WIDTH-1 downto 0) := (others => '0');

View File

@ -92,7 +92,7 @@ begin
si_instance_state_dds => (others => '0'),
si_source_timestamp_dds => TIME_ZERO,
si_instance_handle_dds => HANDLE_NIL,
si_publication_handle_dds => GUID_UNKNOWN,
si_publication_handle_dds => HANDLE_NIL,
si_disposed_generation_count_dds => (others => '0'),
si_no_writers_generation_count_dds => (others => '0'),
si_sample_rank_dds => (others => '0'),

View File

@ -95,7 +95,7 @@ begin
si_instance_state_dds => (others => '0'),
si_source_timestamp_dds => TIME_ZERO,
si_instance_handle_dds => HANDLE_NIL,
si_publication_handle_dds => GUID_UNKNOWN,
si_publication_handle_dds => HANDLE_NIL,
si_disposed_generation_count_dds => (others => '0'),
si_no_writers_generation_count_dds => (others => '0'),
si_sample_rank_dds => (others => '0'),

View File

@ -28,7 +28,7 @@ architecture testbench of L1_Type2_key_holder_test1 is
signal opcode_kh : KEY_HOLDER_OPCODE_TYPE := NOP;
shared variable SB_out : osvvm.ScoreBoardPkg_slv.ScoreBoardPType;
shared variable serialized_key : TEST_PACKET_TYPE := EMPTY_TEST_PACKET;
signal key_hash, key_hash_latch : KEY_HASH_TYPE := HANDLE_NIL;
signal key_hash, key_hash_latch : KEY_HASH_TYPE := KEY_HASH_NIL;
signal id_in : std_logic_vector(CDR_LONG_WIDTH-1 downto 0) := (others => '0');
signal TestSequence_len_in, TestSequence_addr_in: std_logic_vector(TESTSEQUENCE_ADDR_WIDTH-1 downto 0) := (others => '0');

View File

@ -28,7 +28,7 @@ architecture testbench of L1_Type2_key_holder_test2 is
signal opcode_kh : KEY_HOLDER_OPCODE_TYPE := NOP;
shared variable SB_out : osvvm.ScoreBoardPkg_slv.ScoreBoardPType;
shared variable serialized_key : TEST_PACKET_TYPE := EMPTY_TEST_PACKET;
signal key_hash, key_hash_latch : KEY_HASH_TYPE := HANDLE_NIL;
signal key_hash, key_hash_latch : KEY_HASH_TYPE := KEY_HASH_NIL;
signal id_in : std_logic_vector(CDR_LONG_WIDTH-1 downto 0) := (others => '0');
signal TestSequence_len_in, TestSequence_addr_in: std_logic_vector(TESTSEQUENCE_ADDR_WIDTH-1 downto 0) := (others => '0');

View File

@ -164,7 +164,7 @@ begin
si_instance_state_dds => (others => '0'),
si_source_timestamp_dds => TIME_ZERO,
si_instance_handle_dds => HANDLE_NIL,
si_publication_handle_dds => GUID_UNKNOWN,
si_publication_handle_dds => HANDLE_NIL,
si_disposed_generation_count_dds => (others => '0'),
si_no_writers_generation_count_dds => (others => '0'),
si_sample_rank_dds => (others => '0'),

View File

@ -167,7 +167,7 @@ begin
si_instance_state_dds => (others => '0'),
si_source_timestamp_dds => TIME_ZERO,
si_instance_handle_dds => HANDLE_NIL,
si_publication_handle_dds => GUID_UNKNOWN,
si_publication_handle_dds => HANDLE_NIL,
si_disposed_generation_count_dds => (others => '0'),
si_no_writers_generation_count_dds => (others => '0'),
si_sample_rank_dds => (others => '0'),

View File

@ -196,7 +196,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -196,7 +196,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -196,7 +196,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -196,7 +196,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -196,7 +196,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -196,7 +196,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -196,7 +196,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -196,7 +196,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -195,7 +195,7 @@ begin
end function;
impure function gen_key_hash return KEY_HASH_TYPE is
variable ret : KEY_HASH_TYPE := (others => (others => '0'));
variable ret : KEY_HASH_TYPE := KEY_HASH_NIL;
begin
for i in 0 to KEY_HASH_TYPE'length-1 loop
ret(i) := RV.RandSlv(WORD_WIDTH);

View File

@ -43,7 +43,7 @@ entity L2_Testbench_Lib3 is
si_instance_state_user : out std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_user : out TIME_TYPE;
si_instance_handle_user : out INSTANCE_HANDLE_TYPE;
si_publication_handle_user : out PUBLICATION_HANDLE_TYPE;
si_publication_handle_user : out INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_user : out std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_user : out std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_user : out std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
@ -80,7 +80,7 @@ architecture arch of L2_Testbench_Lib3 is
signal return_code_wr_dds : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
signal data_in_wr_dds : std_logic_vector(WORD_WIDTH-1 downto 0);
signal si_source_timestamp_wr_dds : TIME_TYPE;
signal si_publication_handle_wr_dds : PUBLICATION_HANDLE_TYPE;
signal si_publication_handle_wr_dds : INSTANCE_HANDLE_TYPE;
signal si_disposed_generation_count_wr_dds : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
signal si_no_writers_generation_count_wr_dds : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
signal si_sample_rank_wr_dds : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);

View File

@ -54,7 +54,7 @@ architecture testbench of L2_Type1_test1 is
signal max_samples_r : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0) := (others => '0');
signal return_code_r : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := RETCODE_OK;
signal si_source_timestamp_r : Testbench_Lib3.rtps_package.TIME_TYPE := Testbench_Lib3.rtps_package.TIME_INVALID;
signal si_publication_handle_r : Testbench_Lib3.rtps_package.PUBLICATION_HANDLE_TYPE := Testbench_Lib3.rtps_package.GUID_UNKNOWN;
signal si_publication_handle_r : Testbench_Lib3.rtps_package.INSTANCE_HANDLE_TYPE := Testbench_Lib3.rtps_package.HANDLE_NIL;
signal si_disposed_generation_count_r : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_no_writers_generation_count_r : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal si_sample_rank_r : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0) := (others => '0');

View File

@ -141,7 +141,7 @@ begin
ack <= '1';
stage_next <= GET_PAYLOAD_HEADER;
-- Reset
key_hash_next <= HANDLE_NIL;
key_hash_next <= KEY_HASH_NIL;
when PUSH_SERIALIZED_KEY =>
ack <= '1';
-- Serialized Key is in PLAIN_CDR2 Big Endian encoding
@ -156,7 +156,7 @@ begin
when READ_KEY_HASH =>
ack <= '1';
-- Key Hash not calculated
if (key_hash = HANDLE_NIL) then
if (key_hash = KEY_HASH_NIL) then
stage_next <= START_KEY_HASH_GENERATION;
else
stage_next <= PUSH_KEY_HASH;
@ -493,7 +493,7 @@ begin
align_offset <= (others => '0');
data_in_latch <= (others => '0');
data_out_latch <= (others => '0');
key_hash <= HANDLE_NIL;
key_hash <= KEY_HASH_NIL;
-- ###GENERATED START###
id_latch <= (others => '0');
-- ###GENERATED END###

View File

@ -33,7 +33,7 @@ entity Type1_reader_wrapper is
si_instance_state_dds : in std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_dds : in TIME_TYPE;
si_instance_handle_dds : in INSTANCE_HANDLE_TYPE;
si_publication_handle_dds : in PUBLICATION_HANDLE_TYPE;
si_publication_handle_dds : in INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_dds : in std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_dds : in std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_dds : in std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
@ -64,7 +64,7 @@ entity Type1_reader_wrapper is
si_instance_state_user : out std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_user : out TIME_TYPE;
si_instance_handle_user : out INSTANCE_HANDLE_TYPE;
si_publication_handle_user : out PUBLICATION_HANDLE_TYPE;
si_publication_handle_user : out INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_user : out std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_user : out std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_user : out std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);

View File

@ -185,7 +185,7 @@ begin
ack <= '1';
stage_next <= GET_PAYLOAD_HEADER;
-- Reset
key_hash_next <= HANDLE_NIL;
key_hash_next <= KEY_HASH_NIL;
when PUSH_SERIALIZED_KEY =>
ack <= '1';
-- Serialized Key is in PLAIN_CDR2 Big Endian encoding
@ -200,7 +200,7 @@ begin
when READ_KEY_HASH =>
ack <= '1';
-- Key Hash not calculated
if (key_hash = HANDLE_NIL) then
if (key_hash = KEY_HASH_NIL) then
stage_next <= START_KEY_HASH_GENERATION;
else
stage_next <= PUSH_KEY_HASH;
@ -768,7 +768,7 @@ begin
align_offset <= (others => '0');
data_in_latch <= (others => '0');
data_out_latch <= (others => '0');
key_hash <= HANDLE_NIL;
key_hash <= KEY_HASH_NIL;
-- ###GENERATED START###
id_latch <= (others => '0');
TestSequence_len_latch <= (others => '0');

View File

@ -33,7 +33,7 @@ entity Type2_reader_wrapper is
si_instance_state_dds : in std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_dds : in TIME_TYPE;
si_instance_handle_dds : in INSTANCE_HANDLE_TYPE;
si_publication_handle_dds : in PUBLICATION_HANDLE_TYPE;
si_publication_handle_dds : in INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_dds : in std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_dds : in std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_dds : in std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
@ -64,7 +64,7 @@ entity Type2_reader_wrapper is
si_instance_state_user : out std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_user : out TIME_TYPE;
si_instance_handle_user : out INSTANCE_HANDLE_TYPE;
si_publication_handle_user : out PUBLICATION_HANDLE_TYPE;
si_publication_handle_user : out INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_user : out std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_user : out std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_user : out std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);

View File

@ -41,13 +41,13 @@ begin
stage_next <= GET_KEY_HASH;
cnt_next <= 0;
-- Reset
key_hash_next <= HANDLE_NIL;
key_hash_next <= KEY_HASH_NIL;
when PUSH_SERIALIZED_KEY =>
ack <= '1';
stage_next <= GET_KEY_HASH;
cnt_next <= 0;
-- Reset
key_hash_next <= HANDLE_NIL;
key_hash_next <= KEY_HASH_NIL;
when READ_KEY_HASH =>
ack <= '1';
stage_next <= PUSH_KEY_HASH;
@ -140,7 +140,7 @@ begin
if (reset = '1') then
stage <= IDLE;
cnt <= 0;
key_hash <= HANDLE_NIL;
key_hash <= KEY_HASH_NIL;
else
stage <= stage_next;
cnt <= cnt_next;

View File

@ -64,7 +64,7 @@ entity dds_reader is
si_instance_state : out std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp : out TIME_TYPE;
si_instance_handle : out INSTANCE_HANDLE_TYPE;
si_publication_handle : out PUBLICATION_HANDLE_TYPE;
si_publication_handle : out INSTANCE_HANDLE_TYPE;
si_disposed_generation_count : out std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count : out std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank : out std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
@ -265,7 +265,7 @@ architecture arch of dds_reader is
end record;
-- Zero initialized Endpoint Data
constant ZERO_INSTANCE_DATA : INSTANCE_DATA_TYPE := (
key_hash => (others => (others => '0')),
key_hash => KEY_HASH_NIL,
status_info => (others => '0'),
sample_cnt => (others => '0'),
disposed_gen_cnt => (others => '0'),
@ -286,7 +286,7 @@ architecture arch of dds_reader is
end record;
-- Zero initialized Instance Data Latch
constant ZERO_INST_LATCH_DATA : INST_LATCH_DATA_TYPE := (
key_hash => (others => (others => '0')),
key_hash => KEY_HASH_NIL,
status_info => (others => '0'),
sample_cnt => (others => '0'),
gen_cnt => (others => '0'),
@ -475,7 +475,7 @@ architecture arch of dds_reader is
signal si_instance_state_sig, si_instance_state_sig_next : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
signal si_source_timestamp_sig, si_source_timestamp_sig_next : TIME_TYPE;
signal si_instance_handle_sig, si_instance_handle_sig_next : INSTANCE_HANDLE_TYPE;
signal si_publication_handle_sig, si_publication_handle_sig_next : PUBLICATION_HANDLE_TYPE;
signal si_publication_handle_sig, si_publication_handle_sig_next : INSTANCE_HANDLE_TYPE;
signal si_disposed_generation_count_sig, si_disposed_generation_count_sig_next : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
signal si_no_writers_generation_count_sig, si_no_writers_generation_count_sig_next : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
signal si_sample_rank_sig, si_sample_rank_sig_next : unsigned(SAMPLE_RANK_WIDTH-1 downto 0);
@ -847,7 +847,7 @@ begin
remove_oldest_inst_sample_next <= '0';
remove_oldest_sample_next <= '0';
is_take_next <= '0';
key_hash_next <= HANDLE_NIL;
key_hash_next <= KEY_HASH_NIL;
-- DEADLINE QoS
@ -1031,7 +1031,7 @@ begin
si_instance_state_sig_next <= (others => '0');
si_source_timestamp_sig_next <= TIME_ZERO;
si_instance_handle_sig_next <= HANDLE_NIL;
si_publication_handle_sig_next <= (others => (others => '0'));
si_publication_handle_sig_next <= HANDLE_NIL;
si_sample_rank_sig_next <= (others => '0');
si_generation_rank_sig_next <= (others => '0');
si_valid_data_sig_next <= '0';
@ -6620,9 +6620,9 @@ begin
inst_next_addr_base <= INSTANCE_MEMORY_MAX_ADDRESS;
inst_prev_addr_base <= INSTANCE_MEMORY_MAX_ADDRESS;
inst_empty_head <= INSTANCE_MEMORY_MAX_ADDRESS;
key_hash <= HANDLE_NIL;
key_hash <= KEY_HASH_NIL;
si_instance_handle_sig <= HANDLE_NIL;
si_publication_handle_sig <= (others => (others => '0'));
si_publication_handle_sig <= HANDLE_NIL;
instance_handle <= HANDLE_NIL;
sample_rej_last_inst <= HANDLE_NIL;
ts_latch <= TIME_INVALID;

View File

@ -231,7 +231,7 @@ architecture arch of dds_writer is
end record;
-- Zero initialized Endpoint Data
constant ZERO_INSTANCE_DATA : INSTANCE_DATA_TYPE := (
key_hash => (others => (others => '0')),
key_hash => KEY_HASH_NIL,
status_info => (others => '0'),
sample_cnt => (others => '0'),
ack_cnt => (others => '0')
@ -247,7 +247,7 @@ architecture arch of dds_writer is
end record;
-- Zero initialized Instance Data Latch
constant ZERO_INST_LATCH_DATA : INST_LATCH_DATA_TYPE := (
key_hash => (others => (others => '0')),
key_hash => KEY_HASH_NIL,
status_info => (others => '0'),
sample_cnt => (others => '0'),
ack_cnt => (others => '0'),
@ -896,7 +896,7 @@ begin
instance_handle_next <= HANDLE_NIL;
source_ts_next <= TIME_INVALID;
sample_status_info_next <= (others => '0');
key_hash_next <= HANDLE_NIL;
key_hash_next <= KEY_HASH_NIL;
new_sample_next <= SAMPLE_MEMORY_MAX_ADDRESS;
return_code_latch_next <= RETCODE_UNSUPPORTED;
@ -915,7 +915,7 @@ begin
end if;
else
ack_dds <= '1';
key_hash_next <= HANDLE_NIL;
key_hash_next <= KEY_HASH_NIL;
stage_next <= SKIP;
return_stage_next <= PUSH_KEY_HASH;
end if;
@ -1100,7 +1100,7 @@ begin
end if;
else
ack_dds <= '1';
key_hash_next <= HANDLE_NIL;
key_hash_next <= KEY_HASH_NIL;
stage_next <= SKIP;
return_stage_next <= PUSH_KEY_HASH;
end if;
@ -1541,7 +1541,7 @@ begin
cnt_next <= 0;
else
-- Reject Registration
key_hash_next <= HANDLE_NIL;
key_hash_next <= KEY_HASH_NIL;
stage_next <= PUSH_KEY_HASH;
cnt_next <= 0;
end if;
@ -1571,7 +1571,7 @@ begin
cnt_next <= 0;
else
-- Return Special Value
key_hash_next <= HANDLE_NIL;
key_hash_next <= KEY_HASH_NIL;
stage_next <= PUSH_KEY_HASH;
cnt_next <= 0;
end if;
@ -4487,7 +4487,7 @@ begin
cc_instance_handle_sig <= HANDLE_NIL;
sample_rej_last_inst <= HANDLE_NIL;
deadline_miss_last_inst <= HANDLE_NIL;
key_hash <= HANDLE_NIL;
key_hash <= KEY_HASH_NIL;
deadline_time <= time + DEADLINE_QOS;
lifespan_time <= TIME_INFINITE;
source_ts <= TIME_INVALID;

View File

@ -1414,7 +1414,7 @@ begin
case (cnt) is
-- Liveliness Assertion Opcode
when 0 =>
data_out_sig <= OPCODE_LIVELINESS_UPDATE;
data_out_sig <= EMO_LIVELINESS_UPDATE;
cnt_next <= cnt + 1;
-- GUID Prefix 1/3
when 1 =>
@ -2902,7 +2902,7 @@ begin
case (cnt) is
-- Match Opcode
when 0 =>
data_out_sig <= OPCODE_ENDPOINT_MATCH;
data_out_sig <= EMO_ENDPOINT_MATCH;
cnt_next <= cnt + 1;
-- GUID Prefix 1/3
when 1 =>
@ -2962,7 +2962,7 @@ begin
case (cnt) is
-- Match Opcode
when 0 =>
data_out_sig <= OPCODE_ENDPOINT_UNMATCH;
data_out_sig <= EMO_ENDPOINT_UNMATCH;
cnt_next <= cnt + 1;
-- GUID Prefix 1/3
when 1 =>
@ -2995,7 +2995,7 @@ begin
case (cnt) is
-- Match Opcode
when 0 =>
data_out_sig <= OPCODE_PARTICIPANT_UNMATCH;
data_out_sig <= EMO_PARTICIPANT_UNMATCH;
cnt_next <= cnt + 1;
-- GUID Prefix 1/3
when 1 =>
@ -5924,7 +5924,7 @@ begin
last_word_in_latch <= '0';
ud_status <= '0';
parameter_end <= (others => '1');
opcode <= (others => '0');
opcode <= SID_PAD;
flags <= (others => '0');
string_length <= (others => '0');
compare_length <= (others => '0');

View File

@ -35,12 +35,13 @@ package rtps_config_package is
-- participant_id=0
constant USER_IPv4_UNICAST_PORT : std_logic_vector(UDP_PORT_WIDTH-1 downto 0) := std_logic_vector(to_unsigned(PORT_CONFIG_PB + PORT_CONFIG_D3 + PORT_CONFIG_DG*USER_DOMAIN_ID, UDP_PORT_WIDTH));
-- ENDPOINT FRAME OPCODES
constant ENDPOINT_MATCH_OPCODE_WIDTH: natural := 32;
constant OPCODE_ENDPOINT_MATCH : std_logic_vector(ENDPOINT_MATCH_OPCODE_WIDTH-1 downto 0) := x"55000000";
constant OPCODE_ENDPOINT_UNMATCH : std_logic_vector(ENDPOINT_MATCH_OPCODE_WIDTH-1 downto 0) := x"55000001";
constant OPCODE_PARTICIPANT_UNMATCH : std_logic_vector(ENDPOINT_MATCH_OPCODE_WIDTH-1 downto 0) := x"55000002";
constant OPCODE_LIVELINESS_UPDATE : std_logic_vector(ENDPOINT_MATCH_OPCODE_WIDTH-1 downto 0) := x"55000003";
-- ENDPOINT META OPCODES
constant EMO_WIDTH : natural := 32;
constant EMO_NOP : std_logic_vector(EMO_WIDTH-1 downto 0) := x"00000000";
constant EMO_ENDPOINT_MATCH : std_logic_vector(EMO_WIDTH-1 downto 0) := x"55000000";
constant EMO_ENDPOINT_UNMATCH : std_logic_vector(EMO_WIDTH-1 downto 0) := x"55000001";
constant EMO_PARTICIPANT_UNMATCH : std_logic_vector(EMO_WIDTH-1 downto 0) := x"55000002";
constant EMO_LIVELINESS_UPDATE : std_logic_vector(EMO_WIDTH-1 downto 0) := x"55000003";
type HISTORY_CACHE_OPCODE_TYPE is (NOP, ADD_CACHE_CHANGE, GET_CACHE_CHANGE, ACK_CACHE_CHANGE, NACK_CACHE_CHANGE, REMOVE_CACHE_CHANGE, REMOVE_WRITER, GET_MIN_SN, GET_MAX_SN);
type KEY_HOLDER_OPCODE_TYPE is (NOP, PUSH_DATA, PUSH_SERIALIZED_KEY, READ_KEY_HASH, READ_SERIALIZED_KEY);

View File

@ -1372,14 +1372,14 @@ begin
align_offset <= (others => '0');
align_sig <= (others => '0');
offset_latch <= (others => '0');
src_addr <= (others => '0');
src_port <= (others => '0');
src_addr <= IPv4_ADDRESS_INVALID;
src_port <= UDP_PORT_INVALID;
flags <= (others => '0');
src_entityid <= (others => '0');
dest_entityid <= (others => '0');
src_entityid <= ENTITYID_UNKNOWN;
dest_entityid <= ENTITYID_UNKNOWN;
user_endpoints <= (others => '0');
numlocators <= (others => '0');
opcode <= (others => '0');
opcode <= SID_PAD;
data_header_end <= (others => '0');
long_latch <= (others => '0');
ulong_latch <= (others => '0');

View File

@ -44,9 +44,9 @@ architecture arch of rtps_out is
signal input_stage, input_stage_next : INPUT_STAGE_TYPE;
signal output_stage, output_stage_next : OUTPUT_STAGE_TYPE;
signal filled ,reset_filled, set_filled: std_logic;
signal src_addr, src_addr_next : std_logic_vector(WORD_WIDTH-1 downto 0);
signal dest_addr, dest_addr_next : std_logic_vector(WORD_WIDTH-1 downto 0);
signal ports, ports_next : std_logic_vector(WORD_WIDTH-1 downto 0);
signal src_addr, src_addr_next : std_logic_vector(IPv4_ADDRESS_WIDTH-1 downto 0);
signal dest_addr, dest_addr_next : std_logic_vector(IPv4_ADDRESS_WIDTH-1 downto 0);
signal ports, ports_next : std_logic_vector((UDP_PORT_WIDTH*2)-1 downto 0);
begin
@ -290,9 +290,9 @@ begin
selector <= 0;
in_pntr <= MAX_BUFFER_SIZE;
out_pntr <= MAX_BUFFER_SIZE;
src_addr <= (others => '0');
dest_addr <= (others => '0');
ports <= (others => '0');
src_addr <= IPv4_ADDRESS_INVALID;
dest_addr <= IPv4_ADDRESS_INVALID;
ports <= UDP_PORT_INVALID & UDP_PORT_INVALID;
length <= (others => '0');
packet_end <= (others => '0');
buff <= (others => (others => '0'));

View File

@ -95,7 +95,6 @@ package rtps_package is
type KEY_HASH_TYPE is array (0 to (KEY_HASH_WIDTH/WORD_WIDTH)-1) of std_logic_vector(WORD_WIDTH-1 downto 0);
-- DDS
subtype INSTANCE_HANDLE_TYPE is KEY_HASH_TYPE;
subtype PUBLICATION_HANDLE_TYPE is GUID_TYPE;
-- Helper Function
function gen_duration(s,ns : integer) return DURATION_TYPE;
@ -124,6 +123,8 @@ package rtps_package is
constant LENGTH_UNLIMITED : std_logic_vector(CDR_LONG_WIDTH-1 downto 0) := std_logic_vector(to_signed(-1,CDR_LONG_WIDTH));
-- DDS
constant HANDLE_NIL : INSTANCE_HANDLE_TYPE := (others => (others => '0'));
-- CUSTOM
constant KEY_HASH_NIL : KEY_HASH_TYPE := (others => (others => '0'));
-- *RETURN CODES* (DDS)
constant RETCODE_OK : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := std_logic_vector(to_unsigned(0,RETURN_CODE_WIDTH));

View File

@ -191,7 +191,7 @@ architecture arch of rtps_reader is
-- Packet Opcode Latch (RTPS Message ID)
signal opcode, opcode_next : std_logic_vector(SUBMESSAGE_ID_WIDTH-1 downto 0);
-- Metatraffic Opcode Latch
signal meta_opcode, meta_opcode_next : std_logic_vector(WORD_WIDTH-1 downto 0);
signal meta_opcode, meta_opcode_next : std_logic_vector(EMO_WIDTH-1 downto 0);
-- Signifies if the received packet is a metatraffic operation
signal is_meta, is_meta_next : std_logic;
-- Source GUID Latch
@ -486,16 +486,16 @@ begin
meta_opcode_next <= data_in_meta;
case (data_in_meta) is
when OPCODE_ENDPOINT_MATCH =>
when EMO_ENDPOINT_MATCH =>
stage_next <= LATCH_GUIDPREFIX;
cnt_next <= 0;
when OPCODE_ENDPOINT_UNMATCH =>
when EMO_ENDPOINT_UNMATCH =>
stage_next <= LATCH_GUIDPREFIX;
cnt_next <= 0;
when OPCODE_PARTICIPANT_UNMATCH =>
when EMO_PARTICIPANT_UNMATCH =>
stage_next <= LATCH_GUIDPREFIX;
cnt_next <= 0;
when OPCODE_LIVELINESS_UPDATE =>
when EMO_LIVELINESS_UPDATE =>
-- Synthesis Guard
if (LIVELINESS_QOS /= MANUAL_BY_TOPIC_LIVELINESS_QOS) then
stage_next <= LATCH_GUIDPREFIX;
@ -557,7 +557,7 @@ begin
guid_next(2) <= data_in_user;
end if;
if (is_meta = '1' and (meta_opcode = OPCODE_PARTICIPANT_UNMATCH or (LIVELINESS_QOS /= MANUAL_BY_TOPIC_LIVELINESS_QOS and meta_opcode = OPCODE_LIVELINESS_UPDATE))) then
if (is_meta = '1' and (meta_opcode = EMO_PARTICIPANT_UNMATCH or (LIVELINESS_QOS /= MANUAL_BY_TOPIC_LIVELINESS_QOS and meta_opcode = EMO_LIVELINESS_UPDATE))) then
--assert (last_word_in_meta = '1') report "last_word_in_meta not set" severity FAILURE;
-- DONE Parsing
stage_next <= INITIATE_ENDPOINT_SEARCH;
@ -572,7 +572,7 @@ begin
-- Input FIFO Guard
if ((is_meta = '1' and empty_meta = '0') or (is_meta = '0' and empty_user = '0')) then
if (is_meta = '1') then
--assert (meta_opcode /= OPCODE_ENDPOINT_UNMATCH or (meta_opcode = OPCODE_ENDPOINT_UNMATCH and last_word_in_meta = '1')) report "last_word_in_meta not set" severity FAILURE;
--assert (meta_opcode /= EMO_ENDPOINT_UNMATCH or (meta_opcode = EMO_ENDPOINT_UNMATCH and last_word_in_meta = '1')) report "last_word_in_meta not set" severity FAILURE;
rd_meta <= '1';
guid_next(3) <= data_in_meta;
-- Memory Operation Guard
@ -589,7 +589,7 @@ begin
if (is_meta = '1') then
case (meta_opcode) is
when OPCODE_ENDPOINT_MATCH =>
when EMO_ENDPOINT_MATCH =>
mem_op_start <= '1';
mem_opcode <= SEARCH_ENDPOINT;
mem_field_flags <= (others => '0');
@ -600,18 +600,18 @@ begin
else
stage_next <= METATRAFFIC_OPERATION;
end if;
when OPCODE_ENDPOINT_UNMATCH =>
when EMO_ENDPOINT_UNMATCH =>
mem_op_start <= '1';
mem_opcode <= SEARCH_ENDPOINT;
mem_field_flags <= (others => '0');
stage_next <= METATRAFFIC_OPERATION;
when OPCODE_PARTICIPANT_UNMATCH =>
when EMO_PARTICIPANT_UNMATCH =>
mem_op_start <= '1';
mem_opcode <= GET_FIRST_ENDPOINT;
mem_field_flags <= EMF_GUIDPREFIX_FLAG;
stage_next <= METATRAFFIC_OPERATION;
cnt_next <= 0;
when OPCODE_LIVELINESS_UPDATE =>
when EMO_LIVELINESS_UPDATE =>
-- Synthesis Guard
if (LIVELINESS_QOS /= MANUAL_BY_TOPIC_LIVELINESS_QOS) then
mem_op_start <= '1';
@ -673,7 +673,7 @@ begin
-- Memory Operation Guard
if (mem_op_done = '1') then
case (meta_opcode) is
when OPCODE_ENDPOINT_MATCH =>
when EMO_ENDPOINT_MATCH =>
-- Endpoint already in Memory
if (mem_addr_base /= ENDPOINT_MEMORY_MAX_ADDRESS) then
-- Synthesis Guard
@ -704,7 +704,7 @@ begin
-- DONE
stage_next <= IDLE;
end if;
when OPCODE_ENDPOINT_UNMATCH =>
when EMO_ENDPOINT_UNMATCH =>
-- Endpoint not in Memory
if (mem_addr_base = ENDPOINT_MEMORY_MAX_ADDRESS) then
-- Ignore
@ -723,7 +723,7 @@ begin
stage_next <= IDLE;
end if;
end if;
when OPCODE_PARTICIPANT_UNMATCH =>
when EMO_PARTICIPANT_UNMATCH =>
-- Precondition: mem_endpoint_data set (EMF_GUIDPREFIX_FLAG)
case (cnt) is
@ -761,7 +761,7 @@ begin
when others =>
null;
end case;
when OPCODE_LIVELINESS_UPDATE =>
when EMO_LIVELINESS_UPDATE =>
-- Precondition: mem_endpoint_data set (EMF_GUIDPREFIX_FLAG)
-- Synthesis Guard
@ -2972,17 +2972,17 @@ begin
stale_check <= '0';
parameter_end <= (others => '1');
bitmap_cnt <= (others => '0');
meta_opcode <= (others => '0');
meta_opcode <= EMO_NOP;
status_info <= (others => '0');
mem_addr_base <= (others => '0');
last_addr <= (others => '0');
mem_addr_latch <= (others => '0');
max_endpoint_addr <= (others => '0');
flags <= (others => '0');
opcode <= (others => '0');
opcode <= SID_PAD;
count <= (others => '0');
current_emf <= (others => '0');
key_hash <= (others => (others => '0'));
key_hash <= KEY_HASH_NIL;
bitmap_latch <= (others => (others => '0'));
else
stage <= stage_next;

View File

@ -2100,7 +2100,7 @@ package body rtps_test_package is
report "No Endpoint Frame generated on Participant match" severity WARNING;
return;
when UNMATCH =>
output.data(output.length) := OPCODE_PARTICIPANT_UNMATCH;
output.data(output.length) := EMO_PARTICIPANT_UNMATCH;
output.length := output.length + 1;
when others =>
null;
@ -2120,7 +2120,7 @@ package body rtps_test_package is
procedure gen_liveliness_update_frame( ref : in PARTICIPANT_DATA_TYPE; output : inout TEST_PACKET_TYPE) is
begin
-- OPCODE
output.data(output.length) := OPCODE_LIVELINESS_UPDATE;
output.data(output.length) := EMO_LIVELINESS_UPDATE;
output.length := output.length + 1;
-- GUID Prefix
output.data(output.length) := ref.guidPrefix(0);
@ -2566,10 +2566,10 @@ package body rtps_test_package is
-- OPCODE
case (ref.match) is
when MATCH =>
output.data(output.length) := OPCODE_ENDPOINT_MATCH;
output.data(output.length) := EMO_ENDPOINT_MATCH;
output.length := output.length + 1;
when UNMATCH =>
output.data(output.length) := OPCODE_ENDPOINT_UNMATCH;
output.data(output.length) := EMO_ENDPOINT_UNMATCH;
output.length := output.length + 1;
when others =>
null;

View File

@ -209,7 +209,7 @@ architecture arch of rtps_writer is
-- Packet Opcode Latch (RTPS Message ID)
signal opcode, opcode_next : std_logic_vector(SUBMESSAGE_ID_WIDTH-1 downto 0);
-- Metatraffic Opcode Latch
signal meta_opcode, meta_opcode_next : std_logic_vector(WORD_WIDTH-1 downto 0);
signal meta_opcode, meta_opcode_next : std_logic_vector(EMO_WIDTH-1 downto 0);
-- Signifies if the received packet is a metatraffic operation
signal is_meta, is_meta_next : std_logic;
-- Source GUID Latch
@ -565,13 +565,13 @@ begin
meta_opcode_next <= data_in_meta;
case (data_in_meta) is
when OPCODE_ENDPOINT_MATCH =>
when EMO_ENDPOINT_MATCH =>
stage_next <= LATCH_GUIDPREFIX;
cnt_next <= 0;
when OPCODE_ENDPOINT_UNMATCH =>
when EMO_ENDPOINT_UNMATCH =>
stage_next <= LATCH_GUIDPREFIX;
cnt_next <= 0;
when OPCODE_PARTICIPANT_UNMATCH =>
when EMO_PARTICIPANT_UNMATCH =>
stage_next <= LATCH_GUIDPREFIX;
cnt_next <= 0;
when others =>
@ -636,7 +636,7 @@ begin
guid_next(2) <= data_in_user;
end if;
if (is_meta = '1' and (meta_opcode = OPCODE_PARTICIPANT_UNMATCH or meta_opcode = OPCODE_LIVELINESS_UPDATE)) then
if (is_meta = '1' and (meta_opcode = EMO_PARTICIPANT_UNMATCH or meta_opcode = EMO_LIVELINESS_UPDATE)) then
--assert (last_word_in_meta = '1') report "last_word_in_meta not set" severity FAILURE;
-- DONE Parsing
stage_next <= INITIATE_ENDPOINT_SEARCH;
@ -651,7 +651,7 @@ begin
-- Input FIFO Guard
if ((is_meta = '1' and empty_meta = '0') or (is_meta = '0' and empty_user = '0')) then
if (is_meta = '1') then
--assert (meta_opcode /= OPCODE_ENDPOINT_UNMATCH or (meta_opcode = OPCODE_ENDPOINT_UNMATCH and last_word_in_meta = '1')) report "last_word_in_meta not set" severity FAILURE;
--assert (meta_opcode /= EMO_ENDPOINT_UNMATCH or (meta_opcode = EMO_ENDPOINT_UNMATCH and last_word_in_meta = '1')) report "last_word_in_meta not set" severity FAILURE;
rd_meta <= '1';
guid_next(3) <= data_in_meta;
-- Memory Operation Guard
@ -668,18 +668,18 @@ begin
if (is_meta = '1') then
case (meta_opcode) is
when OPCODE_ENDPOINT_MATCH =>
when EMO_ENDPOINT_MATCH =>
mem_op_start <= '1';
mem_opcode <= SEARCH_ENDPOINT;
mem_field_flags <= (others => '0');
stage_next <= LATCH_ENDPOINT_DATA;
cnt_next <= 0;
when OPCODE_ENDPOINT_UNMATCH =>
when EMO_ENDPOINT_UNMATCH =>
mem_op_start <= '1';
mem_opcode <= SEARCH_ENDPOINT;
mem_field_flags <= EMF_ACK_SEQ_NR_BASE_FLAG;
stage_next <= METATRAFFIC_OPERATION;
when OPCODE_PARTICIPANT_UNMATCH =>
when EMO_PARTICIPANT_UNMATCH =>
mem_op_start <= '1';
mem_opcode <= GET_FIRST_ENDPOINT;
mem_field_flags <= EMF_GUIDPREFIX_FLAG;
@ -730,7 +730,7 @@ begin
-- Memory Operation Guard
if (mem_op_done = '1') then
case (meta_opcode) is
when OPCODE_ENDPOINT_MATCH =>
when EMO_ENDPOINT_MATCH =>
-- Endpoint already in Memory
if (mem_addr_base /= ENDPOINT_MEMORY_MAX_ADDRESS) then
-- Update the Endpoint Data
@ -782,7 +782,7 @@ begin
stage_next <= IDLE;
end if;
end if;
when OPCODE_ENDPOINT_UNMATCH =>
when EMO_ENDPOINT_UNMATCH =>
assert check_mask(current_emf, EMF_ACK_SEQ_NR_BASE_FLAG) severity FAILURE;
-- Endpoint not in Memory
@ -804,7 +804,7 @@ begin
stage_next <= IDLE;
end if;
end if;
when OPCODE_PARTICIPANT_UNMATCH =>
when EMO_PARTICIPANT_UNMATCH =>
case (cnt) is
when 0 =>
assert check_mask(current_emf, EMF_GUIDPREFIX_FLAG) severity FAILURE;
@ -3635,8 +3635,8 @@ begin
historical_push <= '0';
assert_liveliness_latch <= '0';
bitmap_cnt <= (others => '0');
meta_opcode <= (others => '0');
opcode <= (others => '0');
meta_opcode <= EMO_NOP;
opcode <= SID_PAD;
rtps_flags <= (others => '0');
reader_flags <= (others => '0');
count <= (others => '0');