Define record for sample_info of DDS Reader

This commit is contained in:
John Ring 2022-02-19 11:58:40 +01:00
parent f29df9b41c
commit cf3daa12b0
62 changed files with 1546 additions and 2183 deletions

View File

@ -58,6 +58,7 @@ architecture arch of dds_top is
type STATUS_KIND_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
type STATUS_KIND_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
type DURATION_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of DURATION_TYPE;
type SAMPLE_INFO_RARRAY_TYPE is array (0 to NUM_READERS-1) of SAMPLE_INFO_TYPE;
signal full_fire_rh, write_rh_fire : std_logic_vector(0 to NUM_ENDPOINTS-1);
signal data_rh_fire, data_rh_fidm : std_logic_vector(WORD_WIDTH downto 0);
@ -85,21 +86,16 @@ architecture arch of dds_top is
signal cc_instance_handle_dw_rw : INSTANCE_HANDLE_WARRAY_TYPE;
signal cc_kind_dw_rw : CACHE_CHANGE_KIND_WARRAY_TYPE;
signal cc_source_timestamp_dw_rw : TIME_WARRAY_TYPE;
signal start_ri_dr, ack_dr_ri, get_data_ri_dr, done_dr_ri, ready_ri_dr, valid_dr_ri, si_valid_data_dr_ri, si_valid_dr_ri, si_ack_ri_dr, eoc_dr_ri : std_logic_vector(0 to NUM_READERS-1);
signal sample_info_dr_ri : SAMPLE_INFO_RARRAY_TYPE;
signal start_ri_dr, ack_dr_ri, get_data_ri_dr, done_dr_ri, ready_ri_dr, valid_dr_ri, sample_info_valid_dr_ri, sample_info_ack_ri_dr, eoc_dr_ri : std_logic_vector(0 to NUM_READERS-1);
signal opcode_ri_dr : DDS_READER_OPCODE_RARRAY_TYPE;
signal instance_state_ri_dr, si_instance_state_dr_ri : INSTANCE_STATE_RARRAY_TYPE;
signal view_state_ri_dr, si_view_state_dr_ri : VIEW_STATE_RARRAY_TYPE;
signal sample_state_ri_dr, si_sample_state_dr_ri : SAMPLE_STATE_RARRAY_TYPE;
signal instance_handle_ri_dr, si_instance_handle_dr_ri, si_publication_handle_dr_ri : INSTANCE_HANDLE_RARRAY_TYPE;
signal instance_state_ri_dr : INSTANCE_STATE_RARRAY_TYPE;
signal view_state_ri_dr : VIEW_STATE_RARRAY_TYPE;
signal sample_state_ri_dr : SAMPLE_STATE_RARRAY_TYPE;
signal instance_handle_ri_dr : INSTANCE_HANDLE_RARRAY_TYPE;
signal max_samples_ri_dr : MAX_SAMPLES_RARRAY_TYPE;
signal return_code_dr_ri : RETURN_CODE_RARRAY_TYPE;
signal data_dr_ri : RARRAY_DATA_TYPE;
signal si_source_timestamp_dr_ri : TIME_RARRAY_TYPE;
signal si_disposed_generation_count_dr_ri : DISPOSED_GENERATION_COUNT_RARRAY_TYPE;
signal si_no_writers_generation_count_dr_ri : NO_WRITERS_GENERATION_COUNT_RARRAY_TYPE;
signal si_sample_rank_dr_ri : SAMPLE_RANK_RARRAY_TYPE;
signal si_generation_rank_dr_ri : GENERATION_RANK_RARRAY_TYPE;
signal si_absolute_generation_rank_dr_ri : ABSOLUTE_GENERATION_RANK_RARRAY_TYPE;
signal status_dr_ri : STATUS_KIND_RARRAY_TYPE;
signal start_wi_dw, ack_dw_wi, done_dw_wi, valid_wi_dw, valid_dw_wi, ready_wi_dw, ready_dw_wi : std_logic_vector(0 to NUM_WRITERS-1);
signal opcode_wi_dw : DDS_WRITER_OPCODE_WARRAY_TYPE;
@ -398,21 +394,9 @@ begin
ready_out_dds => ready_ri_dr(i),
data_out_dds => data_dr_ri(i)(WORD_WIDTH-1 downto 0),
last_word_out_dds => data_dr_ri(i)(WORD_WIDTH),
-- Sample Info
si_sample_state => si_sample_state_dr_ri(i),
si_view_state => si_view_state_dr_ri(i),
si_instance_state => si_instance_state_dr_ri(i),
si_source_timestamp => si_source_timestamp_dr_ri(i),
si_instance_handle => si_instance_handle_dr_ri(i),
si_publication_handle => si_publication_handle_dr_ri(i),
si_disposed_generation_count => si_disposed_generation_count_dr_ri(i),
si_no_writers_generation_count => si_no_writers_generation_count_dr_ri(i),
si_sample_rank => si_sample_rank_dr_ri(i),
si_generation_rank => si_generation_rank_dr_ri(i),
si_absolute_generation_rank => si_absolute_generation_rank_dr_ri(i),
si_valid_data => si_valid_data_dr_ri(i),
si_valid => si_valid_dr_ri(i),
si_ack => si_ack_ri_dr(i),
sample_info => sample_info_dr_ri(i),
sample_info_valid => sample_info_valid_dr_ri(i),
sample_info_ack => sample_info_ack_ri_dr(i),
eoc => eoc_dr_ri(i),
-- Communication Status
status => status_dr_ri(i)
@ -569,21 +553,9 @@ begin
ready_in_dds => ready_ri_dr(0),
data_in_dds => data_dr_ri(0)(WORD_WIDTH-1 downto 0),
last_word_in_dds => data_dr_ri(0)(WORD_WIDTH),
-- Sample Info
si_sample_state_dds => si_sample_state_dr_ri(0),
si_view_state_dds => si_view_state_dr_ri(0),
si_instance_state_dds => si_instance_state_dr_ri(0),
si_source_timestamp_dds => si_source_timestamp_dr_ri(0),
si_instance_handle_dds => si_instance_handle_dr_ri(0),
si_publication_handle_dds => si_publication_handle_dr_ri(0),
si_disposed_generation_count_dds => si_disposed_generation_count_dr_ri(0),
si_no_writers_generation_count_dds => si_no_writers_generation_count_dr_ri(0),
si_sample_rank_dds => si_sample_rank_dr_ri(0),
si_generation_rank_dds => si_generation_rank_dr_ri(0),
si_absolute_generation_rank_dds => si_absolute_generation_rank_dr_ri(0),
si_valid_data_dds => si_valid_data_dr_ri(0),
si_valid_dds => si_valid_dr_ri(0),
si_ack_dds => si_ack_ri_dr(0),
sample_info_dds => sample_info_dr_ri(0),
sample_info_valid_dds => sample_info_valid_dr_ri(0),
sample_info_ack_dds => sample_info_ack_ri_dr(0),
eoc_dds => eoc_dr_ri(0),
-- Communication Status
status_dds => status_dr_ri(0),
@ -599,21 +571,9 @@ begin
get_data_user =>
done_user =>
return_code_user =>
-- Sample Info
si_sample_state_user =>
si_view_state_user =>
si_instance_state_user =>
si_source_timestamp_user =>
si_instance_handle_user =>
si_publication_handle_user =>
si_disposed_generation_count_user =>
si_no_writers_generation_count_user =>
si_sample_rank_user =>
si_generation_rank_user =>
si_absolute_generation_rank_user =>
si_valid_data_user =>
si_valid_user =>
si_ack_user =>
sample_info_user =>
sample_info_valid_user =>
sample_info_ack_user =>
eoc_user =>
-- Communication Status
status_user =>

View File

@ -29,21 +29,9 @@ entity TYPENAME_reader_interface is
ready_in_dds : out std_logic;
data_in_dds : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_dds : in std_logic;
-- Sample Info
si_sample_state_dds : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_dds : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
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 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);
si_generation_rank_dds : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_dds : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_dds : in std_logic;
si_valid_dds : in std_logic;
si_ack_dds : out std_logic;
sample_info_dds : in SAMPLE_INFO_TYPE;
sample_info_valid_dds : in std_logic;
sample_info_ack_dds : out std_logic;
eoc_dds : in std_logic;
-- Communication Status
status_dds : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
@ -61,20 +49,9 @@ entity TYPENAME_reader_interface is
done_user : out std_logic;
return_code_user : out std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
-- Sample Info
si_sample_state_user : out std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_user : out std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
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 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);
si_generation_rank_user : out std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_user : out std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_user : out std_logic;
si_valid_user : out std_logic;
si_ack_user : in std_logic;
sample_info_user : out SAMPLE_INFO_TYPE;
sample_info_valid_user : out std_logic;
sample_info_ack_user : in std_logic;
eoc_user : out std_logic;
-- Communication Status
status_user : out std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
@ -142,20 +119,9 @@ begin
get_data_dds <= get_data_user;
done_user <= done_dds;
return_code_user <= return_code_dds;
si_sample_state_user <= si_sample_state_dds;
si_view_state_user <= si_view_state_dds;
si_instance_state_user <= si_instance_state_dds;
si_source_timestamp_user <= si_source_timestamp_dds;
si_instance_handle_user <= si_instance_handle_dds;
si_publication_handle_user <= si_publication_handle_dds;
si_disposed_generation_count_user <= si_disposed_generation_count_dds;
si_no_writers_generation_count_user <= si_no_writers_generation_count_dds;
si_sample_rank_user <= si_sample_rank_dds;
si_generation_rank_user <= si_generation_rank_dds;
si_absolute_generation_rank_user <= si_absolute_generation_rank_dds;
si_valid_data_user <= si_valid_data_dds;
si_valid_user <= si_valid_dds;
si_ack_dds <= si_ack_user;
sample_info_user <= sample_info_dds;
sample_info_valid_user <= sample_info_valid_dds;
sample_info_ack_dds <= sample_info_ack_user;
eoc_user <= eoc_dds;
status_user <= status_dds;
@ -198,7 +164,7 @@ begin
case (stage) is
when IDLE =>
-- User Requests Payload
if (si_valid_dds = '1' and si_valid_data_dds = '1' and si_ack_user = '1' and get_data_user = '1') then
if (sample_info_valid_dds = '1' and sample_info_dds.valid_data = '1' and sample_info_ack_user = '1' and get_data_user = '1') then
stage_next <= GET_PAYLOAD_HEADER;
-- RESET
decode_error_latch_next <= '0';

View File

@ -148,49 +148,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -147,49 +147,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -147,49 +147,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -126,49 +126,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -148,49 +148,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -148,49 +148,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -101,49 +101,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -141,49 +141,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -141,49 +141,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -141,49 +141,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -141,49 +141,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -142,49 +142,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -122,49 +122,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -101,49 +101,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -101,49 +101,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -101,49 +101,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -101,49 +101,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -101,49 +101,49 @@ begin
MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS
)
port map (
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
si_sample_state => si_sample_state,
si_view_state => si_view_state,
si_instance_state => si_instance_state,
si_source_timestamp => si_source_timestamp,
si_instance_handle => si_instance_handle,
si_publication_handle => si_publication_handle,
si_disposed_generation_count => si_disposed_generation_count,
si_no_writers_generation_count => si_no_writers_generation_count,
si_sample_rank => si_sample_rank,
si_generation_rank => si_generation_rank,
si_absolute_generation_rank => si_absolute_generation_rank,
si_valid_data => si_valid_data,
si_valid => si_valid,
si_ack => '1',
eoc => eoc,
status => status
clk => clk,
reset => reset,
time => check_time,
start_rtps => start_rtps,
opcode_rtps => opcode_rtps,
ack_rtps => ack_rtps,
done_rtps => done_rtps,
ret_rtps => ret_rtps,
data_in_rtps => data_in_rtps,
valid_in_rtps => valid_in_rtps,
ready_in_rtps => ready_in_rtps,
last_word_in_rtps => last_word_in_rtps,
start_dds => start_dds,
ack_dds => ack_dds,
opcode_dds => opcode_dds,
instance_state_dds => instance_state_dds,
view_state_dds => view_state_dds,
sample_state_dds => sample_state_dds,
instance_handle_dds => instance_handle_dds,
max_samples_dds => max_samples_dds,
get_data_dds => get_data_dds,
done_dds => done_dds,
return_code_dds => return_code_dds,
ready_out_dds => ready_out_dds,
valid_out_dds => valid_out_dds,
data_out_dds => data_out_dds,
last_word_out_dds => last_word_out_dds,
sample_info.sample_state => si_sample_state,
sample_info.view_state => si_view_state,
sample_info.instance_state => si_instance_state,
sample_info.source_timestamp => si_source_timestamp,
sample_info.instance_handle => si_instance_handle,
sample_info.publication_handle => si_publication_handle,
sample_info.disposed_generation_count => si_disposed_generation_count,
sample_info.no_writers_generation_count => si_no_writers_generation_count,
sample_info.sample_rank => si_sample_rank,
sample_info.generation_rank => si_generation_rank,
sample_info.absolute_generation_rank => si_absolute_generation_rank,
sample_info.valid_data => si_valid_data,
sample_info_valid => si_valid,
sample_info_ack => '1',
eoc => eoc,
status => status
);
stimulus_prc : process

View File

@ -20,6 +20,21 @@ end entity;
architecture testbench of L1_Type1_interface_test1 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => (others => '0'),
view_state => (others => '0'),
instance_state => (others => '0'),
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '1'
);
signal clk, reset : std_logic := '0';
signal ready, valid, last_word : std_logic := '0';
signal data : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
@ -85,20 +100,9 @@ begin
valid_in_dds => valid,
data_in_dds => data,
last_word_in_dds => last_word,
si_sample_state_dds => (others => '0'),
si_view_state_dds => (others => '0'),
si_instance_state_dds => (others => '0'),
si_source_timestamp_dds => TIME_ZERO,
si_instance_handle_dds => HANDLE_NIL,
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'),
si_generation_rank_dds => (others => '0'),
si_absolute_generation_rank_dds => (others => '0'),
si_valid_data_dds => '1',
si_valid_dds => '1',
si_ack_dds => open,
sample_info_dds => DEFAULT_SAMPLE_INFO,
sample_info_valid_dds => '1',
sample_info_ack_dds => open,
eoc_dds => '1',
status_dds => (others => '0'),
start_user => '0',
@ -112,20 +116,9 @@ begin
get_data_user => get_data_r,
done_user => open,
return_code_user => open,
si_sample_state_user => open,
si_view_state_user => open,
si_instance_state_user => open,
si_source_timestamp_user => open,
si_instance_handle_user => open,
si_publication_handle_user => open,
si_disposed_generation_count_user => open,
si_no_writers_generation_count_user => open,
si_sample_rank_user => open,
si_generation_rank_user => open,
si_absolute_generation_rank_user => open,
si_valid_data_user => open,
si_valid_user => open,
si_ack_user => '1',
sample_info_user => open,
sample_info_valid_user => open,
sample_info_ack_user => '1',
eoc_user => open,
status_user => open,
decode_error => decode_error,

View File

@ -20,6 +20,21 @@ end entity;
architecture testbench of L1_Type1_interface_test2 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => (others => '0'),
view_state => (others => '0'),
instance_state => (others => '0'),
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '1'
);
signal clk, reset : std_logic := '0';
signal ready, valid, last_word : std_logic := '0';
signal data : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
@ -88,20 +103,9 @@ begin
valid_in_dds => valid,
data_in_dds => data,
last_word_in_dds => last_word,
si_sample_state_dds => (others => '0'),
si_view_state_dds => (others => '0'),
si_instance_state_dds => (others => '0'),
si_source_timestamp_dds => TIME_ZERO,
si_instance_handle_dds => HANDLE_NIL,
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'),
si_generation_rank_dds => (others => '0'),
si_absolute_generation_rank_dds => (others => '0'),
si_valid_data_dds => '1',
si_valid_dds => '1',
si_ack_dds => open,
sample_info_dds => DEFAULT_SAMPLE_INFO,
sample_info_valid_dds => '1',
sample_info_ack_dds => open,
eoc_dds => '1',
status_dds => (others => '0'),
start_user => '0',
@ -115,20 +119,9 @@ begin
get_data_user => get_data_r,
done_user => open,
return_code_user => open,
si_sample_state_user => open,
si_view_state_user => open,
si_instance_state_user => open,
si_source_timestamp_user => open,
si_instance_handle_user => open,
si_publication_handle_user => open,
si_disposed_generation_count_user => open,
si_no_writers_generation_count_user => open,
si_sample_rank_user => open,
si_generation_rank_user => open,
si_absolute_generation_rank_user => open,
si_valid_data_user => open,
si_valid_user => open,
si_ack_user => '1',
sample_info_user => open,
sample_info_valid_user => open,
sample_info_ack_user => '1',
eoc_user => open,
status_user => open,
decode_error => decode_error,

View File

@ -20,6 +20,21 @@ end entity;
architecture testbench of L1_Type2_interface_test1 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => (others => '0'),
view_state => (others => '0'),
instance_state => (others => '0'),
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '1'
);
signal clk, reset : std_logic := '0';
signal ready, valid, last_word : std_logic := '0';
signal data : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
@ -157,20 +172,9 @@ begin
valid_in_dds => valid,
data_in_dds => data,
last_word_in_dds => last_word,
si_sample_state_dds => (others => '0'),
si_view_state_dds => (others => '0'),
si_instance_state_dds => (others => '0'),
si_source_timestamp_dds => TIME_ZERO,
si_instance_handle_dds => HANDLE_NIL,
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'),
si_generation_rank_dds => (others => '0'),
si_absolute_generation_rank_dds => (others => '0'),
si_valid_data_dds => '1',
si_valid_dds => '1',
si_ack_dds => open,
sample_info_dds => DEFAULT_SAMPLE_INFO,
sample_info_valid_dds => '1',
sample_info_ack_dds => open,
eoc_dds => '1',
status_dds => (others => '0'),
start_user => '0',
@ -184,20 +188,9 @@ begin
get_data_user => get_data_r,
done_user => open,
return_code_user => open,
si_sample_state_user => open,
si_view_state_user => open,
si_instance_state_user => open,
si_source_timestamp_user => open,
si_instance_handle_user => open,
si_publication_handle_user => open,
si_disposed_generation_count_user => open,
si_no_writers_generation_count_user => open,
si_sample_rank_user => open,
si_generation_rank_user => open,
si_absolute_generation_rank_user => open,
si_valid_data_user => open,
si_valid_user => open,
si_ack_user => '1',
sample_info_user => open,
sample_info_valid_user => open,
sample_info_ack_user => '1',
eoc_user => open,
status_user => open,
decode_error => decode_error,

View File

