Code refactoring
This commit is contained in:
parent
63465e8e30
commit
cffaafb284
@ -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###
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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'),
|
||||
|
||||
@ -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'),
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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'),
|
||||
|
||||
@ -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'),
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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###
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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'));
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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');
|
||||
|
||||
Loading…
Reference in New Issue
Block a user