Add 'si_ack' to DDS Reader
Previously the simaple info data was valid for exectly 1 clock cycle, in which the user had to pull the 'get_data' signal if he wanted the associated payload. This change allows the user to control how long the sample info data is shown.
This commit is contained in:
parent
609ed2d686
commit
e33d982182
@ -205,6 +205,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -204,6 +204,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -204,6 +204,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -183,6 +183,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -205,6 +205,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -205,6 +205,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -158,6 +158,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -198,6 +198,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -198,6 +198,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -198,6 +198,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -198,6 +198,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -199,6 +199,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -179,6 +179,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -158,6 +158,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -158,6 +158,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -158,6 +158,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -158,6 +158,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -158,6 +158,7 @@ begin
|
|||||||
si_absolute_generation_rank => si_absolute_generation_rank,
|
si_absolute_generation_rank => si_absolute_generation_rank,
|
||||||
si_valid_data => si_valid_data,
|
si_valid_data => si_valid_data,
|
||||||
si_valid => si_valid,
|
si_valid => si_valid,
|
||||||
|
si_ack => '1',
|
||||||
eoc => eoc,
|
eoc => eoc,
|
||||||
status => status
|
status => status
|
||||||
);
|
);
|
||||||
|
|||||||
@ -84,6 +84,7 @@ entity dds_reader is
|
|||||||
si_absolute_generation_rank : out std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
|
si_absolute_generation_rank : out std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
|
||||||
si_valid_data : out std_logic;
|
si_valid_data : out std_logic;
|
||||||
si_valid : out std_logic;
|
si_valid : out std_logic;
|
||||||
|
si_ack : in std_logic;
|
||||||
eoc : out std_logic;
|
eoc : out std_logic;
|
||||||
-- Communication Status
|
-- Communication Status
|
||||||
status : out std_logic_vector(STATUS_KIND_WIDTH-1 downto 0)
|
status : out std_logic_vector(STATUS_KIND_WIDTH-1 downto 0)
|
||||||
@ -647,8 +648,8 @@ begin
|
|||||||
-- GET_KEY_HASH Fetch the calculated key hash from the Key Hash Generator
|
-- GET_KEY_HASH Fetch the calculated key hash from the Key Hash Generator
|
||||||
-- INITIATE_INSTANCE_SEARCH Initiate Instance Search Memory Operation. This state is used to start the Search operation as soon as the required data is available
|
-- INITIATE_INSTANCE_SEARCH Initiate Instance Search Memory Operation. This state is used to start the Search operation as soon as the required data is available
|
||||||
-- FILTER_STAGE This state decides if the RTPS Cache Change is accepted, dropped, or rejected. It also decides what sample (if any) has to be removed.
|
-- FILTER_STAGE This state decides if the RTPS Cache Change is accepted, dropped, or rejected. It also decides what sample (if any) has to be removed.
|
||||||
-- UPDATE_INSTANCE Update the Data of the Instance of the received saample (Cache Change)
|
-- UPDATE_INSTANCE Update the Data of the Instance of the received sample (Cache Change)
|
||||||
-- FINALIZE_PAYLOAD Finalize the payload addition (Update pointers).
|
-- FINALIZE_PAYLOAD Finalize the payload addition (Update pointers)
|
||||||
-- PRE_SAMPLE_FINALIZE Store Sample Info based on Instance Data
|
-- PRE_SAMPLE_FINALIZE Store Sample Info based on Instance Data
|
||||||
-- FIND_POS Find Sample List position based on DESTINATION_ORDER_QOS
|
-- FIND_POS Find Sample List position based on DESTINATION_ORDER_QOS
|
||||||
-- FIX_POINTERS Update the List Pointers of the inserted Sample neighbours (First Step of Sample Addition Finalization)
|
-- FIX_POINTERS Update the List Pointers of the inserted Sample neighbours (First Step of Sample Addition Finalization)
|
||||||
@ -3975,14 +3976,17 @@ begin
|
|||||||
-- Reset Data Available Status
|
-- Reset Data Available Status
|
||||||
status_sig_next <= status_sig and (not DATA_AVAILABLE_STATUS);
|
status_sig_next <= status_sig and (not DATA_AVAILABLE_STATUS);
|
||||||
|
|
||||||
-- Sample Data Request
|
-- Wait on User
|
||||||
if (get_data_dds = '1') then
|
if (si_ack = '1') then
|
||||||
stage_next <= GET_PAYLOAD;
|
-- Sample Data Request
|
||||||
cnt_next <= 0;
|
if (get_data_dds = '1') then
|
||||||
else
|
stage_next <= GET_PAYLOAD;
|
||||||
cnt_next <= 2;
|
cnt_next <= 0;
|
||||||
-- Invalidate Data
|
else
|
||||||
si_valid_sig_next <= '0';
|
cnt_next <= 2;
|
||||||
|
-- Invalidate Data
|
||||||
|
si_valid_sig_next <= '0';
|
||||||
|
end if;
|
||||||
end if;
|
end if;
|
||||||
-- Post-Present Data
|
-- Post-Present Data
|
||||||
when 2 =>
|
when 2 =>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user