@ -20,6 +20,21 @@ end entity;
architecture testbench of L1_Type2_interface_test2 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => (others => '0'),
view_state => (others => '0'),
instance_state => (others => '0'),
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '1'
);
signal clk, reset : std_logic := '0';
signal ready, valid, last_word : std_logic := '0';
signal data : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
@ -160,20 +175,9 @@ begin
valid_in_dds => valid,
data_in_dds => data,
last_word_in_dds => last_word,
si_sample_state_dds => (others => '0'),
si_view_state_dds => (others => '0'),
si_instance_state_dds => (others => '0'),
si_source_timestamp_dds => TIME_ZERO,
si_instance_handle_dds => HANDLE_NIL,
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'),
si_generation_rank_dds => (others => '0'),
si_absolute_generation_rank_dds => (others => '0'),
si_valid_data_dds => '1',
si_valid_dds => '1',
si_ack_dds => open,
sample_info_dds => DEFAULT_SAMPLE_INFO,
sample_info_valid_dds => '1',
sample_info_ack_dds => open,
eoc_dds => '1',
status_dds => (others => '0'),
start_user => '0',
@ -187,20 +191,9 @@ begin
get_data_user => get_data_r,
done_user => open,
return_code_user => open,
si_sample_state_user => open,
si_view_state_user => open,
si_instance_state_user => open,
si_source_timestamp_user => open,
si_instance_handle_user => open,
si_publication_handle_user => open,
si_disposed_generation_count_user => open,
si_no_writers_generation_count_user => open,
si_sample_rank_user => open,
si_generation_rank_user => open,
si_absolute_generation_rank_user => open,
si_valid_data_user => open,
si_valid_user => open,
si_ack_user => '1',
sample_info_user => open,
sample_info_valid_user => open,
sample_info_ack_user => '1',
eoc_user => open,
status_user => open,
decode_error => decode_error,

View File

@ -37,21 +37,9 @@ entity L2_Testbench_Lib3 is
get_data_user : in std_logic;
done_user : out std_logic;
return_code_user : out std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
-- Sample Info
si_sample_state_user : out std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_user : out std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
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 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);
si_generation_rank_user : out std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_user : out std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_user : out std_logic;
si_valid_user : out std_logic;
si_ack_user : in std_logic;
sample_info_user : out SAMPLE_INFO_TYPE;
sample_info_valid_user : out std_logic;
sample_info_ack_user : in std_logic;
eoc_user : out std_logic;
-- Communication Status
status_user : out std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
@ -79,13 +67,8 @@ architecture arch of L2_Testbench_Lib3 is
signal max_samples_wr_dds : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0);
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 : 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);
signal si_generation_rank_wr_dds : std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
signal si_absolute_generation_rank_wr_dds : std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
signal sample_info_wr_dds : SAMPLE_INFO_TYPE;
signal sample_info_valid_wr_dds, sample_info_ack_wr_dds : std_logic;
signal status_wr_dds : std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
signal start_dds_rtps, ack_dds_rtps, done_dds_rtps, valid_in_dds_rtps, ready_in_dds_rtps, last_word_in_dds_rtps : std_logic;
@ -134,21 +117,9 @@ begin
valid_in_dds => valid_in_wr_dds,
data_in_dds => data_in_wr_dds,
last_word_in_dds => last_word_in_wr_dds,
-- Sample Info
si_sample_state_dds => si_sample_state_wr_dds,
si_view_state_dds => si_view_state_wr_dds,
si_instance_state_dds => si_instance_state_wr_dds,
si_source_timestamp_dds => si_source_timestamp_wr_dds,
si_instance_handle_dds => si_instance_handle_wr_dds,
si_publication_handle_dds => si_publication_handle_wr_dds,
si_disposed_generation_count_dds => si_disposed_generation_count_wr_dds,
si_no_writers_generation_count_dds => si_no_writers_generation_count_wr_dds,
si_sample_rank_dds => si_sample_rank_wr_dds,
si_generation_rank_dds => si_generation_rank_wr_dds,
si_absolute_generation_rank_dds => si_absolute_generation_rank_wr_dds,
si_valid_data_dds => si_valid_data_wr_dds,
si_valid_dds => si_valid_wr_dds,
si_ack_dds => si_ack_wr_dds,
sample_info_dds => sample_info_wr_dds,
sample_info_valid_dds => sample_info_valid_wr_dds,
sample_info_ack_dds => sample_info_ack_wr_dds,
eoc_dds => eoc_wr_dds,
-- Communication Status
status_dds => status_wr_dds,
@ -164,21 +135,9 @@ begin
get_data_user => get_data_user,
done_user => done_user,
return_code_user => return_code_user,
-- Sample Info
si_sample_state_user => si_sample_state_user,
si_view_state_user => si_view_state_user,
si_instance_state_user => si_instance_state_user,
si_source_timestamp_user => si_source_timestamp_user,
si_instance_handle_user => si_instance_handle_user,
si_publication_handle_user => si_publication_handle_user,
si_disposed_generation_count_user => si_disposed_generation_count_user,
si_no_writers_generation_count_user => si_no_writers_generation_count_user,
si_sample_rank_user => si_sample_rank_user,
si_generation_rank_user => si_generation_rank_user,
si_absolute_generation_rank_user => si_absolute_generation_rank_user,
si_valid_data_user => si_valid_data_user,
si_valid_user => si_valid_user,
si_ack_user => si_ack_user,
sample_info_user => sample_info_user,
sample_info_valid_user => sample_info_valid_user,
sample_info_ack_user => sample_info_ack_user,
eoc_user => eoc_user,
-- Communication Status
status_user => status_user,
@ -238,21 +197,9 @@ begin
valid_out_dds => valid_in_wr_dds,
data_out_dds => data_in_wr_dds,
last_word_out_dds => last_word_in_wr_dds,
-- Sample Info
si_sample_state => si_sample_rank_wr_dds,
si_view_state => si_view_state_wr_dds,
si_instance_state => si_instance_state_wr_dds,
si_source_timestamp => si_source_timestamp_wr_dds,
si_instance_handle => si_instance_handle_wr_dds,
si_publication_handle => si_publication_handle_wr_dds,
si_disposed_generation_count => si_disposed_generation_count_wr_dds,
si_no_writers_generation_count => si_no_writers_generation_count_wr_dds,
si_sample_rank => si_sample_rank_wr_dds,
si_generation_rank => si_generation_rank_wr_dds,
si_absolute_generation_rank => si_absolute_generation_rank_wr_dds,
si_valid_data => si_valid_data_wr_dds,
si_valid => si_valid_wr_dds,
si_ack => si_ack_wr_dds,
sample_info => sample_info_wr_dds,
sample_info_valid => sample_info_valid_wr_dds,
sample_info_ack => sample_info_ack_wr_dds,
eoc => eoc_wr_dds,
-- Communication Status
status => status_wr_dds

View File

@ -29,6 +29,21 @@ end entity;
architecture testbench of L2_Type1_test1 is
constant ZERO_SAMPLE_INFO : Testbench_Lib3.rtps_package.SAMPLE_INFO_TYPE := (
sample_state => (others => '0'),
view_state => (others => '0'),
instance_state => (others => '0'),
source_timestamp => Testbench_Lib3.rtps_package.TIME_ZERO,
instance_handle => Testbench_Lib3.rtps_package.HANDLE_NIL,
publication_handle => Testbench_Lib3.rtps_package.HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal time : TIME_TYPE := TIME_ZERO;
-- INPUT
@ -44,23 +59,16 @@ architecture testbench of L2_Type1_test1 is
signal status_w : std_logic_vector(STATUS_KIND_WIDTH-1 downto 0) := (others => '0');
signal id_w, a_w : std_logic_vector(CDR_LONG_WIDTH-1 downto 0) := (others => '0');
signal start_r, ack_r, get_data_r, done_r, empty_rtps_r, full_rtps_r, rd_rtps_r, wr_rtps_r, si_valid_data_r, si_valid_r, si_ack_r, eoc_r, valid_r : std_logic := '0';
signal start_r, ack_r, get_data_r, done_r, empty_rtps_r, full_rtps_r, rd_rtps_r, wr_rtps_r, sample_info_valid_r, sample_info_ack_r, eoc_r, valid_r : std_logic := '0';
signal opcode_r : DDS_READER_OPCODE_TYPE;
signal data_in_rtps_r, data_out_rtps_r : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
signal instance_state_r, si_instance_state_r : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0) := ANY_INSTANCE_STATE;
signal view_state_r, si_view_state_r : std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0) := ANY_VIEW_STATE;
signal sample_state_r, si_sample_state_r : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := ANY_SAMPLE_STATE;
signal instance_state_r : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0) := ANY_INSTANCE_STATE;
signal view_state_r : std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0) := ANY_VIEW_STATE;
signal sample_state_r : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := ANY_SAMPLE_STATE;
signal instance_handle_r : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_instance_handle_r : Testbench_Lib3.rtps_package.INSTANCE_HANDLE_TYPE := Testbench_Lib3.rtps_package.HANDLE_NIL;
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.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');
signal si_generation_rank_r : std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0) := (others => '0');
signal si_absolute_generation_rank_r : std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal sample_info_r : Testbench_Lib3.rtps_package.SAMPLE_INFO_TYPE := ZERO_SAMPLE_INFO;
signal status_r : std_logic_vector(STATUS_KIND_WIDTH-1 downto 0) := (others => '0');
signal id_r, a_r : std_logic_vector(CDR_LONG_WIDTH-1 downto 0) := (others => '0');
@ -178,21 +186,9 @@ begin
get_data_user => get_data_r,
done_user => done_r,
return_code_user => return_code_r,
-- Sample Info
si_sample_state_user => si_sample_state_r,
si_view_state_user => si_view_state_r,
si_instance_state_user => si_instance_state_r,
si_source_timestamp_user => si_source_timestamp_r,
si_instance_handle_user => si_instance_handle_r,
si_publication_handle_user => si_publication_handle_r,
si_disposed_generation_count_user => si_disposed_generation_count_r,
si_no_writers_generation_count_user => si_no_writers_generation_count_r,
si_sample_rank_user => si_sample_rank_r,
si_generation_rank_user => si_generation_rank_r,
si_absolute_generation_rank_user => si_absolute_generation_rank_r,
si_valid_data_user => si_valid_data_r,
si_valid_user => si_valid_r,
si_ack_user => si_ack_r,
sample_info_user => sample_info_r,
sample_info_valid_user => sample_info_valid_r,
sample_info_ack_user => sample_info_ack_r,
eoc_user => eoc_r,
-- Communication Status
status_user => status_r,
@ -373,14 +369,14 @@ begin
Log("Read Sample (Instance 1 Sample 1)", INFO);
try_read;
wait_on_sig(si_valid_r);
wait_on_sig(sample_info_valid_r);
wait for 1 ps; -- Make sure all signals stable
AlertIf(si_valid_data_r /= '1', "Reader returned no Data", ERROR);
AffirmIfEqual(to_unsigned(INSTANCE_HANDLE_TYPE(si_instance_handle_r)), to_unsigned(inst1));
si_ack_r <= '1';
AlertIf(sample_info_r.valid_data /= '1', "Reader returned no Data", ERROR);
AffirmIfEqual(to_unsigned(INSTANCE_HANDLE_TYPE(sample_info_r.instance_handle)), to_unsigned(inst1));
sample_info_ack_r <= '1';
get_data_r <= '1';
wait until rising_edge(clk);
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
wait_on_sig(valid_r);
wait for 1 ps; -- Make sure all signals stable
@ -391,14 +387,14 @@ begin
Log("Read Sample (Instance 2 Sample 1)", INFO);
try_read;
wait_on_sig(si_valid_r);
wait_on_sig(sample_info_valid_r);
wait for 1 ps; -- Make sure all signals stable
AlertIf(si_valid_data_r /= '1', "Reader returned no Data", ERROR);
AffirmIfEqual(to_unsigned(INSTANCE_HANDLE_TYPE(si_instance_handle_r)), to_unsigned(inst2));
si_ack_r <= '1';
AlertIf(sample_info_r.valid_data /= '1', "Reader returned no Data", ERROR);
AffirmIfEqual(to_unsigned(INSTANCE_HANDLE_TYPE(sample_info_r.instance_handle)), to_unsigned(inst2));
sample_info_ack_r <= '1';
get_data_r <= '1';
wait until rising_edge(clk);
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
wait_on_sig(valid_r);
wait for 1 ps; -- Make sure all signals stable
@ -409,14 +405,14 @@ begin
Log("Read Sample (Instance 1 Sample 2)", INFO);
try_read;
wait_on_sig(si_valid_r);
wait_on_sig(sample_info_valid_r);
wait for 1 ps; -- Make sure all signals stable
AlertIf(si_valid_data_r /= '1', "Reader returned no Data", ERROR);
AffirmIfEqual(to_unsigned(INSTANCE_HANDLE_TYPE(si_instance_handle_r)), to_unsigned(inst1));
si_ack_r <= '1';
AlertIf(sample_info_r.valid_data /= '1', "Reader returned no Data", ERROR);
AffirmIfEqual(to_unsigned(INSTANCE_HANDLE_TYPE(sample_info_r.instance_handle)), to_unsigned(inst1));
sample_info_ack_r <= '1';
get_data_r <= '1';
wait until rising_edge(clk);
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
wait_on_sig(valid_r);
wait for 1 ps; -- Make sure all signals stable
@ -427,14 +423,14 @@ begin
Log("Read Sample (Instance 2 Sample 2)", INFO);
try_read;
wait_on_sig(si_valid_r);
wait_on_sig(sample_info_valid_r);
wait for 1 ps; -- Make sure all signals stable
AlertIf(si_valid_data_r /= '1', "Reader returned no Data", ERROR);
AffirmIfEqual(to_unsigned(INSTANCE_HANDLE_TYPE(si_instance_handle_r)), to_unsigned(inst2));
si_ack_r <= '1';
AlertIf(sample_info_r.valid_data /= '1', "Reader returned no Data", ERROR);
AffirmIfEqual(to_unsigned(INSTANCE_HANDLE_TYPE(sample_info_r.instance_handle)), to_unsigned(inst2));
sample_info_ack_r <= '1';
get_data_r <= '1';
wait until rising_edge(clk);
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
wait_on_sig(valid_r);
wait for 1 ps; -- Make sure all signals stable
@ -476,14 +472,14 @@ begin
Log("Read Sample (Instance 3 Sample 1)", INFO);
try_read;
wait_on_sig(si_valid_r);
wait_on_sig(sample_info_valid_r);
wait for 1 ps; -- Make sure all signals stable
AlertIf(si_valid_data_r /= '1', "Reader returned no Data", ERROR);
AffirmIfEqual(to_unsigned(INSTANCE_HANDLE_TYPE(si_instance_handle_r)), to_unsigned(inst3));
si_ack_r <= '1';
AlertIf(sample_info_r.valid_data /= '1', "Reader returned no Data", ERROR);
AffirmIfEqual(to_unsigned(INSTANCE_HANDLE_TYPE(sample_info_r.instance_handle)), to_unsigned(inst3));
sample_info_ack_r <= '1';
get_data_r <= '1';
wait until rising_edge(clk);
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
wait_on_sig(valid_r);
wait for 1 ps; -- Make sure all signals stable

View File

@ -28,6 +28,21 @@ end entity;
architecture testbench of L2_Type1_test2 is
constant ZERO_SAMPLE_INFO : Testbench_Lib5.rtps_package.SAMPLE_INFO_TYPE := (
sample_state => (others => '0'),
view_state => (others => '0'),
instance_state => (others => '0'),
source_timestamp => Testbench_Lib5.rtps_package.TIME_ZERO,
instance_handle => Testbench_Lib5.rtps_package.HANDLE_NIL,
publication_handle => Testbench_Lib5.rtps_package.HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal time : TIME_TYPE := TIME_ZERO;
signal empty_l4, full_l4, read_l4, write_l4 : std_logic := '0';
@ -46,22 +61,15 @@ architecture testbench of L2_Type1_test2 is
signal status_w : std_logic_vector(STATUS_KIND_WIDTH-1 downto 0) := (others => '0');
signal id_w, a_w : std_logic_vector(CDR_LONG_WIDTH-1 downto 0) := (others => '0');
signal start_r, ack_r, get_data_r, done_r, si_valid_data_r, si_valid_r, si_ack_r, eoc_r, valid_r, decode_error_r : std_logic := '0';
signal start_r, ack_r, get_data_r, done_r, sample_info_valid_r, sample_info_ack_r, eoc_r, valid_r, decode_error_r : std_logic := '0';
signal opcode_r : DDS_READER_OPCODE_TYPE;
signal instance_state_r, si_instance_state_r : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0) := ANY_INSTANCE_STATE;
signal view_state_r, si_view_state_r : std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0) := ANY_VIEW_STATE;
signal sample_state_r, si_sample_state_r : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := ANY_SAMPLE_STATE;
signal instance_state_r : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0) := ANY_INSTANCE_STATE;
signal view_state_r : std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0) := ANY_VIEW_STATE;
signal sample_state_r : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := ANY_SAMPLE_STATE;
signal instance_handle_r : INSTANCE_HANDLE_TYPE := HANDLE_NIL;
signal si_instance_handle_r : Testbench_Lib5.rtps_package.INSTANCE_HANDLE_TYPE := Testbench_Lib5.rtps_package.HANDLE_NIL;
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_Lib5.rtps_package.TIME_TYPE := Testbench_Lib5.rtps_package.TIME_INVALID;
signal si_publication_handle_r : Testbench_Lib5.rtps_package.INSTANCE_HANDLE_TYPE := Testbench_Lib5.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');
signal si_generation_rank_r : std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0) := (others => '0');
signal si_absolute_generation_rank_r : std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0) := (others => '0');
signal sample_info_r : Testbench_Lib5.rtps_package.SAMPLE_INFO_TYPE := ZERO_SAMPLE_INFO;
signal status_r : std_logic_vector(STATUS_KIND_WIDTH-1 downto 0) := (others => '0');
signal id_r, a_r : std_logic_vector(CDR_LONG_WIDTH-1 downto 0) := (others => '0');
@ -161,20 +169,9 @@ begin
get_data_r => get_data_r,
done_r => done_r,
return_code_r => return_code_r,
si_sample_state_r => si_sample_state_r,
si_view_state_r => si_view_state_r,
si_instance_state_r => si_instance_state_r,
si_source_timestamp_r => si_source_timestamp_r,
si_instance_handle_r => si_instance_handle_r,
si_publication_handle_r => si_publication_handle_r,
si_disposed_generation_count_r => si_disposed_generation_count_r,
si_no_writers_generation_count_r => si_no_writers_generation_count_r,
si_sample_rank_r => si_sample_rank_r,
si_generation_rank_r => si_generation_rank_r,
si_absolute_generation_rank_r => si_absolute_generation_rank_r,
si_valid_data_r => si_valid_data_r,
si_valid_r => si_valid_r,
si_ack_r => si_ack_r,
sample_info_r => sample_info_r,
sample_info_valid_r => sample_info_valid_r,
sample_info_ack_r => sample_info_ack_r,
eoc_r => eoc_r,
status_r => status_r,
decode_error_r => decode_error_r,
@ -292,16 +289,16 @@ begin
wait until rising_edge(clk);
case (return_code_r) is
when RETCODE_OK =>
wait_on_sig(si_valid_r);
wait_on_sig(sample_info_valid_r);
wait for 1 ps; -- Make sure all signals stable
-- Check if Sample is from target Instance
if (si_valid_data_r = '1' and INSTANCE_HANDLE_TYPE(si_instance_handle_r) = inst) then
if (sample_info_r.valid_data = '1' and INSTANCE_HANDLE_TYPE(sample_info_r.instance_handle) = inst) then
Log("Read Sample " & integer'image(j), INFO);
si_ack_r <= '1';
get_data_r <= '1';
sample_info_ack_r <= '1';
get_data_r <= '1';
wait until rising_edge(clk);
si_ack_r <= '0';
get_data_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
wait_on_sig(valid_r);
wait for 1 ps; -- Make sure all signals stable
AffirmIfEqual(id_r, int(2,CDR_LONG_WIDTH));
@ -312,9 +309,9 @@ begin
else
Log("Read Unknown Sample", INFO);
-- Ignore Sample
si_ack_r <= '1';
sample_info_ack_r <= '1';
wait until rising_edge(clk);
si_ack_r <= '0';
sample_info_ack_r <= '0';
end if;
when RETCODE_NO_DATA =>
Log("No more Samples", INFO);

View File

@ -41,7 +41,6 @@ architecture arch of L2_Testbench_Lib4 is
type INSTANCE_HANDLE_RARRAY_TYPE is array (0 to NUM_READERS-1) of INSTANCE_HANDLE_TYPE;
type INSTANCE_HANDLE_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of INSTANCE_HANDLE_TYPE;
type CACHE_CHANGE_KIND_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of CACHE_CHANGE_KIND_TYPE;
type TIME_RARRAY_TYPE is array (0 to NUM_READERS-1) of TIME_TYPE;
type TIME_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of TIME_TYPE;
type DDS_READER_OPCODE_RARRAY_TYPE is array (0 to NUM_READERS-1) of DDS_READER_OPCODE_TYPE;
type DDS_WRITER_OPCODE_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of DDS_WRITER_OPCODE_TYPE;
@ -51,14 +50,10 @@ architecture arch of L2_Testbench_Lib4 is
type MAX_SAMPLES_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0);
type RETURN_CODE_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
type RETURN_CODE_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
type DISPOSED_GENERATION_COUNT_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
type NO_WRITERS_GENERATION_COUNT_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
type SAMPLE_RANK_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
type GENERATION_RANK_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
type ABSOLUTE_GENERATION_RANK_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
type STATUS_KIND_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
type STATUS_KIND_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
type DURATION_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of DURATION_TYPE;
type SAMPLE_INFO_RARRAY_TYPE is array (0 to NUM_READERS-1) of SAMPLE_INFO_TYPE;
signal full_fire_rh, write_rh_fire : std_logic_vector(0 to NUM_ENDPOINTS-1);
signal data_rh_fire, data_rh_firb : std_logic_vector(WORD_WIDTH downto 0);
@ -86,21 +81,16 @@ architecture arch of L2_Testbench_Lib4 is
signal cc_instance_handle_dw_rw : INSTANCE_HANDLE_WARRAY_TYPE;
signal cc_kind_dw_rw : CACHE_CHANGE_KIND_WARRAY_TYPE;
signal cc_source_timestamp_dw_rw : TIME_WARRAY_TYPE;
signal start_ri_dr, ack_dr_ri, get_data_ri_dr, done_dr_ri, ready_ri_dr, valid_dr_ri, si_valid_data_dr_ri, si_valid_dr_ri, si_ack_ri_dr, eoc_dr_ri : std_logic_vector(0 to NUM_READERS-1);
signal sample_info_dr_ri : SAMPLE_INFO_RARRAY_TYPE;
signal start_ri_dr, ack_dr_ri, get_data_ri_dr, done_dr_ri, ready_ri_dr, valid_dr_ri, sample_info_valid_dr_ri, sample_info_ack_ri_dr, eoc_dr_ri : std_logic_vector(0 to NUM_READERS-1);
signal opcode_ri_dr : DDS_READER_OPCODE_RARRAY_TYPE;
signal instance_state_ri_dr, si_instance_state_dr_ri : INSTANCE_STATE_RARRAY_TYPE;
signal view_state_ri_dr, si_view_state_dr_ri : VIEW_STATE_RARRAY_TYPE;
signal sample_state_ri_dr, si_sample_state_dr_ri : SAMPLE_STATE_RARRAY_TYPE;
signal instance_handle_ri_dr, si_instance_handle_dr_ri, si_publication_handle_dr_ri : INSTANCE_HANDLE_RARRAY_TYPE;
signal instance_state_ri_dr : INSTANCE_STATE_RARRAY_TYPE;
signal view_state_ri_dr : VIEW_STATE_RARRAY_TYPE;
signal sample_state_ri_dr : SAMPLE_STATE_RARRAY_TYPE;
signal instance_handle_ri_dr : INSTANCE_HANDLE_RARRAY_TYPE;
signal max_samples_ri_dr : MAX_SAMPLES_RARRAY_TYPE;
signal return_code_dr_ri : RETURN_CODE_RARRAY_TYPE;
signal data_dr_ri : RARRAY_DATA_TYPE;
signal si_source_timestamp_dr_ri : TIME_RARRAY_TYPE;
signal si_disposed_generation_count_dr_ri : DISPOSED_GENERATION_COUNT_RARRAY_TYPE;
signal si_no_writers_generation_count_dr_ri : NO_WRITERS_GENERATION_COUNT_RARRAY_TYPE;
signal si_sample_rank_dr_ri : SAMPLE_RANK_RARRAY_TYPE;
signal si_generation_rank_dr_ri : GENERATION_RANK_RARRAY_TYPE;
signal si_absolute_generation_rank_dr_ri : ABSOLUTE_GENERATION_RANK_RARRAY_TYPE;
signal status_dr_ri : STATUS_KIND_RARRAY_TYPE;
signal start_wi_dw, ack_dw_wi, done_dw_wi, valid_wi_dw, valid_dw_wi, ready_wi_dw, ready_dw_wi : std_logic_vector(0 to NUM_WRITERS-1);
signal opcode_wi_dw : DDS_WRITER_OPCODE_WARRAY_TYPE;
@ -112,20 +102,15 @@ architecture arch of L2_Testbench_Lib4 is
signal status_dw_wi : STATUS_KIND_WARRAY_TYPE;
signal empty_firo_ro, read_ro_firo, last_word_firo_ro : std_logic_vector(0 to NUM_ENDPOINTS);
signal data_firo_ro : RTPS_OUT_DATA_TYPE;
signal start_user_ri, ack_ri_user, get_data_user_ri, done_ri_user, si_valid_data_ri_user, si_valid_ri_user, si_ack_user_ri, eoc_ri_user, decode_error_ri_user, valid_ri_user : std_logic;
signal sample_info_ri_user : SAMPLE_INFO_TYPE;
signal start_user_ri, ack_ri_user, get_data_user_ri, done_ri_user, sample_info_valid_ri_user, sample_info_ack_user_ri, eoc_ri_user, decode_error_ri_user, valid_ri_user : std_logic;
signal opcode_user_ri : DDS_READER_OPCODE_TYPE;
signal instance_state_user_ri, si_instance_state_ri_user : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
signal view_state_user_ri, si_view_state_ri_user : std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
signal sample_state_user_ri, si_sample_state_ri_user : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
signal instance_state_user_ri : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
signal view_state_user_ri : std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
signal sample_state_user_ri : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
signal max_samples_user_ri : std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0);
signal instance_handle_user_ri, si_instance_handle_ri_user, si_publication_handle_ri_user : INSTANCE_HANDLE_TYPE;
signal instance_handle_user_ri : INSTANCE_HANDLE_TYPE;
signal return_code_ri_user : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
signal si_source_timestamp_ri_user : TIME_TYPE;
signal si_disposed_generation_count_ri_user : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
signal si_no_writers_generation_count_ri_user : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
signal si_sample_rank_ri_user : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
signal si_generation_rank_ri_user : std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
signal si_absolute_generation_rank_ri_user : std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
signal status_ri_user : std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
signal id_ri_user, a_ri_user : std_logic_vector(CDR_LONG_WIDTH-1 downto 0);
signal start_user_wi, ack_wi_user, done_wi_user : std_logic;
@ -422,21 +407,9 @@ begin
ready_out_dds => ready_ri_dr(i),
data_out_dds => data_dr_ri(i)(WORD_WIDTH-1 downto 0),
last_word_out_dds => data_dr_ri(i)(WORD_WIDTH),
-- Sample Info
si_sample_state => si_sample_state_dr_ri(i),
si_view_state => si_view_state_dr_ri(i),
si_instance_state => si_instance_state_dr_ri(i),
si_source_timestamp => si_source_timestamp_dr_ri(i),
si_instance_handle => si_instance_handle_dr_ri(i),
si_publication_handle => si_publication_handle_dr_ri(i),
si_disposed_generation_count => si_disposed_generation_count_dr_ri(i),
si_no_writers_generation_count => si_no_writers_generation_count_dr_ri(i),
si_sample_rank => si_sample_rank_dr_ri(i),
si_generation_rank => si_generation_rank_dr_ri(i),
si_absolute_generation_rank => si_absolute_generation_rank_dr_ri(i),
si_valid_data => si_valid_data_dr_ri(i),
si_valid => si_valid_dr_ri(i),
si_ack => si_ack_ri_dr(i),
sample_info => sample_info_dr_ri(i),
sample_info_valid => sample_info_valid_dr_ri(i),
sample_info_ack => sample_info_ack_ri_dr(i),
eoc => eoc_dr_ri(i),
-- Communication Status
status => status_dr_ri(i)
@ -593,21 +566,9 @@ begin
ready_in_dds => ready_ri_dr(0),
data_in_dds => data_dr_ri(0)(WORD_WIDTH-1 downto 0),
last_word_in_dds => data_dr_ri(0)(WORD_WIDTH),
-- Sample Info
si_sample_state_dds => si_sample_state_dr_ri(0),
si_view_state_dds => si_view_state_dr_ri(0),
si_instance_state_dds => si_instance_state_dr_ri(0),
si_source_timestamp_dds => si_source_timestamp_dr_ri(0),
si_instance_handle_dds => si_instance_handle_dr_ri(0),
si_publication_handle_dds => si_publication_handle_dr_ri(0),
si_disposed_generation_count_dds => si_disposed_generation_count_dr_ri(0),
si_no_writers_generation_count_dds => si_no_writers_generation_count_dr_ri(0),
si_sample_rank_dds => si_sample_rank_dr_ri(0),
si_generation_rank_dds => si_generation_rank_dr_ri(0),
si_absolute_generation_rank_dds => si_absolute_generation_rank_dr_ri(0),
si_valid_data_dds => si_valid_data_dr_ri(0),
si_valid_dds => si_valid_dr_ri(0),
si_ack_dds => si_ack_ri_dr(0),
sample_info_dds => sample_info_dr_ri(0),
sample_info_valid_dds => sample_info_valid_dr_ri(0),
sample_info_ack_dds => sample_info_ack_ri_dr(0),
eoc_dds => eoc_dr_ri(0),
-- Communication Status
status_dds => status_dr_ri(0),
@ -623,21 +584,9 @@ begin
get_data_user => get_data_user_ri,
done_user => done_ri_user,
return_code_user => return_code_ri_user,
-- Sample Info
si_sample_state_user => si_sample_state_ri_user,
si_view_state_user => si_view_state_ri_user,
si_instance_state_user => si_instance_state_ri_user,
si_source_timestamp_user => si_source_timestamp_ri_user,
si_instance_handle_user => si_instance_handle_ri_user,
si_publication_handle_user => si_publication_handle_ri_user,
si_disposed_generation_count_user => si_disposed_generation_count_ri_user,
si_no_writers_generation_count_user => si_no_writers_generation_count_ri_user,
si_sample_rank_user => si_sample_rank_ri_user,
si_generation_rank_user => si_generation_rank_ri_user,
si_absolute_generation_rank_user => si_absolute_generation_rank_ri_user,
si_valid_data_user => si_valid_data_ri_user,
si_valid_user => si_valid_ri_user,
si_ack_user => si_ack_user_ri,
sample_info_user => sample_info_ri_user,
sample_info_valid_user => sample_info_valid_ri_user,
sample_info_ack_user => sample_info_ack_user_ri,
eoc_user => eoc_ri_user,
-- Communication Status
status_user => status_ri_user,
@ -712,20 +661,9 @@ begin
get_data_r => get_data_user_ri,
done_r => done_ri_user,
return_code_r => return_code_ri_user,
si_sample_state_r => si_sample_state_ri_user,
si_view_state_r => si_view_state_ri_user,
si_instance_state_r => si_instance_state_ri_user,
si_source_timestamp_r => si_source_timestamp_ri_user,
si_instance_handle_r => si_instance_handle_ri_user,
si_publication_handle_r => si_publication_handle_ri_user,
si_disposed_generation_count_r => si_disposed_generation_count_ri_user,
si_no_writers_generation_count_r => si_no_writers_generation_count_ri_user,
si_sample_rank_r => si_sample_rank_ri_user,
si_generation_rank_r => si_generation_rank_ri_user,
si_absolute_generation_rank_r => si_absolute_generation_rank_ri_user,
si_valid_data_r => si_valid_data_ri_user,
si_valid_r => si_valid_ri_user,
si_ack_r => si_ack_user_ri,
sample_info_r => sample_info_ri_user,
sample_info_valid_r => sample_info_valid_ri_user,
sample_info_ack_r => sample_info_ack_user_ri,
eoc_r => eoc_ri_user,
status_r => status_ri_user,
decode_error_r => decode_error_ri_user,

View File

@ -37,20 +37,9 @@ entity L2_Testbench_Lib5 is
get_data_r : in std_logic;
done_r : out std_logic;
return_code_r : out std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
si_sample_state_r : out std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_r : out std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
si_instance_state_r : out std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_r : out TIME_TYPE;
si_instance_handle_r : out INSTANCE_HANDLE_TYPE;
si_publication_handle_r : out INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_r : out std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_r : out std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_r : out std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
si_generation_rank_r : out std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_r : out std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_r : out std_logic;
si_valid_r : out std_logic;
si_ack_r : in std_logic;
sample_info_r : out SAMPLE_INFO_TYPE;
sample_info_valid_r : out std_logic;
sample_info_ack_r : in std_logic;
eoc_r : out std_logic;
status_r : out std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
decode_error_r : out std_logic;
@ -88,7 +77,6 @@ architecture arch of L2_Testbench_Lib5 is
type INSTANCE_HANDLE_RARRAY_TYPE is array (0 to NUM_READERS-1) of INSTANCE_HANDLE_TYPE;
type INSTANCE_HANDLE_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of INSTANCE_HANDLE_TYPE;
type CACHE_CHANGE_KIND_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of CACHE_CHANGE_KIND_TYPE;
type TIME_RARRAY_TYPE is array (0 to NUM_READERS-1) of TIME_TYPE;
type TIME_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of TIME_TYPE;
type DDS_READER_OPCODE_RARRAY_TYPE is array (0 to NUM_READERS-1) of DDS_READER_OPCODE_TYPE;
type DDS_WRITER_OPCODE_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of DDS_WRITER_OPCODE_TYPE;
@ -98,14 +86,10 @@ architecture arch of L2_Testbench_Lib5 is
type MAX_SAMPLES_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0);
type RETURN_CODE_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
type RETURN_CODE_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
type DISPOSED_GENERATION_COUNT_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
type NO_WRITERS_GENERATION_COUNT_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
type SAMPLE_RANK_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
type GENERATION_RANK_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
type ABSOLUTE_GENERATION_RANK_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
type STATUS_KIND_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
type STATUS_KIND_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
type DURATION_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of DURATION_TYPE;
type SAMPLE_INFO_RARRAY_TYPE is array (0 to NUM_READERS-1) of SAMPLE_INFO_TYPE;
signal full_fire_rh, write_rh_fire : std_logic_vector(0 to NUM_ENDPOINTS-1);
signal data_rh_fire, data_rh_firb : std_logic_vector(WORD_WIDTH downto 0);
@ -133,21 +117,16 @@ architecture arch of L2_Testbench_Lib5 is
signal cc_instance_handle_dw_rw : INSTANCE_HANDLE_WARRAY_TYPE;
signal cc_kind_dw_rw : CACHE_CHANGE_KIND_WARRAY_TYPE;
signal cc_source_timestamp_dw_rw : TIME_WARRAY_TYPE;
signal start_ri_dr, ack_dr_ri, get_data_ri_dr, done_dr_ri, ready_ri_dr, valid_dr_ri, si_valid_data_dr_ri, si_valid_dr_ri, si_ack_ri_dr, eoc_dr_ri : std_logic_vector(0 to NUM_READERS-1);
signal sample_info_dr_ri : SAMPLE_INFO_RARRAY_TYPE;
signal start_ri_dr, ack_dr_ri, get_data_ri_dr, done_dr_ri, ready_ri_dr, valid_dr_ri, sample_info_valid_dr_ri, sample_info_ack_ri_dr, eoc_dr_ri : std_logic_vector(0 to NUM_READERS-1);
signal opcode_ri_dr : DDS_READER_OPCODE_RARRAY_TYPE;
signal instance_state_ri_dr, si_instance_state_dr_ri : INSTANCE_STATE_RARRAY_TYPE;
signal view_state_ri_dr, si_view_state_dr_ri : VIEW_STATE_RARRAY_TYPE;
signal sample_state_ri_dr, si_sample_state_dr_ri : SAMPLE_STATE_RARRAY_TYPE;
signal instance_handle_ri_dr, si_instance_handle_dr_ri, si_publication_handle_dr_ri : INSTANCE_HANDLE_RARRAY_TYPE;
signal instance_state_ri_dr : INSTANCE_STATE_RARRAY_TYPE;
signal view_state_ri_dr : VIEW_STATE_RARRAY_TYPE;
signal sample_state_ri_dr : SAMPLE_STATE_RARRAY_TYPE;
signal instance_handle_ri_dr : INSTANCE_HANDLE_RARRAY_TYPE;
signal max_samples_ri_dr : MAX_SAMPLES_RARRAY_TYPE;
signal return_code_dr_ri : RETURN_CODE_RARRAY_TYPE;
signal data_dr_ri : RARRAY_DATA_TYPE;
signal si_source_timestamp_dr_ri : TIME_RARRAY_TYPE;
signal si_disposed_generation_count_dr_ri : DISPOSED_GENERATION_COUNT_RARRAY_TYPE;
signal si_no_writers_generation_count_dr_ri : NO_WRITERS_GENERATION_COUNT_RARRAY_TYPE;
signal si_sample_rank_dr_ri : SAMPLE_RANK_RARRAY_TYPE;
signal si_generation_rank_dr_ri : GENERATION_RANK_RARRAY_TYPE;
signal si_absolute_generation_rank_dr_ri : ABSOLUTE_GENERATION_RANK_RARRAY_TYPE;
signal status_dr_ri : STATUS_KIND_RARRAY_TYPE;
signal start_wi_dw, ack_dw_wi, done_dw_wi, valid_wi_dw, valid_dw_wi, ready_wi_dw, ready_dw_wi : std_logic_vector(0 to NUM_WRITERS-1);
signal opcode_wi_dw : DDS_WRITER_OPCODE_WARRAY_TYPE;
@ -444,21 +423,9 @@ begin
ready_out_dds => ready_ri_dr(i),
data_out_dds => data_dr_ri(i)(WORD_WIDTH-1 downto 0),
last_word_out_dds => data_dr_ri(i)(WORD_WIDTH),
-- Sample Info
si_sample_state => si_sample_state_dr_ri(i),
si_view_state => si_view_state_dr_ri(i),
si_instance_state => si_instance_state_dr_ri(i),
si_source_timestamp => si_source_timestamp_dr_ri(i),
si_instance_handle => si_instance_handle_dr_ri(i),
si_publication_handle => si_publication_handle_dr_ri(i),
si_disposed_generation_count => si_disposed_generation_count_dr_ri(i),
si_no_writers_generation_count => si_no_writers_generation_count_dr_ri(i),
si_sample_rank => si_sample_rank_dr_ri(i),
si_generation_rank => si_generation_rank_dr_ri(i),
si_absolute_generation_rank => si_absolute_generation_rank_dr_ri(i),
si_valid_data => si_valid_data_dr_ri(i),
si_valid => si_valid_dr_ri(i),
si_ack => si_ack_ri_dr(i),
sample_info => sample_info_dr_ri(i),
sample_info_valid => sample_info_valid_dr_ri(i),
sample_info_ack => sample_info_ack_ri_dr(i),
eoc => eoc_dr_ri(i),
-- Communication Status
status => status_dr_ri(i)
@ -615,21 +582,9 @@ begin
ready_in_dds => ready_ri_dr(0),
data_in_dds => data_dr_ri(0)(WORD_WIDTH-1 downto 0),
last_word_in_dds => data_dr_ri(0)(WORD_WIDTH),
-- Sample Info
si_sample_state_dds => si_sample_state_dr_ri(0),
si_view_state_dds => si_view_state_dr_ri(0),
si_instance_state_dds => si_instance_state_dr_ri(0),
si_source_timestamp_dds => si_source_timestamp_dr_ri(0),
si_instance_handle_dds => si_instance_handle_dr_ri(0),
si_publication_handle_dds => si_publication_handle_dr_ri(0),
si_disposed_generation_count_dds => si_disposed_generation_count_dr_ri(0),
si_no_writers_generation_count_dds => si_no_writers_generation_count_dr_ri(0),
si_sample_rank_dds => si_sample_rank_dr_ri(0),
si_generation_rank_dds => si_generation_rank_dr_ri(0),
si_absolute_generation_rank_dds => si_absolute_generation_rank_dr_ri(0),
si_valid_data_dds => si_valid_data_dr_ri(0),
si_valid_dds => si_valid_dr_ri(0),
si_ack_dds => si_ack_ri_dr(0),
sample_info_dds => sample_info_dr_ri(0),
sample_info_valid_dds => sample_info_valid_dr_ri(0),
sample_info_ack_dds => sample_info_ack_ri_dr(0),
eoc_dds => eoc_dr_ri(0),
-- Communication Status
status_dds => status_dr_ri(0),
@ -645,21 +600,9 @@ begin
get_data_user => get_data_r,
done_user => done_r,
return_code_user => return_code_r,
-- Sample Info
si_sample_state_user => si_sample_state_r,
si_view_state_user => si_view_state_r,
si_instance_state_user => si_instance_state_r,
si_source_timestamp_user => si_source_timestamp_r,
si_instance_handle_user => si_instance_handle_r,
si_publication_handle_user => si_publication_handle_r,
si_disposed_generation_count_user => si_disposed_generation_count_r,
si_no_writers_generation_count_user => si_no_writers_generation_count_r,
si_sample_rank_user => si_sample_rank_r,
si_generation_rank_user => si_generation_rank_r,
si_absolute_generation_rank_user => si_absolute_generation_rank_r,
si_valid_data_user => si_valid_data_r,
si_valid_user => si_valid_r,
si_ack_user => si_ack_r,
sample_info_user => sample_info_r,
sample_info_valid_user => sample_info_valid_r,
sample_info_ack_user => sample_info_ack_r,
eoc_user => eoc_r,
-- Communication Status
status_user => status_r,

View File

@ -31,20 +31,9 @@ entity Type1_reader_interface is
data_in_dds : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_dds : in std_logic;
-- Sample Info
si_sample_state_dds : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_dds : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
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 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);
si_generation_rank_dds : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_dds : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_dds : in std_logic;
si_valid_dds : in std_logic;
si_ack_dds : out std_logic;
sample_info_dds : in SAMPLE_INFO_TYPE;
sample_info_valid_dds : in std_logic;
sample_info_ack_dds : out std_logic;
eoc_dds : in std_logic;
-- Communication Status
status_dds : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
@ -62,20 +51,9 @@ entity Type1_reader_interface is
done_user : out std_logic;
return_code_user : out std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
-- Sample Info
si_sample_state_user : out std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_user : out std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
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 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);
si_generation_rank_user : out std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_user : out std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_user : out std_logic;
si_valid_user : out std_logic;
si_ack_user : in std_logic;
sample_info_user : out SAMPLE_INFO_TYPE;
sample_info_valid_user : out std_logic;
sample_info_ack_user : in std_logic;
eoc_user : out std_logic;
-- Communication Status
status_user : out std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
@ -140,20 +118,9 @@ begin
get_data_dds <= get_data_user;
done_user <= done_dds;
return_code_user <= return_code_dds;
si_sample_state_user <= si_sample_state_dds;
si_view_state_user <= si_view_state_dds;
si_instance_state_user <= si_instance_state_dds;
si_source_timestamp_user <= si_source_timestamp_dds;
si_instance_handle_user <= si_instance_handle_dds;
si_publication_handle_user <= si_publication_handle_dds;
si_disposed_generation_count_user <= si_disposed_generation_count_dds;
si_no_writers_generation_count_user <= si_no_writers_generation_count_dds;
si_sample_rank_user <= si_sample_rank_dds;
si_generation_rank_user <= si_generation_rank_dds;
si_absolute_generation_rank_user <= si_absolute_generation_rank_dds;
si_valid_data_user <= si_valid_data_dds;
si_valid_user <= si_valid_dds;
si_ack_dds <= si_ack_user;
sample_info_user <= sample_info_dds;
sample_info_valid_user <= sample_info_valid_dds;
sample_info_ack_dds <= sample_info_ack_user;
eoc_user <= eoc_dds;
status_user <= status_dds;
@ -198,7 +165,7 @@ begin
case (stage) is
when IDLE =>
-- User Requests Payload
if (si_valid_dds = '1' and si_valid_data_dds = '1' and si_ack_user = '1' and get_data_user = '1') then
if (sample_info_valid_dds = '1' and sample_info_dds.valid_data = '1' and sample_info_ack_user = '1' and get_data_user = '1') then
stage_next <= GET_PAYLOAD_HEADER;
-- RESET
decode_error_latch_next <= '0';

View File

@ -31,20 +31,9 @@ entity Type2_reader_interface is
data_in_dds : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_dds : in std_logic;
-- Sample Info
si_sample_state_dds : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_dds : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
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 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);
si_generation_rank_dds : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_dds : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_dds : in std_logic;
si_valid_dds : in std_logic;
si_ack_dds : out std_logic;
sample_info_dds : in SAMPLE_INFO_TYPE;
sample_info_valid_dds : in std_logic;
sample_info_ack_dds : out std_logic;
eoc_dds : in std_logic;
-- Communication Status
status_dds : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
@ -62,20 +51,9 @@ entity Type2_reader_interface is
done_user : out std_logic;
return_code_user : out std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
-- Sample Info
si_sample_state_user : out std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_user : out std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
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 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);
si_generation_rank_user : out std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_user : out std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_user : out std_logic;
si_valid_user : out std_logic;
si_ack_user : in std_logic;
sample_info_user : out SAMPLE_INFO_TYPE;
sample_info_valid_user : out std_logic;
sample_info_ack_user : in std_logic;
eoc_user : out std_logic;
-- Communication Status
status_user : out std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
@ -391,20 +369,9 @@ begin
get_data_dds <= get_data_user;
done_user <= done_dds;
return_code_user <= return_code_dds;
si_sample_state_user <= si_sample_state_dds;
si_view_state_user <= si_view_state_dds;
si_instance_state_user <= si_instance_state_dds;
si_source_timestamp_user <= si_source_timestamp_dds;
si_instance_handle_user <= si_instance_handle_dds;
si_publication_handle_user <= si_publication_handle_dds;
si_disposed_generation_count_user <= si_disposed_generation_count_dds;
si_no_writers_generation_count_user <= si_no_writers_generation_count_dds;
si_sample_rank_user <= si_sample_rank_dds;
si_generation_rank_user <= si_generation_rank_dds;
si_absolute_generation_rank_user <= si_absolute_generation_rank_dds;
si_valid_data_user <= si_valid_data_dds;
si_valid_user <= si_valid_dds;
si_ack_dds <= si_ack_user;
sample_info_user <= sample_info_dds;
sample_info_valid_user <= sample_info_valid_dds;
sample_info_ack_dds <= sample_info_ack_user;
eoc_user <= eoc_dds;
status_user <= status_dds;
@ -531,7 +498,7 @@ begin
case (stage) is
when IDLE =>
-- User Requests Payload
if (si_valid_dds = '1' and si_valid_data_dds = '1' and si_ack_user = '1' and get_data_user = '1') then
if (sample_info_valid_dds = '1' and sample_info_dds.valid_data = '1' and sample_info_ack_user = '1' and get_data_user = '1') then
stage_next <= GET_PAYLOAD_HEADER;
-- RESET
decode_error_latch_next <= '0';

View File

@ -25,20 +25,9 @@ entity test_loopback is
get_data_r : out std_logic;
done_r : in std_logic;
return_code_r : in std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
si_sample_state_r : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_r : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
si_instance_state_r : in std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_r : in TIME_TYPE;
si_instance_handle_r : in INSTANCE_HANDLE_TYPE;
si_publication_handle_r : in INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_r : in std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_r : in std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_r : in std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
si_generation_rank_r : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_r : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_r : in std_logic;
si_valid_r : in std_logic;
si_ack_r : out std_logic;
sample_info_r : in SAMPLE_INFO_TYPE;
sample_info_valid_r : in std_logic;
sample_info_ack_r : out std_logic;
eoc_r : in std_logic;
status_r : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
decode_error_r : in std_logic;
@ -92,7 +81,7 @@ begin
instance_handle_r <= HANDLE_NIL;
max_samples_r <= (others => '0');
get_data_r <= '0';
si_ack_r <= '0';
sample_info_ack_r <= '0';
start_w <= '0';
opcode_w <= NOP;
instance_handle_out_w <= HANDLE_NIL;
@ -147,10 +136,10 @@ begin
end case;
end if;
when 2 =>
if (si_valid_r = '1') then
si_ack_r <= '1';
if (sample_info_valid_r = '1') then
sample_info_ack_r <= '1';
-- Target Instance with Data
if (si_instance_handle_r = inst and si_valid_data_r = '1') then
if (sample_info_r.instance_handle = inst and sample_info_r.valid_data = '1') then
cnt_next <= cnt + 1;
get_data_r <= '1';
else

View File

@ -62,21 +62,9 @@ entity dds_reader is
ready_out_dds : in std_logic;
data_out_dds : out std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_out_dds : out std_logic;
-- Sample Info
si_sample_state : out std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state : out std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
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 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);
si_generation_rank : out std_logic_vector(GENERATION_RANK_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 : out std_logic;
si_ack : in std_logic;
sample_info : out SAMPLE_INFO_TYPE;
sample_info_valid : out std_logic;
sample_info_ack : in std_logic;
eoc : out std_logic;
-- Communication Status
status : out std_logic_vector(STATUS_KIND_WIDTH-1 downto 0)
@ -482,6 +470,7 @@ architecture arch of dds_reader is
signal deadline_miss_last_inst, deadline_miss_last_inst_next : INSTANCE_HANDLE_TYPE;
-- *SAMPLE INFO*
signal sample_info_sig, sample_info_sig_next : SAMPLE_INFO_TYPE;
signal si_sample_state_sig, si_sample_state_sig_next : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
signal si_view_state_sig, si_view_state_sig_next : std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
signal si_instance_state_sig, si_instance_state_sig_next : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
@ -674,21 +663,21 @@ begin
);
end generate;
si_sample_state <= si_sample_state_sig;
si_view_state <= si_view_state_sig;
si_instance_state <= si_instance_state_sig;
si_source_timestamp <= si_source_timestamp_sig;
si_instance_handle <= si_instance_handle_sig;
si_publication_handle <= si_publication_handle_sig;
si_disposed_generation_count <= si_disposed_generation_count_sig;
si_no_writers_generation_count <= si_no_writers_generation_count_sig;
si_sample_rank <= std_logic_vector(si_sample_rank_sig);
si_generation_rank <= std_logic_vector(si_generation_rank_sig);
si_absolute_generation_rank <= std_logic_vector(si_absolute_generation_rank_sig);
si_valid_data <= si_valid_data_sig;
si_valid <= si_valid_sig;
eoc <= eoc_sig;
status <= status_sig;
sample_info.sample_state <= si_sample_state_sig;
sample_info.view_state <= si_view_state_sig;
sample_info.instance_state <= si_instance_state_sig;
sample_info.source_timestamp <= si_source_timestamp_sig;
sample_info.instance_handle <= si_instance_handle_sig;
sample_info.publication_handle <= si_publication_handle_sig;
sample_info.disposed_generation_count <= si_disposed_generation_count_sig;
sample_info.no_writers_generation_count <= si_no_writers_generation_count_sig;
sample_info.sample_rank <= std_logic_vector(si_sample_rank_sig);
sample_info.generation_rank <= std_logic_vector(si_generation_rank_sig);
sample_info.absolute_generation_rank <= std_logic_vector(si_absolute_generation_rank_sig);
sample_info.valid_data <= si_valid_data_sig;
sample_info_valid <= si_valid_sig;
eoc <= eoc_sig;
status <= status_sig;
-- *Main State Machine*
-- STATE DESCRIPTION
@ -756,7 +745,7 @@ begin
sample_status_info_next <= sample_status_info;
remove_oldest_sample_next <= remove_oldest_sample;
remove_oldest_inst_sample_next <= remove_oldest_inst_sample;
si_sample_state_sig_next <= si_sample_state;
si_sample_state_sig_next <= si_sample_state_sig;
si_view_state_sig_next <= si_view_state_sig;
si_instance_state_sig_next <= si_instance_state_sig;
si_source_timestamp_sig_next <= si_source_timestamp_sig;
@ -4076,7 +4065,7 @@ begin
status_sig_next <= status_sig and (not DATA_AVAILABLE_STATUS);
-- Wait on User
if (si_ack = '1') then
if (sample_info_ack = '1') then
-- Sample Data Request
if (get_data_dds = '1') then
stage_next <= GET_PAYLOAD;

View File

@ -33,21 +33,9 @@ entity TEMPLATE_srv_client is
ready_in_r : out std_logic;
data_in_r : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_r : in std_logic;
-- Sample Info
si_sample_state_r : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_r : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
si_instance_state_r : in std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_r : in TIME_TYPE;
si_instance_handle_r : in INSTANCE_HANDLE_TYPE;
si_publication_handle_r : in INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_r : in std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_r : in std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_r : in std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
si_generation_rank_r : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_r : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_r : in std_logic;
si_valid_r : in std_logic;
si_ack_r : out std_logic;
sample_info_r : in SAMPLE_INFO_TYPE;
sample_info_valid_r : in std_logic;
sample_info_ack_r : out std_logic;
eoc_r : in std_logic;
status_r : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
-- FROM DDS WRITER
@ -189,7 +177,7 @@ begin
ready_in_r_sig <= '0';
abort_mem <= '0';
ack_user <= '0';
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
start_r <= '0';
opcode_r <= NOP;
@ -269,10 +257,10 @@ begin
end case;
end if;
when WAIT_FOR_DATA =>
if (si_valid_r = '1') then
if (sample_info_valid_r = '1') then
si_ack_r <= '1';
-- Meta Sample
if (si_valid_data_r = '0') then
if (sample_info_r.valid_data = '0') then
-- Ignore and read Next Sample
stage_next <= INITIATE_READ;
else
@ -280,7 +268,7 @@ begin
stage_next <= GET_PAYLOAD_HEADER;
service_info_sig_next.received_timestamp <= TIME_INVALID;
service_info_sig_next.source_timestamp <= si_source_timestamp_r;
service_info_sig_next.source_timestamp <= sample_info_r.source_timestamp;
end if;
end if;
when GET_PAYLOAD_HEADER =>

View File

@ -33,21 +33,9 @@ entity TEMPLATE_srv_server is
ready_in_r : out std_logic;
data_in_r : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_r : in std_logic;
-- Sample Info
si_sample_state_r : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_r : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
si_instance_state_r : in std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_r : in TIME_TYPE;
si_instance_handle_r : in INSTANCE_HANDLE_TYPE;
si_publication_handle_r : in INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_r : in std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_r : in std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_r : in std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
si_generation_rank_r : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_r : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_r : in std_logic;
si_valid_r : in std_logic;
si_ack_r : out std_logic;
sample_info_r : in SAMPLE_INFO_TYPE;
sample_info_valid_r : in std_logic;
sample_info_ack_r : out std_logic;
eoc_r : in std_logic;
status_r : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
-- FROM DDS WRITER
@ -186,7 +174,7 @@ begin
ready_in_r_sig <= '0';
abort_mem <= '0';
ack_user <= '0';
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
start_r <= '0';
opcode_r <= NOP;
@ -264,10 +252,10 @@ begin
end case;
end if;
when WAIT_FOR_DATA =>
if (si_valid_r = '1') then
si_ack_r <= '1';
if (sample_info_valid_r = '1') then
sample_info_ack_r <= '1';
-- Meta Sample
if (si_valid_data_r = '0') then
if (sample_info_r.valid_data = '0') then
-- Ignore and read Next Sample
stage_next <= INITIATE_READ;
else
@ -275,7 +263,7 @@ begin
stage_next <= GET_PAYLOAD_HEADER;
service_info_sig_next.received_timestamp <= TIME_INVALID;
service_info_sig_next.source_timestamp <= si_source_timestamp_r;
service_info_sig_next.source_timestamp <= sample_info_r.source_timestamp;
end if;
end if;
when GET_PAYLOAD_HEADER =>

View File

@ -30,21 +30,9 @@ entity TEMPLATE_sub is
ready_in_dds : out std_logic;
data_in_dds : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_dds : in std_logic;
-- Sample Info
si_sample_state_dds : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_dds : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
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 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);
si_generation_rank_dds : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_dds : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_dds : in std_logic;
si_valid_dds : in std_logic;
si_ack_dds : out std_logic;
sample_info_dds : in SAMPLE_INFO_TYPE;
sample_info_valid_dds : in std_logic;
sample_info_ack_dds : out std_logic;
eoc_dds : in std_logic;
-- Communication Status
status_dds : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
@ -147,7 +135,7 @@ begin
message_info_sig_next <= message_info_sig;
abort_mem <= '0';
ready_in_dds_sig <= '0';
si_ack_dds <= '0';
sample_info_ack_dds <= '0';
get_data_dds <= '0';
start_dds <= '0';
opcode_dds <= NOP;
@ -218,10 +206,10 @@ begin
end case;
end if;
when WAIT_FOR_DATA =>
if (si_valid_dds = '1') then
si_ack_dds <= '1';
if (sample_info_valid_dds = '1') then
sample_info_ack_dds <= '1';
-- Meta Sample
if (si_valid_data_dds = '0') then
if (sample_info_dds.valid_data = '0') then
-- Ignore and read Next Sample
stage_next <= INITIATE_READ;
else
@ -230,7 +218,7 @@ begin
message_info_sig_next.publisher_gid <= to_gid(GUID_UNKNOWN);
message_info_sig_next.received_timestamp <= TIME_INVALID;
message_info_sig_next.source_timestamp <= si_source_timestamp_dds;
message_info_sig_next.source_timestamp <= sample_info_dds.source_timestamp;
end if;
end if;
when GET_PAYLOAD_HEADER =>

View File

@ -23,6 +23,21 @@ end entity;
architecture testbench of L1_AddTwoInts_ros_srv_test1 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => ANY_SAMPLE_STATE,
view_state => ANY_VIEW_STATE,
instance_state => ANY_INSTANCE_STATE,
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal valid_rq, valid_rr, ready_rq, ready_rr, last_word_rq, last_word_rr : std_logic := '0';
signal data_rq, data_rr : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
@ -33,7 +48,8 @@ architecture testbench of L1_AddTwoInts_ros_srv_test1 is
signal service_info_c, service_info_s : SERVICE_INFO_TYPE := EMPTY_SERVICE_INFO;
signal sequence_id_c : std_logic_vector(ROS_SEQUENCE_ID_WIDTH-1 downto 0) := (others => '0');
signal request_id_s : REQUEST_ID_TYPE := EMPTY_REQUEST_ID;
signal start_sr, start_cr, si_valid_data_cr, si_valid_data_sr : std_logic := '0';
signal sample_info_cr, sample_info_sr : SAMPLE_INFO_TYPE := DEFAULT_SAMPLE_INFO;
signal start_sr, start_cr : std_logic := '0';
signal return_code_cr, return_code_cw, return_code_sr, return_code_sw : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := (others => '0');
signal ready_sw, ready_cw, last_word_out_cw, last_word_out_sw, selector : std_logic := '0';
begin
@ -57,20 +73,9 @@ begin
ready_in_r => ready_rr,--
data_in_r => data_rr,--
last_word_in_r => last_word_rr,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_cr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_cr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -124,20 +129,9 @@ begin
ready_in_r => ready_rq,--
data_in_r => data_rq,--
last_word_in_r => last_word_rq,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_sr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_sr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -217,8 +211,8 @@ begin
return_code_cw <= RETCODE_OK;
return_code_sr <= RETCODE_OK;
return_code_sw <= RETCODE_OK;
si_valid_data_cr <= '0';
si_valid_data_sr <= '0';
sample_info_cr.valid_data <= '0';
sample_info_sr.valid_data <= '0';
start_c <= '0';
start_s <= '0';
reset <= '1';
@ -353,7 +347,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_sr);
si_valid_data_sr <= '1';
sample_info_sr.valid_data <= '1';
Log("Wait for Request on Server", INFO);
wait_on_sig(done_s);
@ -390,7 +384,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_cr);
si_valid_data_cr <= '1';
sample_info_cr.valid_data <= '1';
Log("Wait for Response on Client", INFO);
wait_on_sig(done_c);

View File

@ -23,6 +23,21 @@ end entity;
architecture testbench of L1_AddTwoInts_ros_srv_test2 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => ANY_SAMPLE_STATE,
view_state => ANY_VIEW_STATE,
instance_state => ANY_INSTANCE_STATE,
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal valid_rq, valid_rr, ready_rq, ready_rr, last_word_rq, last_word_rr : std_logic := '0';
signal data_rq, data_rr : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
@ -33,7 +48,8 @@ architecture testbench of L1_AddTwoInts_ros_srv_test2 is
signal service_info_c, service_info_s : SERVICE_INFO_TYPE := EMPTY_SERVICE_INFO;
signal sequence_id_c : std_logic_vector(ROS_SEQUENCE_ID_WIDTH-1 downto 0) := (others => '0');
signal request_id_s : REQUEST_ID_TYPE := EMPTY_REQUEST_ID;
signal start_sr, start_cr, si_valid_data_cr, si_valid_data_sr : std_logic := '0';
signal sample_info_cr, sample_info_sr : SAMPLE_INFO_TYPE := DEFAULT_SAMPLE_INFO;
signal start_sr, start_cr : std_logic := '0';
signal return_code_cr, return_code_cw, return_code_sr, return_code_sw : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := (others => '0');
signal ready_sw, ready_cw, last_word_out_cw, last_word_out_sw, selector : std_logic := '0';
begin
@ -60,20 +76,9 @@ begin
ready_in_r => ready_rr,--
data_in_r => data_rr,--
last_word_in_r => last_word_rr,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_cr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_cr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -130,20 +135,9 @@ begin
ready_in_r => ready_rq,--
data_in_r => data_rq,--
last_word_in_r => last_word_rq,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_sr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_sr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -223,8 +217,8 @@ begin
return_code_cw <= RETCODE_OK;
return_code_sr <= RETCODE_OK;
return_code_sw <= RETCODE_OK;
si_valid_data_cr <= '0';
si_valid_data_sr <= '0';
sample_info_cr.valid_data <= '0';
sample_info_sr.valid_data <= '0';
start_c <= '0';
start_s <= '0';
reset <= '1';
@ -359,7 +353,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_sr);
si_valid_data_sr <= '1';
sample_info_sr.valid_data <= '1';
Log("Wait for Request on Server", INFO);
wait_on_sig(done_s);
@ -396,7 +390,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_cr);
si_valid_data_cr <= '1';
sample_info_cr.valid_data <= '1';
Log("Wait for Response on Client", INFO);
wait_on_sig(done_c);

View File

@ -24,6 +24,21 @@ end entity;
architecture testbench of L1_CancelGoal_ros_srv_test1 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => ANY_SAMPLE_STATE,
view_state => ANY_VIEW_STATE,
instance_state => ANY_INSTANCE_STATE,
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal valid_rq, valid_rr, ready_rq, ready_rr, last_word_rq, last_word_rr : std_logic := '0';
signal data_rq, data_rr : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
@ -33,7 +48,8 @@ architecture testbench of L1_CancelGoal_ros_srv_test1 is
signal service_info_c, service_info_s : SERVICE_INFO_TYPE := EMPTY_SERVICE_INFO;
signal sequence_id_c : std_logic_vector(ROS_SEQUENCE_ID_WIDTH-1 downto 0) := (others => '0');
signal request_id_s : REQUEST_ID_TYPE := EMPTY_REQUEST_ID;
signal start_sr, start_cr, si_valid_data_cr, si_valid_data_sr : std_logic := '0';
signal sample_info_cr, sample_info_sr : SAMPLE_INFO_TYPE := DEFAULT_SAMPLE_INFO;
signal start_sr, start_cr : std_logic := '0';
signal return_code_cr, return_code_cw, return_code_sr, return_code_sw : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := (others => '0');
signal ready_sw, ready_cw, last_word_out_cw, last_word_out_sw, selector : std_logic := '0';
--
@ -66,20 +82,9 @@ begin
ready_in_r => ready_rr,--
data_in_r => data_rr,--
last_word_in_r => last_word_rr,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_cr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_cr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -141,20 +146,9 @@ begin
ready_in_r => ready_rq,--
data_in_r => data_rq,--
last_word_in_r => last_word_rq,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_sr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_sr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -248,8 +242,8 @@ begin
return_code_cw <= RETCODE_OK;
return_code_sr <= RETCODE_OK;
return_code_sw <= RETCODE_OK;
si_valid_data_cr <= '0';
si_valid_data_sr <= '0';
sample_info_cr.valid_data <= '0';
sample_info_sr.valid_data <= '0';
start_c <= '0';
start_s <= '0';
reset <= '1';
@ -384,7 +378,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_sr);
si_valid_data_sr <= '1';
sample_info_sr.valid_data <= '1';
Log("Wait for Request on Server", INFO);
wait_on_sig(done_s);
@ -429,7 +423,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_cr);
si_valid_data_cr <= '1';
sample_info_cr.valid_data <= '1';
Log("Wait for Response on Client", INFO);
wait_on_sig(done_c);

View File

@ -24,6 +24,21 @@ end entity;
architecture testbench of L1_CancelGoal_ros_srv_test2 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => ANY_SAMPLE_STATE,
view_state => ANY_VIEW_STATE,
instance_state => ANY_INSTANCE_STATE,
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal valid_rq, valid_rr, ready_rq, ready_rr, last_word_rq, last_word_rr : std_logic := '0';
signal data_rq, data_rr : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
@ -33,7 +48,8 @@ architecture testbench of L1_CancelGoal_ros_srv_test2 is
signal service_info_c, service_info_s : SERVICE_INFO_TYPE := EMPTY_SERVICE_INFO;
signal sequence_id_c : std_logic_vector(ROS_SEQUENCE_ID_WIDTH-1 downto 0) := (others => '0');
signal request_id_s : REQUEST_ID_TYPE := EMPTY_REQUEST_ID;
signal start_sr, start_cr, si_valid_data_cr, si_valid_data_sr : std_logic := '0';
signal sample_info_cr, sample_info_sr : SAMPLE_INFO_TYPE := DEFAULT_SAMPLE_INFO;
signal start_sr, start_cr : std_logic := '0';
signal return_code_cr, return_code_cw, return_code_sr, return_code_sw : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := (others => '0');
signal ready_sw, ready_cw, last_word_out_cw, last_word_out_sw, selector : std_logic := '0';
--
@ -69,20 +85,9 @@ begin
ready_in_r => ready_rr,--
data_in_r => data_rr,--
last_word_in_r => last_word_rr,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_cr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_cr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -147,20 +152,9 @@ begin
ready_in_r => ready_rq,--
data_in_r => data_rq,--
last_word_in_r => last_word_rq,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_sr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_sr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -254,8 +248,8 @@ begin
return_code_cw <= RETCODE_OK;
return_code_sr <= RETCODE_OK;
return_code_sw <= RETCODE_OK;
si_valid_data_cr <= '0';
si_valid_data_sr <= '0';
sample_info_cr.valid_data <= '0';
sample_info_sr.valid_data <= '0';
start_c <= '0';
start_s <= '0';
reset <= '1';
@ -390,7 +384,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_sr);
si_valid_data_sr <= '1';
sample_info_sr.valid_data <= '1';
Log("Wait for Request on Server", INFO);
wait_on_sig(done_s);
@ -435,7 +429,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_cr);
si_valid_data_cr <= '1';
sample_info_cr.valid_data <= '1';
Log("Wait for Response on Client", INFO);
wait_on_sig(done_c);

View File

@ -24,13 +24,29 @@ end entity;
architecture testbench of L1_Fibonacci_ros_action_feedback_test1 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => ANY_SAMPLE_STATE,
view_state => ANY_VIEW_STATE,
instance_state => ANY_INSTANCE_STATE,
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal valid, ready, last_word, last_word_out_w : std_logic := '0';
signal data : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
signal start_sub, start_pub, ack_sub, ack_pub, taken_sub, taken_pub, done_sub, done_pub : std_logic := '0';
signal opcode_sub, opcode_pub : ROS_TOPIC_OPCODE_TYPE := NOP;
signal return_code_sub, return_code_pub : std_logic_vector(ROS_RETCODE_WIDTH-1 downto 0) := (others => '0');
signal start_r, si_valid_data_r : std_logic := '0';
signal sample_info_r : SAMPLE_INFO_TYPE := DEFAULT_SAMPLE_INFO;
signal start_r : std_logic := '0';
signal return_code_r, return_code_w : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := (others => '0');
signal ready_w, selector : std_logic := '0';
signal message_info_sub : MESSAGE_INFO_TYPE := EMPTY_MESSAGE_INFO;
@ -60,20 +76,9 @@ begin
ready_in_dds => ready,--
data_in_dds => data,--
last_word_in_dds => last_word,--
si_sample_state_dds => ANY_SAMPLE_STATE,
si_view_state_dds => ANY_VIEW_STATE,
si_instance_state_dds => ANY_INSTANCE_STATE,
si_source_timestamp_dds => TIME_INVALID,
si_instance_handle_dds => HANDLE_NIL,
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'),
si_generation_rank_dds => (others => '0'),
si_absolute_generation_rank_dds => (others => '0'),
si_valid_data_dds => si_valid_data_r,--
si_valid_dds => '1',--
si_ack_dds => open,--
sample_info_dds => sample_info_r,
sample_info_valid_dds => '1',--
sample_info_ack_dds => open,--
eoc_dds => '1',--
status_dds => (others => '0'),
start_user => start_sub,
@ -168,12 +173,12 @@ begin
SEQ := GetAlertLogID("SEQ", ALERTLOG_BASE_ID);
Log("Initial Reset", INFO);
selector <= '1';
return_code_r <= RETCODE_OK;
return_code_w <= RETCODE_OK;
si_valid_data_r <= '0';
start_sub <= '0';
start_pub <= '0';
selector <= '1';
return_code_r <= RETCODE_OK;
return_code_w <= RETCODE_OK;
sample_info_r.valid_data <= '0';
start_sub <= '0';
start_pub <= '0';
reset <= '1';
wait until rising_edge(clk);
wait until rising_edge(clk);
@ -273,7 +278,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_r);
si_valid_data_r <= '1';
sample_info_r.valid_data <= '1';
Log("Wait for Data", INFO);
wait_on_sig(done_sub);

View File

@ -24,13 +24,29 @@ end entity;
architecture testbench of L1_Fibonacci_ros_action_feedback_test2 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => ANY_SAMPLE_STATE,
view_state => ANY_VIEW_STATE,
instance_state => ANY_INSTANCE_STATE,
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal valid, ready, last_word, last_word_out_w : std_logic := '0';
signal data : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
signal start_sub, start_pub, ack_sub, ack_pub, taken_sub, taken_pub, done_sub, done_pub : std_logic := '0';
signal opcode_sub, opcode_pub : ROS_TOPIC_OPCODE_TYPE := NOP;
signal return_code_sub, return_code_pub : std_logic_vector(ROS_RETCODE_WIDTH-1 downto 0) := (others => '0');
signal start_r, si_valid_data_r : std_logic := '0';
signal sample_info_r : SAMPLE_INFO_TYPE := DEFAULT_SAMPLE_INFO;
signal start_r : std_logic := '0';
signal return_code_r, return_code_w : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := (others => '0');
signal ready_w, selector : std_logic := '0';
signal message_info_sub : MESSAGE_INFO_TYPE := EMPTY_MESSAGE_INFO;
@ -60,20 +76,9 @@ begin
ready_in_dds => ready,--
data_in_dds => data,--
last_word_in_dds => last_word,--
si_sample_state_dds => ANY_SAMPLE_STATE,
si_view_state_dds => ANY_VIEW_STATE,
si_instance_state_dds => ANY_INSTANCE_STATE,
si_source_timestamp_dds => TIME_INVALID,
si_instance_handle_dds => HANDLE_NIL,
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'),
si_generation_rank_dds => (others => '0'),
si_absolute_generation_rank_dds => (others => '0'),
si_valid_data_dds => si_valid_data_r,--
si_valid_dds => '1',--
si_ack_dds => open,--
sample_info_dds => sample_info_r,
sample_info_valid_dds => '1',--
sample_info_ack_dds => open,--
eoc_dds => '1',--
status_dds => (others => '0'),
start_user => start_sub,
@ -171,12 +176,12 @@ begin
SEQ := GetAlertLogID("SEQ", ALERTLOG_BASE_ID);
Log("Initial Reset", INFO);
selector <= '1';
return_code_r <= RETCODE_OK;
return_code_w <= RETCODE_OK;
si_valid_data_r <= '0';
start_sub <= '0';
start_pub <= '0';
selector <= '1';
return_code_r <= RETCODE_OK;
return_code_w <= RETCODE_OK;
sample_info_r.valid_data <= '0';
start_sub <= '0';
start_pub <= '0';
reset <= '1';
wait until rising_edge(clk);
wait until rising_edge(clk);
@ -276,7 +281,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_r);
si_valid_data_r <= '1';
sample_info_r.valid_data <= '1';
Log("Wait for Data", INFO);
wait_on_sig(done_sub);

View File

@ -23,6 +23,21 @@ end entity;
architecture testbench of L1_Fibonacci_ros_action_goal_srv_test1 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => ANY_SAMPLE_STATE,
view_state => ANY_VIEW_STATE,
instance_state => ANY_INSTANCE_STATE,
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal valid_rq, valid_rr, ready_rq, ready_rr, last_word_rq, last_word_rr : std_logic := '0';
signal data_rq, data_rr : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
@ -32,7 +47,8 @@ architecture testbench of L1_Fibonacci_ros_action_goal_srv_test1 is
signal service_info_c, service_info_s : SERVICE_INFO_TYPE := EMPTY_SERVICE_INFO;
signal sequence_id_c : std_logic_vector(ROS_SEQUENCE_ID_WIDTH-1 downto 0) := (others => '0');
signal request_id_s : REQUEST_ID_TYPE := EMPTY_REQUEST_ID;
signal start_sr, start_cr, si_valid_data_cr, si_valid_data_sr : std_logic := '0';
signal sample_info_cr, sample_info_sr : SAMPLE_INFO_TYPE := DEFAULT_SAMPLE_INFO;
signal start_sr, start_cr : std_logic := '0';
signal return_code_cr, return_code_cw, return_code_sr, return_code_sw : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := (others => '0');
signal ready_sw, ready_cw, last_word_out_cw, last_word_out_sw, selector : std_logic := '0';
--
@ -61,20 +77,9 @@ begin
ready_in_r => ready_rr,--
data_in_r => data_rr,--
last_word_in_r => last_word_rr,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_cr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_cr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -129,20 +134,9 @@ begin
ready_in_r => ready_rq,--
data_in_r => data_rq,--
last_word_in_r => last_word_rq,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_sr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_sr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -224,8 +218,8 @@ begin
return_code_cw <= RETCODE_OK;
return_code_sr <= RETCODE_OK;
return_code_sw <= RETCODE_OK;
si_valid_data_cr <= '0';
si_valid_data_sr <= '0';
sample_info_cr.valid_data <= '0';
sample_info_sr.valid_data <= '0';
start_c <= '0';
start_s <= '0';
reset <= '1';
@ -360,7 +354,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_sr);
si_valid_data_sr <= '1';
sample_info_sr.valid_data <= '1';
Log("Wait for Request on Server", INFO);
wait_on_sig(done_s);
@ -398,7 +392,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_cr);
si_valid_data_cr <= '1';
sample_info_cr.valid_data <= '1';
Log("Wait for Response on Client", INFO);
wait_on_sig(done_c);

View File

@ -23,6 +23,21 @@ end entity;
architecture testbench of L1_Fibonacci_ros_action_goal_srv_test2 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => ANY_SAMPLE_STATE,
view_state => ANY_VIEW_STATE,
instance_state => ANY_INSTANCE_STATE,
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal valid_rq, valid_rr, ready_rq, ready_rr, last_word_rq, last_word_rr : std_logic := '0';
signal data_rq, data_rr : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
@ -32,7 +47,8 @@ architecture testbench of L1_Fibonacci_ros_action_goal_srv_test2 is
signal service_info_c, service_info_s : SERVICE_INFO_TYPE := EMPTY_SERVICE_INFO;
signal sequence_id_c : std_logic_vector(ROS_SEQUENCE_ID_WIDTH-1 downto 0) := (others => '0');
signal request_id_s : REQUEST_ID_TYPE := EMPTY_REQUEST_ID;
signal start_sr, start_cr, si_valid_data_cr, si_valid_data_sr : std_logic := '0';
signal sample_info_cr, sample_info_sr : SAMPLE_INFO_TYPE := DEFAULT_SAMPLE_INFO;
signal start_sr, start_cr : std_logic := '0';
signal return_code_cr, return_code_cw, return_code_sr, return_code_sw : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := (others => '0');
signal ready_sw, ready_cw, last_word_out_cw, last_word_out_sw, selector : std_logic := '0';
--
@ -64,20 +80,9 @@ begin
ready_in_r => ready_rr,--
data_in_r => data_rr,--
last_word_in_r => last_word_rr,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_cr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_cr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -135,20 +140,9 @@ begin
ready_in_r => ready_rq,--
data_in_r => data_rq,--
last_word_in_r => last_word_rq,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_sr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_sr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -230,8 +224,8 @@ begin
return_code_cw <= RETCODE_OK;
return_code_sr <= RETCODE_OK;
return_code_sw <= RETCODE_OK;
si_valid_data_cr <= '0';
si_valid_data_sr <= '0';
sample_info_cr.valid_data <= '0';
sample_info_sr.valid_data <= '0';
start_c <= '0';
start_s <= '0';
reset <= '1';
@ -366,7 +360,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_sr);
si_valid_data_sr <= '1';
sample_info_sr.valid_data <= '1';
Log("Wait for Request on Server", INFO);
wait_on_sig(done_s);
@ -404,7 +398,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_cr);
si_valid_data_cr <= '1';
sample_info_cr.valid_data <= '1';
Log("Wait for Response on Client", INFO);
wait_on_sig(done_c);

View File

@ -24,6 +24,21 @@ end entity;
architecture testbench of L1_Fibonacci_ros_action_result_srv_test1 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => ANY_SAMPLE_STATE,
view_state => ANY_VIEW_STATE,
instance_state => ANY_INSTANCE_STATE,
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal valid_rq, valid_rr, ready_rq, ready_rr, last_word_rq, last_word_rr : std_logic := '0';
signal data_rq, data_rr : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
@ -33,7 +48,8 @@ architecture testbench of L1_Fibonacci_ros_action_result_srv_test1 is
signal service_info_c, service_info_s : SERVICE_INFO_TYPE := EMPTY_SERVICE_INFO;
signal sequence_id_c : std_logic_vector(ROS_SEQUENCE_ID_WIDTH-1 downto 0) := (others => '0');
signal request_id_s : REQUEST_ID_TYPE := EMPTY_REQUEST_ID;
signal start_sr, start_cr, si_valid_data_cr, si_valid_data_sr : std_logic := '0';
signal sample_info_cr, sample_info_sr : SAMPLE_INFO_TYPE := DEFAULT_SAMPLE_INFO;
signal start_sr, start_cr : std_logic := '0';
signal return_code_cr, return_code_cw, return_code_sr, return_code_sw : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := (others => '0');
signal ready_sw, ready_cw, last_word_out_cw, last_word_out_sw, selector : std_logic := '0';
--
@ -64,20 +80,9 @@ begin
ready_in_r => ready_rr,--
data_in_r => data_rr,--
last_word_in_r => last_word_rr,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_cr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_cr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -137,20 +142,9 @@ begin
ready_in_r => ready_rq,--
data_in_r => data_rq,--
last_word_in_r => last_word_rq,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_sr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_sr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -238,8 +232,8 @@ begin
return_code_cw <= RETCODE_OK;
return_code_sr <= RETCODE_OK;
return_code_sw <= RETCODE_OK;
si_valid_data_cr <= '0';
si_valid_data_sr <= '0';
sample_info_cr.valid_data <= '0';
sample_info_sr.valid_data <= '0';
start_c <= '0';
start_s <= '0';
reset <= '1';
@ -373,7 +367,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_sr);
si_valid_data_sr <= '1';
sample_info_sr.valid_data <= '1';
Log("Wait for Request on Server", INFO);
wait_on_sig(done_s);
@ -416,7 +410,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_cr);
si_valid_data_cr <= '1';
sample_info_cr.valid_data <= '1';
Log("Wait for Response on Client", INFO);
wait_on_sig(done_c);

View File

@ -24,6 +24,21 @@ end entity;
architecture testbench of L1_Fibonacci_ros_action_result_srv_test2 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => ANY_SAMPLE_STATE,
view_state => ANY_VIEW_STATE,
instance_state => ANY_INSTANCE_STATE,
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal valid_rq, valid_rr, ready_rq, ready_rr, last_word_rq, last_word_rr : std_logic := '0';
signal data_rq, data_rr : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
@ -33,7 +48,8 @@ architecture testbench of L1_Fibonacci_ros_action_result_srv_test2 is
signal service_info_c, service_info_s : SERVICE_INFO_TYPE := EMPTY_SERVICE_INFO;
signal sequence_id_c : std_logic_vector(ROS_SEQUENCE_ID_WIDTH-1 downto 0) := (others => '0');
signal request_id_s : REQUEST_ID_TYPE := EMPTY_REQUEST_ID;
signal start_sr, start_cr, si_valid_data_cr, si_valid_data_sr : std_logic := '0';
signal sample_info_cr, sample_info_sr : SAMPLE_INFO_TYPE := DEFAULT_SAMPLE_INFO;
signal start_sr, start_cr : std_logic := '0';
signal return_code_cr, return_code_cw, return_code_sr, return_code_sw : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := (others => '0');
signal ready_sw, ready_cw, last_word_out_cw, last_word_out_sw, selector : std_logic := '0';
--
@ -64,20 +80,9 @@ begin
ready_in_r => ready_rr,--
data_in_r => data_rr,--
last_word_in_r => last_word_rr,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_cr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_cr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -137,20 +142,9 @@ begin
ready_in_r => ready_rq,--
data_in_r => data_rq,--
last_word_in_r => last_word_rq,--
si_sample_state_r => ANY_SAMPLE_STATE,
si_view_state_r => ANY_VIEW_STATE,
si_instance_state_r => ANY_INSTANCE_STATE,
si_source_timestamp_r => TIME_INVALID,
si_instance_handle_r => HANDLE_NIL,
si_publication_handle_r => HANDLE_NIL,
si_disposed_generation_count_r => (others => '0'),
si_no_writers_generation_count_r => (others => '0'),
si_sample_rank_r => (others => '0'),
si_generation_rank_r => (others => '0'),
si_absolute_generation_rank_r => (others => '0'),
si_valid_data_r => si_valid_data_sr,--
si_valid_r => '1',--
si_ack_r => open,--
sample_info_r => sample_info_sr,
sample_info_valid_r => '1',--
sample_info_ack_r => open,--
eoc_r => '1',--
status_r => (others => '0'),
start_w => open,--
@ -238,8 +232,8 @@ begin
return_code_cw <= RETCODE_OK;
return_code_sr <= RETCODE_OK;
return_code_sw <= RETCODE_OK;
si_valid_data_cr <= '0';
si_valid_data_sr <= '0';
sample_info_cr.valid_data <= '0';
sample_info_sr.valid_data <= '0';
start_c <= '0';
start_s <= '0';
reset <= '1';
@ -373,7 +367,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_sr);
si_valid_data_sr <= '1';
sample_info_sr.valid_data <= '1';
Log("Wait for Request on Server", INFO);
wait_on_sig(done_s);
@ -416,7 +410,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_cr);
si_valid_data_cr <= '1';
sample_info_cr.valid_data <= '1';
Log("Wait for Response on Client", INFO);
wait_on_sig(done_c);

View File

@ -24,13 +24,29 @@ end entity;
architecture testbench of L1_GoalStatusArray_ros_test1 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => ANY_SAMPLE_STATE,
view_state => ANY_VIEW_STATE,
instance_state => ANY_INSTANCE_STATE,
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal valid, ready, last_word, last_word_out_w : std_logic := '0';
signal data : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
signal start_sub, start_pub, ack_sub, ack_pub, taken_sub, taken_pub, done_sub, done_pub : std_logic := '0';
signal opcode_sub, opcode_pub : ROS_TOPIC_OPCODE_TYPE := NOP;
signal return_code_sub, return_code_pub : std_logic_vector(ROS_RETCODE_WIDTH-1 downto 0) := (others => '0');
signal start_r, si_valid_data_r : std_logic := '0';
signal sample_info_r : SAMPLE_INFO_TYPE := DEFAULT_SAMPLE_INFO;
signal start_r : std_logic := '0';
signal return_code_r, return_code_w : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := (others => '0');
signal ready_w, selector : std_logic := '0';
signal message_info_sub : MESSAGE_INFO_TYPE := EMPTY_MESSAGE_INFO;
@ -61,20 +77,9 @@ begin
ready_in_dds => ready,--
data_in_dds => data,--
last_word_in_dds => last_word,--
si_sample_state_dds => ANY_SAMPLE_STATE,
si_view_state_dds => ANY_VIEW_STATE,
si_instance_state_dds => ANY_INSTANCE_STATE,
si_source_timestamp_dds => TIME_INVALID,
si_instance_handle_dds => HANDLE_NIL,
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'),
si_generation_rank_dds => (others => '0'),
si_absolute_generation_rank_dds => (others => '0'),
si_valid_data_dds => si_valid_data_r,--
si_valid_dds => '1',--
si_ack_dds => open,--
sample_info_dds => sample_info_r,
sample_info_valid_dds => '1',--
sample_info_ack_dds => open,--
eoc_dds => '1',--
status_dds => (others => '0'),
start_user => start_sub,
@ -174,12 +179,12 @@ begin
STATUS := GetAlertLogID("STATUS", ALERTLOG_BASE_ID);
Log("Initial Reset", INFO);
selector <= '1';
return_code_r <= RETCODE_OK;
return_code_w <= RETCODE_OK;
si_valid_data_r <= '0';
start_sub <= '0';
start_pub <= '0';
selector <= '1';
return_code_r <= RETCODE_OK;
return_code_w <= RETCODE_OK;
sample_info_r.valid_data <= '0';
start_sub <= '0';
start_pub <= '0';
reset <= '1';
wait until rising_edge(clk);
wait until rising_edge(clk);
@ -280,7 +285,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_r);
si_valid_data_r <= '1';
sample_info_r.valid_data <= '1';
Log("Wait for Data", INFO);
wait_on_sig(done_sub);

View File

@ -24,13 +24,29 @@ end entity;
architecture testbench of L1_GoalStatusArray_ros_test2 is
constant DEFAULT_SAMPLE_INFO : SAMPLE_INFO_TYPE := (
sample_state => ANY_SAMPLE_STATE,
view_state => ANY_VIEW_STATE,
instance_state => ANY_INSTANCE_STATE,
source_timestamp => TIME_ZERO,
instance_handle => HANDLE_NIL,
publication_handle => HANDLE_NIL,
disposed_generation_count => (others => '0'),
no_writers_generation_count => (others => '0'),
sample_rank => (others => '0'),
generation_rank => (others => '0'),
absolute_generation_rank => (others => '0'),
valid_data => '0'
);
signal clk, reset : std_logic := '0';
signal valid, ready, last_word, last_word_out_w : std_logic := '0';
signal data : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0');
signal start_sub, start_pub, ack_sub, ack_pub, taken_sub, taken_pub, done_sub, done_pub : std_logic := '0';
signal opcode_sub, opcode_pub : ROS_TOPIC_OPCODE_TYPE := NOP;
signal return_code_sub, return_code_pub : std_logic_vector(ROS_RETCODE_WIDTH-1 downto 0) := (others => '0');
signal start_r, si_valid_data_r : std_logic := '0';
signal sample_info_r : SAMPLE_INFO_TYPE := DEFAULT_SAMPLE_INFO;
signal start_r : std_logic := '0';
signal return_code_r, return_code_w : std_logic_vector(RETURN_CODE_WIDTH-1 downto 0) := (others => '0');
signal ready_w, selector : std_logic := '0';
signal message_info_sub : MESSAGE_INFO_TYPE := EMPTY_MESSAGE_INFO;
@ -61,20 +77,9 @@ begin
ready_in_dds => ready,--
data_in_dds => data,--
last_word_in_dds => last_word,--
si_sample_state_dds => ANY_SAMPLE_STATE,
si_view_state_dds => ANY_VIEW_STATE,
si_instance_state_dds => ANY_INSTANCE_STATE,
si_source_timestamp_dds => TIME_INVALID,
si_instance_handle_dds => HANDLE_NIL,
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'),
si_generation_rank_dds => (others => '0'),
si_absolute_generation_rank_dds => (others => '0'),
si_valid_data_dds => si_valid_data_r,--
si_valid_dds => '1',--
si_ack_dds => open,--
sample_info_dds => sample_info_r,
sample_info_valid_dds => '1',--
sample_info_ack_dds => open,--
eoc_dds => '1',--
status_dds => (others => '0'),
start_user => start_sub,
@ -177,12 +182,12 @@ begin
STATUS := GetAlertLogID("STATUS", ALERTLOG_BASE_ID);
Log("Initial Reset", INFO);
selector <= '1';
return_code_r <= RETCODE_OK;
return_code_w <= RETCODE_OK;
si_valid_data_r <= '0';
start_sub <= '0';
start_pub <= '0';
selector <= '1';
return_code_r <= RETCODE_OK;
return_code_w <= RETCODE_OK;
sample_info_r.valid_data <= '0';
start_sub <= '0';
start_pub <= '0';
reset <= '1';
wait until rising_edge(clk);
wait until rising_edge(clk);
@ -283,7 +288,7 @@ begin
wait until rising_edge(clk);
wait until rising_edge(clk);
wait_on_sig(start_r);
si_valid_data_r <= '1';
sample_info_r.valid_data <= '1';
Log("Wait for Data", INFO);
wait_on_sig(done_sub);

View File

@ -41,7 +41,6 @@ architecture arch of L2_Testbench_ROS_Lib2 is
type INSTANCE_HANDLE_RARRAY_TYPE is array (0 to NUM_READERS-1) of INSTANCE_HANDLE_TYPE;
type INSTANCE_HANDLE_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of INSTANCE_HANDLE_TYPE;
type CACHE_CHANGE_KIND_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of CACHE_CHANGE_KIND_TYPE;
type TIME_RARRAY_TYPE is array (0 to NUM_READERS-1) of TIME_TYPE;
type TIME_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of TIME_TYPE;
type DDS_READER_OPCODE_RARRAY_TYPE is array (0 to NUM_READERS-1) of DDS_READER_OPCODE_TYPE;
type DDS_WRITER_OPCODE_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of DDS_WRITER_OPCODE_TYPE;
@ -51,14 +50,10 @@ architecture arch of L2_Testbench_ROS_Lib2 is
type MAX_SAMPLES_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0);
type RETURN_CODE_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
type RETURN_CODE_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
type DISPOSED_GENERATION_COUNT_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
type NO_WRITERS_GENERATION_COUNT_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
type SAMPLE_RANK_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
type GENERATION_RANK_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
type ABSOLUTE_GENERATION_RANK_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
type STATUS_KIND_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
type STATUS_KIND_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
type DURATION_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of DURATION_TYPE;
type SAMPLE_INFO_RARRAY_TYPE is array (0 to NUM_READERS-1) of SAMPLE_INFO_TYPE;
signal full_fire_rh, write_rh_fire : std_logic_vector(0 to NUM_ENDPOINTS-1);
signal data_rh_fire, data_rh_fidm : std_logic_vector(WORD_WIDTH downto 0);
@ -86,21 +81,16 @@ architecture arch of L2_Testbench_ROS_Lib2 is
signal cc_instance_handle_dw_rw : INSTANCE_HANDLE_WARRAY_TYPE;
signal cc_kind_dw_rw : CACHE_CHANGE_KIND_WARRAY_TYPE;
signal cc_source_timestamp_dw_rw : TIME_WARRAY_TYPE;
signal start_ri_dr, ack_dr_ri, get_data_ri_dr, done_dr_ri, ready_ri_dr, valid_dr_ri, si_valid_data_dr_ri, si_valid_dr_ri, si_ack_ri_dr, eoc_dr_ri : std_logic_vector(0 to NUM_READERS-1);
signal sample_info_dr_ri : SAMPLE_INFO_RARRAY_TYPE;
signal start_ri_dr, ack_dr_ri, get_data_ri_dr, done_dr_ri, ready_ri_dr, valid_dr_ri, sample_info_valid_dr_ri, sample_info_ack_ri_dr, eoc_dr_ri : std_logic_vector(0 to NUM_READERS-1);
signal opcode_ri_dr : DDS_READER_OPCODE_RARRAY_TYPE;
signal instance_state_ri_dr, si_instance_state_dr_ri : INSTANCE_STATE_RARRAY_TYPE;
signal view_state_ri_dr, si_view_state_dr_ri : VIEW_STATE_RARRAY_TYPE;
signal sample_state_ri_dr, si_sample_state_dr_ri : SAMPLE_STATE_RARRAY_TYPE;
signal instance_handle_ri_dr, si_instance_handle_dr_ri, si_publication_handle_dr_ri : INSTANCE_HANDLE_RARRAY_TYPE;
signal instance_state_ri_dr : INSTANCE_STATE_RARRAY_TYPE;
signal view_state_ri_dr : VIEW_STATE_RARRAY_TYPE;
signal sample_state_ri_dr : SAMPLE_STATE_RARRAY_TYPE;
signal instance_handle_ri_dr : INSTANCE_HANDLE_RARRAY_TYPE;
signal max_samples_ri_dr : MAX_SAMPLES_RARRAY_TYPE;
signal return_code_dr_ri : RETURN_CODE_RARRAY_TYPE;
signal data_dr_ri : RARRAY_DATA_TYPE;
signal si_source_timestamp_dr_ri : TIME_RARRAY_TYPE;
signal si_disposed_generation_count_dr_ri : DISPOSED_GENERATION_COUNT_RARRAY_TYPE;
signal si_no_writers_generation_count_dr_ri : NO_WRITERS_GENERATION_COUNT_RARRAY_TYPE;
signal si_sample_rank_dr_ri : SAMPLE_RANK_RARRAY_TYPE;
signal si_generation_rank_dr_ri : GENERATION_RANK_RARRAY_TYPE;
signal si_absolute_generation_rank_dr_ri : ABSOLUTE_GENERATION_RANK_RARRAY_TYPE;
signal status_dr_ri : STATUS_KIND_RARRAY_TYPE;
signal start_wi_dw, ack_dw_wi, done_dw_wi, valid_wi_dw, valid_dw_wi, ready_wi_dw, ready_dw_wi : std_logic_vector(0 to NUM_WRITERS-1);
signal opcode_wi_dw : DDS_WRITER_OPCODE_WARRAY_TYPE;
@ -406,21 +396,9 @@ begin
ready_out_dds => ready_ri_dr(i),
data_out_dds => data_dr_ri(i)(WORD_WIDTH-1 downto 0),
last_word_out_dds => data_dr_ri(i)(WORD_WIDTH),
-- Sample Info
si_sample_state => si_sample_state_dr_ri(i),
si_view_state => si_view_state_dr_ri(i),
si_instance_state => si_instance_state_dr_ri(i),
si_source_timestamp => si_source_timestamp_dr_ri(i),
si_instance_handle => si_instance_handle_dr_ri(i),
si_publication_handle => si_publication_handle_dr_ri(i),
si_disposed_generation_count => si_disposed_generation_count_dr_ri(i),
si_no_writers_generation_count => si_no_writers_generation_count_dr_ri(i),
si_sample_rank => si_sample_rank_dr_ri(i),
si_generation_rank => si_generation_rank_dr_ri(i),
si_absolute_generation_rank => si_absolute_generation_rank_dr_ri(i),
si_valid_data => si_valid_data_dr_ri(i),
si_valid => si_valid_dr_ri(i),
si_ack => si_ack_ri_dr(i),
sample_info => sample_info_dr_ri(i),
sample_info_valid => sample_info_valid_dr_ri(i),
sample_info_ack => sample_info_ack_ri_dr(i),
eoc => eoc_dr_ri(i),
-- Communication Status
status => status_dr_ri(i)
@ -594,20 +572,9 @@ begin
ready_ri_dr(i) <= service_if(i).ready_in_r;
service_if(i).data_in_r <= data_dr_ri(i)(WORD_WIDTH-1 downto 0);
service_if(i).last_word_in_r <= data_dr_ri(i)(WORD_WIDTH);
service_if(i).si_sample_state_r <= si_sample_state_dr_ri(i);
service_if(i).si_view_state_r <= si_view_state_dr_ri(i);
service_if(i).si_instance_state_r <= si_instance_state_dr_ri(i);
service_if(i).si_source_timestamp_r <= si_source_timestamp_dr_ri(i);
service_if(i).si_instance_handle_r <= si_instance_handle_dr_ri(i);
service_if(i).si_publication_handle_r <= si_publication_handle_dr_ri(i);
service_if(i).si_disposed_generation_count_r <= si_disposed_generation_count_dr_ri(i);
service_if(i).si_no_writers_generation_count_r <= si_no_writers_generation_count_dr_ri(i);
service_if(i).si_sample_rank_r <= si_sample_rank_dr_ri(i);
service_if(i).si_generation_rank_r <= si_generation_rank_dr_ri(i);
service_if(i).si_absolute_generation_rank_r <= si_absolute_generation_rank_dr_ri(i);
service_if(i).si_valid_data_r <= si_valid_data_dr_ri(i);
service_if(i).si_valid_r <= si_valid_dr_ri(i);
si_ack_ri_dr(i) <= service_if(i).si_ack_r;
service_if(i).sample_info_r <= sample_info_dr_ri(i);
service_if(i).sample_info_valid_r <= sample_info_valid_dr_ri(i);
sample_info_ack_ri_dr(i) <= service_if(i).sample_info_ack_r;
service_if(i).eoc_r <= eoc_dr_ri(i);
service_if(i).status_r <= status_dr_ri(i);
start_wi_dw(i) <= service_if(i).start_w;
@ -651,20 +618,9 @@ begin
ready_in_r => service_if(0).ready_in_r,
data_in_r => service_if(0).data_in_r,
last_word_in_r => service_if(0).last_word_in_r,
si_sample_state_r => service_if(0).si_sample_state_r,
si_view_state_r => service_if(0).si_view_state_r,
si_instance_state_r => service_if(0).si_instance_state_r,
si_source_timestamp_r => service_if(0).si_source_timestamp_r,
si_instance_handle_r => service_if(0).si_instance_handle_r,
si_publication_handle_r => service_if(0).si_publication_handle_r,
si_disposed_generation_count_r => service_if(0).si_disposed_generation_count_r,
si_no_writers_generation_count_r => service_if(0).si_no_writers_generation_count_r,
si_sample_rank_r => service_if(0).si_sample_rank_r,
si_generation_rank_r => service_if(0).si_generation_rank_r,
si_absolute_generation_rank_r => service_if(0).si_absolute_generation_rank_r,
si_valid_data_r => service_if(0).si_valid_data_r,
si_valid_r => service_if(0).si_valid_r,
si_ack_r => service_if(0).si_ack_r,
sample_info_r => service_if(0).sample_info_r,
sample_info_valid_r => service_if(0).sample_info_valid_r,
sample_info_ack_r => service_if(0).sample_info_ack_r,
eoc_r => service_if(0).eoc_r,
status_r => service_if(0).status_r,
start_w => service_if(0).start_w,

View File

@ -58,7 +58,6 @@ architecture arch of L2_Testbench_ROS_Lib3 is
type INSTANCE_HANDLE_RARRAY_TYPE is array (0 to NUM_READERS-1) of INSTANCE_HANDLE_TYPE;
type INSTANCE_HANDLE_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of INSTANCE_HANDLE_TYPE;
type CACHE_CHANGE_KIND_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of CACHE_CHANGE_KIND_TYPE;
type TIME_RARRAY_TYPE is array (0 to NUM_READERS-1) of TIME_TYPE;
type TIME_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of TIME_TYPE;
type DDS_READER_OPCODE_RARRAY_TYPE is array (0 to NUM_READERS-1) of DDS_READER_OPCODE_TYPE;
type DDS_WRITER_OPCODE_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of DDS_WRITER_OPCODE_TYPE;
@ -68,14 +67,10 @@ architecture arch of L2_Testbench_ROS_Lib3 is
type MAX_SAMPLES_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(MAX_SAMPLES_WIDTH-1 downto 0);
type RETURN_CODE_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
type RETURN_CODE_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of std_logic_vector(RETURN_CODE_WIDTH-1 downto 0);
type DISPOSED_GENERATION_COUNT_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
type NO_WRITERS_GENERATION_COUNT_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
type SAMPLE_RANK_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
type GENERATION_RANK_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
type ABSOLUTE_GENERATION_RANK_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
type STATUS_KIND_RARRAY_TYPE is array (0 to NUM_READERS-1) of std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
type STATUS_KIND_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
type DURATION_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of DURATION_TYPE;
type SAMPLE_INFO_RARRAY_TYPE is array (0 to NUM_READERS-1) of SAMPLE_INFO_TYPE;
signal full_fire_rh, write_rh_fire : std_logic_vector(0 to NUM_ENDPOINTS-1);
signal data_rh_fire, data_rh_fidm : std_logic_vector(WORD_WIDTH downto 0);
@ -103,21 +98,16 @@ architecture arch of L2_Testbench_ROS_Lib3 is
signal cc_instance_handle_dw_rw : INSTANCE_HANDLE_WARRAY_TYPE;
signal cc_kind_dw_rw : CACHE_CHANGE_KIND_WARRAY_TYPE;
signal cc_source_timestamp_dw_rw : TIME_WARRAY_TYPE;
signal start_ri_dr, ack_dr_ri, get_data_ri_dr, done_dr_ri, ready_ri_dr, valid_dr_ri, si_valid_data_dr_ri, si_valid_dr_ri, si_ack_ri_dr, eoc_dr_ri : std_logic_vector(0 to NUM_READERS-1);
signal sample_info_dr_ri : SAMPLE_INFO_RARRAY_TYPE;
signal start_ri_dr, ack_dr_ri, get_data_ri_dr, done_dr_ri, ready_ri_dr, valid_dr_ri, sample_info_valid_dr_ri, sample_info_ack_ri_dr, eoc_dr_ri : std_logic_vector(0 to NUM_READERS-1);
signal opcode_ri_dr : DDS_READER_OPCODE_RARRAY_TYPE;
signal instance_state_ri_dr, si_instance_state_dr_ri : INSTANCE_STATE_RARRAY_TYPE;
signal view_state_ri_dr, si_view_state_dr_ri : VIEW_STATE_RARRAY_TYPE;
signal sample_state_ri_dr, si_sample_state_dr_ri : SAMPLE_STATE_RARRAY_TYPE;
signal instance_handle_ri_dr, si_instance_handle_dr_ri, si_publication_handle_dr_ri : INSTANCE_HANDLE_RARRAY_TYPE;
signal instance_state_ri_dr : INSTANCE_STATE_RARRAY_TYPE;
signal view_state_ri_dr : VIEW_STATE_RARRAY_TYPE;
signal sample_state_ri_dr : SAMPLE_STATE_RARRAY_TYPE;
signal instance_handle_ri_dr : INSTANCE_HANDLE_RARRAY_TYPE;
signal max_samples_ri_dr : MAX_SAMPLES_RARRAY_TYPE;
signal return_code_dr_ri : RETURN_CODE_RARRAY_TYPE;
signal data_dr_ri : RARRAY_DATA_TYPE;
signal si_source_timestamp_dr_ri : TIME_RARRAY_TYPE;
signal si_disposed_generation_count_dr_ri : DISPOSED_GENERATION_COUNT_RARRAY_TYPE;
signal si_no_writers_generation_count_dr_ri : NO_WRITERS_GENERATION_COUNT_RARRAY_TYPE;
signal si_sample_rank_dr_ri : SAMPLE_RANK_RARRAY_TYPE;
signal si_generation_rank_dr_ri : GENERATION_RANK_RARRAY_TYPE;
signal si_absolute_generation_rank_dr_ri : ABSOLUTE_GENERATION_RANK_RARRAY_TYPE;
signal status_dr_ri : STATUS_KIND_RARRAY_TYPE;
signal start_wi_dw, ack_dw_wi, done_dw_wi, valid_wi_dw, valid_dw_wi, ready_wi_dw, ready_dw_wi : std_logic_vector(0 to NUM_WRITERS-1);
signal opcode_wi_dw : DDS_WRITER_OPCODE_WARRAY_TYPE;
@ -417,21 +407,9 @@ begin
ready_out_dds => ready_ri_dr(i),
data_out_dds => data_dr_ri(i)(WORD_WIDTH-1 downto 0),
last_word_out_dds => data_dr_ri(i)(WORD_WIDTH),
-- Sample Info
si_sample_state => si_sample_state_dr_ri(i),
si_view_state => si_view_state_dr_ri(i),
si_instance_state => si_instance_state_dr_ri(i),
si_source_timestamp => si_source_timestamp_dr_ri(i),
si_instance_handle => si_instance_handle_dr_ri(i),
si_publication_handle => si_publication_handle_dr_ri(i),
si_disposed_generation_count => si_disposed_generation_count_dr_ri(i),
si_no_writers_generation_count => si_no_writers_generation_count_dr_ri(i),
si_sample_rank => si_sample_rank_dr_ri(i),
si_generation_rank => si_generation_rank_dr_ri(i),
si_absolute_generation_rank => si_absolute_generation_rank_dr_ri(i),
si_valid_data => si_valid_data_dr_ri(i),
si_valid => si_valid_dr_ri(i),
si_ack => si_ack_ri_dr(i),
sample_info => sample_info_dr_ri(i),
sample_info_valid => sample_info_valid_dr_ri(i),
sample_info_ack => sample_info_ack_ri_dr(i),
eoc => eoc_dr_ri(i),
-- Communication Status
status => status_dr_ri(i)
@ -604,20 +582,9 @@ begin
ready_ri_dr(i) <= service_if(i).ready_in_r;
service_if(i).data_in_r <= data_dr_ri(i)(WORD_WIDTH-1 downto 0);
service_if(i).last_word_in_r <= data_dr_ri(i)(WORD_WIDTH);
service_if(i).si_sample_state_r <= si_sample_state_dr_ri(i);
service_if(i).si_view_state_r <= si_view_state_dr_ri(i);
service_if(i).si_instance_state_r <= si_instance_state_dr_ri(i);
service_if(i).si_source_timestamp_r <= si_source_timestamp_dr_ri(i);
service_if(i).si_instance_handle_r <= si_instance_handle_dr_ri(i);
service_if(i).si_publication_handle_r <= si_publication_handle_dr_ri(i);
service_if(i).si_disposed_generation_count_r <= si_disposed_generation_count_dr_ri(i);
service_if(i).si_no_writers_generation_count_r <= si_no_writers_generation_count_dr_ri(i);
service_if(i).si_sample_rank_r <= si_sample_rank_dr_ri(i);
service_if(i).si_generation_rank_r <= si_generation_rank_dr_ri(i);
service_if(i).si_absolute_generation_rank_r <= si_absolute_generation_rank_dr_ri(i);
service_if(i).si_valid_data_r <= si_valid_data_dr_ri(i);
service_if(i).si_valid_r <= si_valid_dr_ri(i);
si_ack_ri_dr(i) <= service_if(i).si_ack_r;
service_if(i).sample_info_r <= sample_info_dr_ri(i);
service_if(i).sample_info_valid_r <= sample_info_valid_dr_ri(i);
sample_info_ack_ri_dr(i) <= service_if(i).sample_info_ack_r;
service_if(i).eoc_r <= eoc_dr_ri(i);
service_if(i).status_r <= status_dr_ri(i);
start_wi_dw(i) <= service_if(i).start_w;
@ -661,20 +628,9 @@ begin
ready_in_r => service_if(0).ready_in_r,
data_in_r => service_if(0).data_in_r,
last_word_in_r => service_if(0).last_word_in_r,
si_sample_state_r => service_if(0).si_sample_state_r,
si_view_state_r => service_if(0).si_view_state_r,
si_instance_state_r => service_if(0).si_instance_state_r,
si_source_timestamp_r => service_if(0).si_source_timestamp_r,
si_instance_handle_r => service_if(0).si_instance_handle_r,
si_publication_handle_r => service_if(0).si_publication_handle_r,
si_disposed_generation_count_r => service_if(0).si_disposed_generation_count_r,
si_no_writers_generation_count_r => service_if(0).si_no_writers_generation_count_r,
si_sample_rank_r => service_if(0).si_sample_rank_r,
si_generation_rank_r => service_if(0).si_generation_rank_r,
si_absolute_generation_rank_r => service_if(0).si_absolute_generation_rank_r,
si_valid_data_r => service_if(0).si_valid_data_r,
si_valid_r => service_if(0).si_valid_r,
si_ack_r => service_if(0).si_ack_r,
sample_info_r => service_if(0).sample_info_r,
sample_info_valid_r => service_if(0).sample_info_valid_r,
sample_info_ack_r => service_if(0).sample_info_ack_r,
eoc_r => service_if(0).eoc_r,
status_r => service_if(0).status_r,
start_w => service_if(0).start_w,

View File

@ -33,21 +33,9 @@ entity AddTwoInts_ros_srv_client is
ready_in_r : out std_logic;
data_in_r : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_r : in std_logic;
-- Sample Info
si_sample_state_r : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_r : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
si_instance_state_r : in std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_r : in TIME_TYPE;
si_instance_handle_r : in INSTANCE_HANDLE_TYPE;
si_publication_handle_r : in INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_r : in std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_r : in std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_r : in std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
si_generation_rank_r : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_r : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_r : in std_logic;
si_valid_r : in std_logic;
si_ack_r : out std_logic;
sample_info_r : in SAMPLE_INFO_TYPE;
sample_info_valid_r : in std_logic;
sample_info_ack_r : out std_logic;
eoc_r : in std_logic;
status_r : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
-- FROM DDS WRITER
@ -186,7 +174,7 @@ begin
ready_in_r_sig <= '0';
abort_mem <= '0';
ack_user <= '0';
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
start_r <= '0';
opcode_r <= NOP;
@ -266,10 +254,10 @@ begin
end case;
end if;
when WAIT_FOR_DATA =>
if (si_valid_r = '1') then
si_ack_r <= '1';
if (sample_info_valid_r = '1') then
sample_info_ack_r <= '1';
-- Meta Sample
if (si_valid_data_r = '0') then
if (sample_info_r.valid_data = '0') then
-- Ignore and read Next Sample
stage_next <= INITIATE_READ;
else
@ -277,7 +265,7 @@ begin
stage_next <= GET_PAYLOAD_HEADER;
service_info_sig_next.received_timestamp <= TIME_INVALID;
service_info_sig_next.source_timestamp <= si_source_timestamp_r;
service_info_sig_next.source_timestamp <= sample_info_r.source_timestamp;
end if;
end if;
when GET_PAYLOAD_HEADER =>

View File

@ -33,21 +33,9 @@ entity AddTwoInts_ros_srv_server is
ready_in_r : out std_logic;
data_in_r : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_r : in std_logic;
-- Sample Info
si_sample_state_r : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_r : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
si_instance_state_r : in std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_r : in TIME_TYPE;
si_instance_handle_r : in INSTANCE_HANDLE_TYPE;
si_publication_handle_r : in INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_r : in std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_r : in std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_r : in std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
si_generation_rank_r : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_r : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_r : in std_logic;
si_valid_r : in std_logic;
si_ack_r : out std_logic;
sample_info_r : in SAMPLE_INFO_TYPE;
sample_info_valid_r : in std_logic;
sample_info_ack_r : out std_logic;
eoc_r : in std_logic;
status_r : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
-- FROM DDS WRITER
@ -185,7 +173,7 @@ begin
ready_in_r_sig <= '0';
abort_mem <= '0';
ack_user <= '0';
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
start_r <= '0';
opcode_r <= NOP;
@ -264,10 +252,10 @@ begin
end case;
end if;
when WAIT_FOR_DATA =>
if (si_valid_r = '1') then
si_ack_r <= '1';
if (sample_info_valid_r = '1') then
sample_info_ack_r <= '1';
-- Meta Sample
if (si_valid_data_r = '0') then
if (sample_info_r.valid_data = '0') then
-- Ignore and read Next Sample
stage_next <= INITIATE_READ;
else
@ -275,7 +263,7 @@ begin
stage_next <= GET_PAYLOAD_HEADER;
service_info_sig_next.received_timestamp <= TIME_INVALID;
service_info_sig_next.source_timestamp <= si_source_timestamp_r;
service_info_sig_next.source_timestamp <= sample_info_r.source_timestamp;
end if;
end if;
when GET_PAYLOAD_HEADER =>

View File

@ -31,21 +31,9 @@ entity Fibonacci_ros_action_feedback_sub is
ready_in_dds : out std_logic;
data_in_dds : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_dds : in std_logic;
-- Sample Info
si_sample_state_dds : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_dds : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
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 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);
si_generation_rank_dds : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_dds : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_dds : in std_logic;
si_valid_dds : in std_logic;
si_ack_dds : out std_logic;
sample_info_dds : in SAMPLE_INFO_TYPE;
sample_info_valid_dds : in std_logic;
sample_info_ack_dds : out std_logic;
eoc_dds : in std_logic;
-- Communication Status
status_dds : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
@ -183,7 +171,7 @@ begin
message_info_sig_next <= message_info_sig;
abort_mem <= '0';
ready_in_dds_sig <= '0';
si_ack_dds <= '0';
sample_info_ack_dds <= '0';
get_data_dds <= '0';
start_dds <= '0';
opcode_dds <= NOP;
@ -267,10 +255,10 @@ begin
end case;
end if;
when WAIT_FOR_DATA =>
if (si_valid_dds = '1') then
si_ack_dds <= '1';
if (sample_info_valid_dds = '1') then
sample_info_ack_dds <= '1';
-- Meta Sample
if (si_valid_data_dds = '0') then
if (sample_info_dds.valid_data = '0') then
-- Ignore and read Next Sample
stage_next <= INITIATE_READ;
else
@ -279,7 +267,7 @@ begin
message_info_sig_next.publisher_gid <= to_gid(GUID_UNKNOWN);
message_info_sig_next.received_timestamp <= TIME_INVALID;
message_info_sig_next.source_timestamp <= si_source_timestamp_dds;
message_info_sig_next.source_timestamp <= sample_info_dds.source_timestamp;
end if;
end if;
when GET_PAYLOAD_HEADER =>

View File

@ -34,21 +34,9 @@ entity Fibonacci_ros_action_goal_srv_client is
ready_in_r : out std_logic;
data_in_r : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_r : in std_logic;
-- Sample Info
si_sample_state_r : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_r : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
si_instance_state_r : in std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_r : in TIME_TYPE;
si_instance_handle_r : in INSTANCE_HANDLE_TYPE;
si_publication_handle_r : in INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_r : in std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_r : in std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_r : in std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
si_generation_rank_r : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_r : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_r : in std_logic;
si_valid_r : in std_logic;
si_ack_r : out std_logic;
sample_info_r : in SAMPLE_INFO_TYPE;
sample_info_valid_r : in std_logic;
sample_info_ack_r : out std_logic;
eoc_r : in std_logic;
status_r : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
-- FROM DDS WRITER
@ -193,7 +181,7 @@ begin
ready_in_r_sig <= '0';
abort_mem <= '0';
ack_user <= '0';
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
start_r <= '0';
opcode_r <= NOP;
@ -275,10 +263,10 @@ begin
end case;
end if;
when WAIT_FOR_DATA =>
if (si_valid_r = '1') then
si_ack_r <= '1';
if (sample_info_valid_r = '1') then
sample_info_ack_r <= '1';
-- Meta Sample
if (si_valid_data_r = '0') then
if (sample_info_r.valid_data = '0') then
-- Ignore and read Next Sample
stage_next <= INITIATE_READ;
else
@ -286,7 +274,7 @@ begin
stage_next <= GET_PAYLOAD_HEADER;
service_info_sig_next.received_timestamp <= TIME_INVALID;
service_info_sig_next.source_timestamp <= si_source_timestamp_r;
service_info_sig_next.source_timestamp <= sample_info_r.source_timestamp;
end if;
end if;
when GET_PAYLOAD_HEADER =>

View File

@ -35,21 +35,9 @@ entity Fibonacci_ros_action_goal_srv_server is
ready_in_r : out std_logic;
data_in_r : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_r : in std_logic;
-- Sample Info
si_sample_state_r : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_r : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
si_instance_state_r : in std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_r : in TIME_TYPE;
si_instance_handle_r : in INSTANCE_HANDLE_TYPE;
si_publication_handle_r : in INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_r : in std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_r : in std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_r : in std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
si_generation_rank_r : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_r : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_r : in std_logic;
si_valid_r : in std_logic;
si_ack_r : out std_logic;
sample_info_r : in SAMPLE_INFO_TYPE;
sample_info_valid_r : in std_logic;
sample_info_ack_r : out std_logic;
eoc_r : in std_logic;
status_r : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
-- FROM DDS WRITER
@ -191,7 +179,7 @@ begin
ready_in_r_sig <= '0';
abort_mem <= '0';
ack_user <= '0';
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
start_r <= '0';
opcode_r <= NOP;
@ -271,10 +259,10 @@ begin
end case;
end if;
when WAIT_FOR_DATA =>
if (si_valid_r = '1') then
si_ack_r <= '1';
if (sample_info_valid_r = '1') then
sample_info_ack_r <= '1';
-- Meta Sample
if (si_valid_data_r = '0') then
if (sample_info_r.valid_data = '0') then
-- Ignore and read Next Sample
stage_next <= INITIATE_READ;
else
@ -282,7 +270,7 @@ begin
stage_next <= GET_PAYLOAD_HEADER;
service_info_sig_next.received_timestamp <= TIME_INVALID;
service_info_sig_next.source_timestamp <= si_source_timestamp_r;
service_info_sig_next.source_timestamp <= sample_info_r.source_timestamp;
end if;
end if;
when GET_PAYLOAD_HEADER =>

View File

@ -34,21 +34,9 @@ entity Fibonacci_ros_action_result_srv_client is
ready_in_r : out std_logic;
data_in_r : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_r : in std_logic;
-- Sample Info
si_sample_state_r : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_r : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
si_instance_state_r : in std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_r : in TIME_TYPE;
si_instance_handle_r : in INSTANCE_HANDLE_TYPE;
si_publication_handle_r : in INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_r : in std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_r : in std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_r : in std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
si_generation_rank_r : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_r : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_r : in std_logic;
si_valid_r : in std_logic;
si_ack_r : out std_logic;
sample_info_r : in SAMPLE_INFO_TYPE;
sample_info_valid_r : in std_logic;
sample_info_ack_r : out std_logic;
eoc_r : in std_logic;
status_r : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
-- FROM DDS WRITER
@ -223,7 +211,7 @@ begin
ready_in_r_sig <= '0';
abort_mem <= '0';
ack_user <= '0';
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
start_r <= '0';
opcode_r <= NOP;
@ -316,10 +304,10 @@ begin
end case;
end if;
when WAIT_FOR_DATA =>
if (si_valid_r = '1') then
si_ack_r <= '1';
if (sample_info_valid_r = '1') then
sample_info_ack_r <= '1';
-- Meta Sample
if (si_valid_data_r = '0') then
if (sample_info_r.valid_data = '0') then
-- Ignore and read Next Sample
stage_next <= INITIATE_READ;
else
@ -327,7 +315,7 @@ begin
stage_next <= GET_PAYLOAD_HEADER;
service_info_sig_next.received_timestamp <= TIME_INVALID;
service_info_sig_next.source_timestamp <= si_source_timestamp_r;
service_info_sig_next.source_timestamp <= sample_info_r.source_timestamp;
end if;
end if;
when GET_PAYLOAD_HEADER =>

View File

@ -34,21 +34,9 @@ entity Fibonacci_ros_action_result_srv_server is
ready_in_r : out std_logic;
data_in_r : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_r : in std_logic;
-- Sample Info
si_sample_state_r : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_r : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
si_instance_state_r : in std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_r : in TIME_TYPE;
si_instance_handle_r : in INSTANCE_HANDLE_TYPE;
si_publication_handle_r : in INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_r : in std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_r : in std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_r : in std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
si_generation_rank_r : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_r : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_r : in std_logic;
si_valid_r : in std_logic;
si_ack_r : out std_logic;
sample_info_r : in SAMPLE_INFO_TYPE;
sample_info_valid_r : in std_logic;
sample_info_ack_r : out std_logic;
eoc_r : in std_logic;
status_r : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
-- FROM DDS WRITER
@ -221,7 +209,7 @@ begin
ready_in_r_sig <= '0';
abort_mem <= '0';
ack_user <= '0';
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
start_r <= '0';
opcode_r <= NOP;
@ -310,10 +298,10 @@ begin
end case;
end if;
when WAIT_FOR_DATA =>
if (si_valid_r = '1') then
si_ack_r <= '1';
if (sample_info_valid_r = '1') then
sample_info_ack_r <= '1';
-- Meta Sample
if (si_valid_data_r = '0') then
if (sample_info_r.valid_data = '0') then
-- Ignore and read Next Sample
stage_next <= INITIATE_READ;
else
@ -321,7 +309,7 @@ begin
stage_next <= GET_PAYLOAD_HEADER;
service_info_sig_next.received_timestamp <= TIME_INVALID;
service_info_sig_next.source_timestamp <= si_source_timestamp_r;
service_info_sig_next.source_timestamp <= sample_info_r.source_timestamp;
end if;
end if;
when GET_PAYLOAD_HEADER =>

View File

@ -34,21 +34,9 @@ entity CancelGoal_ros_srv_client is
ready_in_r : out std_logic;
data_in_r : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_r : in std_logic;
-- Sample Info
si_sample_state_r : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_r : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
si_instance_state_r : in std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_r : in TIME_TYPE;
si_instance_handle_r : in INSTANCE_HANDLE_TYPE;
si_publication_handle_r : in INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_r : in std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_r : in std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_r : in std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
si_generation_rank_r : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_r : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_r : in std_logic;
si_valid_r : in std_logic;
si_ack_r : out std_logic;
sample_info_r : in SAMPLE_INFO_TYPE;
sample_info_valid_r : in std_logic;
sample_info_ack_r : out std_logic;
eoc_r : in std_logic;
status_r : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
-- FROM DDS WRITER
@ -252,7 +240,7 @@ begin
ready_in_r_sig <= '0';
abort_mem <= '0';
ack_user <= '0';
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
start_r <= '0';
opcode_r <= NOP;
@ -355,10 +343,10 @@ begin
end case;
end if;
when WAIT_FOR_DATA =>
if (si_valid_r = '1') then
si_ack_r <= '1';
if (sample_info_valid_r = '1') then
sample_info_ack_r <= '1';
-- Meta Sample
if (si_valid_data_r = '0') then
if (sample_info_r.valid_data = '0') then
-- Ignore and read Next Sample
stage_next <= INITIATE_READ;
else
@ -366,7 +354,7 @@ begin
stage_next <= GET_PAYLOAD_HEADER;
service_info_sig_next.received_timestamp <= TIME_INVALID;
service_info_sig_next.source_timestamp <= si_source_timestamp_r;
service_info_sig_next.source_timestamp <= sample_info_r.source_timestamp;
end if;
end if;
when GET_PAYLOAD_HEADER =>

View File

@ -34,21 +34,9 @@ entity CancelGoal_ros_srv_server is
ready_in_r : out std_logic;
data_in_r : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_r : in std_logic;
-- Sample Info
si_sample_state_r : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_r : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
si_instance_state_r : in std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_r : in TIME_TYPE;
si_instance_handle_r : in INSTANCE_HANDLE_TYPE;
si_publication_handle_r : in INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_r : in std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_r : in std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_r : in std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
si_generation_rank_r : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_r : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_r : in std_logic;
si_valid_r : in std_logic;
si_ack_r : out std_logic;
sample_info_r : in SAMPLE_INFO_TYPE;
sample_info_valid_r : in std_logic;
sample_info_ack_r : out std_logic;
eoc_r : in std_logic;
status_r : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
-- FROM DDS WRITER
@ -254,7 +242,7 @@ begin
ready_in_r_sig <= '0';
abort_mem <= '0';
ack_user <= '0';
si_ack_r <= '0';
sample_info_ack_r <= '0';
get_data_r <= '0';
start_r <= '0';
opcode_r <= NOP;
@ -352,10 +340,10 @@ begin
end case;
end if;
when WAIT_FOR_DATA =>
if (si_valid_r = '1') then
si_ack_r <= '1';
if (sample_info_valid_r = '1') then
sample_info_ack_r <= '1';
-- Meta Sample
if (si_valid_data_r = '0') then
if (sample_info_r.valid_data = '0') then
-- Ignore and read Next Sample
stage_next <= INITIATE_READ;
else
@ -363,7 +351,7 @@ begin
stage_next <= GET_PAYLOAD_HEADER;
service_info_sig_next.received_timestamp <= TIME_INVALID;
service_info_sig_next.source_timestamp <= si_source_timestamp_r;
service_info_sig_next.source_timestamp <= sample_info_r.source_timestamp;
end if;
end if;
when GET_PAYLOAD_HEADER =>

View File

@ -31,21 +31,9 @@ entity GoalStatusArray_ros_sub is
ready_in_dds : out std_logic;
data_in_dds : in std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_dds : in std_logic;
-- Sample Info
si_sample_state_dds : in std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_dds : in std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
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 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);
si_generation_rank_dds : in std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_dds : in std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_dds : in std_logic;
si_valid_dds : in std_logic;
si_ack_dds : out std_logic;
sample_info_dds : in SAMPLE_INFO_TYPE;
sample_info_valid_dds : in std_logic;
sample_info_ack_dds : out std_logic;
eoc_dds : in std_logic;
-- Communication Status
status_dds : in std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
@ -234,7 +222,7 @@ begin
message_info_sig_next <= message_info_sig;
abort_mem <= '0';
ready_in_dds_sig <= '0';
si_ack_dds <= '0';
sample_info_ack_dds <= '0';
get_data_dds <= '0';
start_dds <= '0';
opcode_dds <= NOP;
@ -337,10 +325,10 @@ begin
end case;
end if;
when WAIT_FOR_DATA =>
if (si_valid_dds = '1') then
si_ack_dds <= '1';
if (sample_info_valid_dds = '1') then
sample_info_ack_dds <= '1';
-- Meta Sample
if (si_valid_data_dds = '0') then
if (sample_info_dds.valid_data = '0') then
-- Ignore and read Next Sample
stage_next <= INITIATE_READ;
else
@ -349,7 +337,7 @@ begin
message_info_sig_next.publisher_gid <= to_gid(GUID_UNKNOWN);
message_info_sig_next.received_timestamp <= TIME_INVALID;
message_info_sig_next.source_timestamp <= si_source_timestamp_dds;
message_info_sig_next.source_timestamp <= sample_info_dds.source_timestamp;
end if;
end if;
when GET_PAYLOAD_HEADER =>

View File

@ -296,20 +296,9 @@ package ros_package is
ready_in_r : std_logic;
data_in_r : std_logic_vector(WORD_WIDTH-1 downto 0);
last_word_in_r : std_logic;
si_sample_state_r : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
si_view_state_r : std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
si_instance_state_r : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
si_source_timestamp_r : TIME_TYPE;
si_instance_handle_r : INSTANCE_HANDLE_TYPE;
si_publication_handle_r : INSTANCE_HANDLE_TYPE;
si_disposed_generation_count_r : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
si_no_writers_generation_count_r : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
si_sample_rank_r : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
si_generation_rank_r : std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
si_absolute_generation_rank_r : std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
si_valid_data_r : std_logic;
si_valid_r : std_logic;
si_ack_r : std_logic;
sample_info_r : SAMPLE_INFO_TYPE;
sample_info_valid_r : std_logic;
sample_info_ack_r : std_logic;
eoc_r : std_logic;
status_r : std_logic_vector(STATUS_KIND_WIDTH-1 downto 0);
start_w : std_logic;

View File

@ -558,6 +558,21 @@ package rtps_package is
type CONFIG_ARRAY_TYPE is array (natural range <>) of CONFIG_TYPE;
type SAMPLE_INFO_TYPE is record
sample_state : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0);
view_state : std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0);
instance_state : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0);
source_timestamp : TIME_TYPE;
instance_handle : INSTANCE_HANDLE_TYPE;
publication_handle : INSTANCE_HANDLE_TYPE;
disposed_generation_count : std_logic_vector(DISPOSED_GENERATION_COUNT_WIDTH-1 downto 0);
no_writers_generation_count : std_logic_vector(NO_WRITERS_GENERATION_COUNT_WIDTH-1 downto 0);
sample_rank : std_logic_vector(SAMPLE_RANK_WIDTH-1 downto 0);
generation_rank : std_logic_vector(GENERATION_RANK_WIDTH-1 downto 0);
absolute_generation_rank : std_logic_vector(ABSOLUTE_GENERATION_COUNT_WIDTH-1 downto 0);
valid_data : std_logic;
end record;
function to_guid(A : GUIDPREFIX_TYPE; B : std_logic_vector(ENTITYID_WIDTH-1 downto 0)) return GUID_TYPE;
function to_key_hash(A : GUID_TYPE) return KEY_HASH_TYPE;
function to_key_hash(A : std_logic_vector) return KEY_HASH_TYPE;