From cf3daa12b07d7741ec14bbfdad298f9770e8dd8c Mon Sep 17 00:00:00 2001 From: Greek64 Date: Sat, 19 Feb 2022 11:58:40 +0100 Subject: [PATCH] Define record for sample_info of DDS Reader --- src/TEMPLATE_dds_top.vhd | 72 +++-------- src/TEMPLATE_reader_interface.vhd | 54 ++------- .../Level_0/L0_dds_reader_test1_abzkriu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test1_arzkriu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test1_arzksiu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test1_arznriu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test1_lbzkriu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test1_lrzkriu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test2_arpkriu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test3_arzkrio.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test3_arzkriu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test3_arzkrto.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test3_arzkrtu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test3_arzksto.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test3_arznriu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test4_arzkriu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test4_arznriu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test5_arzkriu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test6_arzkriu.vhd | 86 +++++++------- .../Level_0/L0_dds_reader_test7_arzkriu.vhd | 86 +++++++------- .../Level_1/L1_Type1_interface_test1.vhd | 49 ++++---- .../Level_1/L1_Type1_interface_test2.vhd | 49 ++++---- .../Level_1/L1_Type2_interface_test1.vhd | 49 ++++---- .../Level_1/L1_Type2_interface_test2.vhd | 49 ++++---- src/Tests/Level_2/L2_Testbench_Lib3.vhd | 81 +++---------- src/Tests/Level_2/L2_Type1_test1.vhd | 100 ++++++++-------- src/Tests/Level_2/L2_Type1_test2.vhd | 65 +++++----- src/Tests/Level_2/L2_testbench_Lib4.vhd | 112 ++++-------------- src/Tests/Level_2/L2_testbench_Lib5.vhd | 95 +++------------ src/Tests/Type1_reader_interface.vhd | 53 ++------- src/Tests/Type2_reader_interface.vhd | 53 ++------- src/Tests/test_loopback.vhd | 25 ++-- src/dds_reader.vhd | 53 ++++----- src/ros2/TEMPLATE_ros_srv_client.vhd | 26 ++-- src/ros2/TEMPLATE_ros_srv_server.vhd | 28 ++--- src/ros2/TEMPLATE_ros_sub.vhd | 28 ++--- .../Level_1/L1_AddTwoInts_ros_srv_test1.vhd | 60 +++++----- .../Level_1/L1_AddTwoInts_ros_srv_test2.vhd | 60 +++++----- .../Level_1/L1_CancelGoal_ros_srv_test1.vhd | 60 +++++----- .../Level_1/L1_CancelGoal_ros_srv_test2.vhd | 60 +++++----- ...L1_Fibonacci_ros_action_feedback_test1.vhd | 49 ++++---- ...L1_Fibonacci_ros_action_feedback_test2.vhd | 49 ++++---- ...L1_Fibonacci_ros_action_goal_srv_test1.vhd | 60 +++++----- ...L1_Fibonacci_ros_action_goal_srv_test2.vhd | 60 +++++----- ..._Fibonacci_ros_action_result_srv_test1.vhd | 60 +++++----- ..._Fibonacci_ros_action_result_srv_test2.vhd | 60 +++++----- .../Level_1/L1_GoalStatusArray_ros_test1.vhd | 49 ++++---- .../Level_1/L1_GoalStatusArray_ros_test2.vhd | 49 ++++---- .../Tests/Level_2/L2_Testbench_ROS_Lib2.vhd | 76 +++--------- .../Tests/Level_2/L2_Testbench_ROS_Lib3.vhd | 76 +++--------- .../AddTwoInts_ros_srv_client.vhd | 28 ++--- .../AddTwoInts_ros_srv_server.vhd | 28 ++--- .../Fibonacci_ros_action_feedback_sub.vhd | 28 ++--- .../Fibonacci_ros_action_goal_srv_client.vhd | 28 ++--- .../Fibonacci_ros_action_goal_srv_server.vhd | 28 ++--- ...Fibonacci_ros_action_result_srv_client.vhd | 28 ++--- ...Fibonacci_ros_action_result_srv_server.vhd | 28 ++--- .../action_msgs/CancelGoal_ros_srv_client.vhd | 28 ++--- .../action_msgs/CancelGoal_ros_srv_server.vhd | 28 ++--- .../action_msgs/GoalStatusArray_ros_sub.vhd | 28 ++--- src/ros2/ros_package.vhd | 17 +-- src/rtps_package.vhd | 15 +++ 62 files changed, 1546 insertions(+), 2183 deletions(-) diff --git a/src/TEMPLATE_dds_top.vhd b/src/TEMPLATE_dds_top.vhd index 34cc2e6..e9e99fb 100644 --- a/src/TEMPLATE_dds_top.vhd +++ b/src/TEMPLATE_dds_top.vhd @@ -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 => diff --git a/src/TEMPLATE_reader_interface.vhd b/src/TEMPLATE_reader_interface.vhd index 448297a..0999bd4 100644 --- a/src/TEMPLATE_reader_interface.vhd +++ b/src/TEMPLATE_reader_interface.vhd @@ -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'; diff --git a/src/Tests/Level_0/L0_dds_reader_test1_abzkriu.vhd b/src/Tests/Level_0/L0_dds_reader_test1_abzkriu.vhd index a84ecff..36fea19 100644 --- a/src/Tests/Level_0/L0_dds_reader_test1_abzkriu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test1_abzkriu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test1_arzkriu.vhd b/src/Tests/Level_0/L0_dds_reader_test1_arzkriu.vhd index 3d6a83d..b8c4a65 100644 --- a/src/Tests/Level_0/L0_dds_reader_test1_arzkriu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test1_arzkriu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test1_arzksiu.vhd b/src/Tests/Level_0/L0_dds_reader_test1_arzksiu.vhd index 73053fe..bdc1256 100644 --- a/src/Tests/Level_0/L0_dds_reader_test1_arzksiu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test1_arzksiu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test1_arznriu.vhd b/src/Tests/Level_0/L0_dds_reader_test1_arznriu.vhd index 725253a..85602dd 100644 --- a/src/Tests/Level_0/L0_dds_reader_test1_arznriu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test1_arznriu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test1_lbzkriu.vhd b/src/Tests/Level_0/L0_dds_reader_test1_lbzkriu.vhd index f036549..5142e9d 100644 --- a/src/Tests/Level_0/L0_dds_reader_test1_lbzkriu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test1_lbzkriu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test1_lrzkriu.vhd b/src/Tests/Level_0/L0_dds_reader_test1_lrzkriu.vhd index 9e3fd6e..0488cd5 100644 --- a/src/Tests/Level_0/L0_dds_reader_test1_lrzkriu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test1_lrzkriu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test2_arpkriu.vhd b/src/Tests/Level_0/L0_dds_reader_test2_arpkriu.vhd index deeafe5..0ffa520 100644 --- a/src/Tests/Level_0/L0_dds_reader_test2_arpkriu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test2_arpkriu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test3_arzkrio.vhd b/src/Tests/Level_0/L0_dds_reader_test3_arzkrio.vhd index 6757781..6a77272 100644 --- a/src/Tests/Level_0/L0_dds_reader_test3_arzkrio.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test3_arzkrio.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test3_arzkriu.vhd b/src/Tests/Level_0/L0_dds_reader_test3_arzkriu.vhd index 4b35000..5071bf8 100644 --- a/src/Tests/Level_0/L0_dds_reader_test3_arzkriu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test3_arzkriu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test3_arzkrto.vhd b/src/Tests/Level_0/L0_dds_reader_test3_arzkrto.vhd index 278c154..f96971e 100644 --- a/src/Tests/Level_0/L0_dds_reader_test3_arzkrto.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test3_arzkrto.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test3_arzkrtu.vhd b/src/Tests/Level_0/L0_dds_reader_test3_arzkrtu.vhd index c6eca7c..c14a2eb 100644 --- a/src/Tests/Level_0/L0_dds_reader_test3_arzkrtu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test3_arzkrtu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test3_arzksto.vhd b/src/Tests/Level_0/L0_dds_reader_test3_arzksto.vhd index 4f1cd2a..0eea62d 100644 --- a/src/Tests/Level_0/L0_dds_reader_test3_arzksto.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test3_arzksto.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test3_arznriu.vhd b/src/Tests/Level_0/L0_dds_reader_test3_arznriu.vhd index 88f568d..6f5625b 100644 --- a/src/Tests/Level_0/L0_dds_reader_test3_arznriu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test3_arznriu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test4_arzkriu.vhd b/src/Tests/Level_0/L0_dds_reader_test4_arzkriu.vhd index 946f4f6..563116f 100644 --- a/src/Tests/Level_0/L0_dds_reader_test4_arzkriu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test4_arzkriu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test4_arznriu.vhd b/src/Tests/Level_0/L0_dds_reader_test4_arznriu.vhd index 26a766f..71013c0 100644 --- a/src/Tests/Level_0/L0_dds_reader_test4_arznriu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test4_arznriu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test5_arzkriu.vhd b/src/Tests/Level_0/L0_dds_reader_test5_arzkriu.vhd index 43f7f65..4610a18 100644 --- a/src/Tests/Level_0/L0_dds_reader_test5_arzkriu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test5_arzkriu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test6_arzkriu.vhd b/src/Tests/Level_0/L0_dds_reader_test6_arzkriu.vhd index ac1e328..279b187 100644 --- a/src/Tests/Level_0/L0_dds_reader_test6_arzkriu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test6_arzkriu.vhd @@ -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 diff --git a/src/Tests/Level_0/L0_dds_reader_test7_arzkriu.vhd b/src/Tests/Level_0/L0_dds_reader_test7_arzkriu.vhd index ffd123a..182f1df 100644 --- a/src/Tests/Level_0/L0_dds_reader_test7_arzkriu.vhd +++ b/src/Tests/Level_0/L0_dds_reader_test7_arzkriu.vhd @@ -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 diff --git a/src/Tests/Level_1/L1_Type1_interface_test1.vhd b/src/Tests/Level_1/L1_Type1_interface_test1.vhd index 0047b23..ce37547 100644 --- a/src/Tests/Level_1/L1_Type1_interface_test1.vhd +++ b/src/Tests/Level_1/L1_Type1_interface_test1.vhd @@ -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, diff --git a/src/Tests/Level_1/L1_Type1_interface_test2.vhd b/src/Tests/Level_1/L1_Type1_interface_test2.vhd index 4ec71e6..7fcf44e 100644 --- a/src/Tests/Level_1/L1_Type1_interface_test2.vhd +++ b/src/Tests/Level_1/L1_Type1_interface_test2.vhd @@ -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, diff --git a/src/Tests/Level_1/L1_Type2_interface_test1.vhd b/src/Tests/Level_1/L1_Type2_interface_test1.vhd index aa46701..2fcd15b 100644 --- a/src/Tests/Level_1/L1_Type2_interface_test1.vhd +++ b/src/Tests/Level_1/L1_Type2_interface_test1.vhd @@ -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, diff --git a/src/Tests/Level_1/L1_Type2_interface_test2.vhd b/src/Tests/Level_1/L1_Type2_interface_test2.vhd index b4287bf..fc3bddb 100644 --- a/src/Tests/Level_1/L1_Type2_interface_test2.vhd +++ b/src/Tests/Level_1/L1_Type2_interface_test2.vhd @@ -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, diff --git a/src/Tests/Level_2/L2_Testbench_Lib3.vhd b/src/Tests/Level_2/L2_Testbench_Lib3.vhd index e8d1d3b..20b4269 100644 --- a/src/Tests/Level_2/L2_Testbench_Lib3.vhd +++ b/src/Tests/Level_2/L2_Testbench_Lib3.vhd @@ -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 diff --git a/src/Tests/Level_2/L2_Type1_test1.vhd b/src/Tests/Level_2/L2_Type1_test1.vhd index 742aad4..a2b03a1 100644 --- a/src/Tests/Level_2/L2_Type1_test1.vhd +++ b/src/Tests/Level_2/L2_Type1_test1.vhd @@ -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 diff --git a/src/Tests/Level_2/L2_Type1_test2.vhd b/src/Tests/Level_2/L2_Type1_test2.vhd index e0efaf4..aca9bdb 100644 --- a/src/Tests/Level_2/L2_Type1_test2.vhd +++ b/src/Tests/Level_2/L2_Type1_test2.vhd @@ -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); diff --git a/src/Tests/Level_2/L2_testbench_Lib4.vhd b/src/Tests/Level_2/L2_testbench_Lib4.vhd index 432b00c..369a39c 100644 --- a/src/Tests/Level_2/L2_testbench_Lib4.vhd +++ b/src/Tests/Level_2/L2_testbench_Lib4.vhd @@ -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, diff --git a/src/Tests/Level_2/L2_testbench_Lib5.vhd b/src/Tests/Level_2/L2_testbench_Lib5.vhd index f705545..81f4cbb 100644 --- a/src/Tests/Level_2/L2_testbench_Lib5.vhd +++ b/src/Tests/Level_2/L2_testbench_Lib5.vhd @@ -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, diff --git a/src/Tests/Type1_reader_interface.vhd b/src/Tests/Type1_reader_interface.vhd index cd7f1e6..0a69d08 100644 --- a/src/Tests/Type1_reader_interface.vhd +++ b/src/Tests/Type1_reader_interface.vhd @@ -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'; diff --git a/src/Tests/Type2_reader_interface.vhd b/src/Tests/Type2_reader_interface.vhd index 712acdb..a1a89ca 100644 --- a/src/Tests/Type2_reader_interface.vhd +++ b/src/Tests/Type2_reader_interface.vhd @@ -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'; diff --git a/src/Tests/test_loopback.vhd b/src/Tests/test_loopback.vhd index 0cb6ea4..1c2086f 100644 --- a/src/Tests/test_loopback.vhd +++ b/src/Tests/test_loopback.vhd @@ -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 diff --git a/src/dds_reader.vhd b/src/dds_reader.vhd index 2b3c8f6..b81673b 100644 --- a/src/dds_reader.vhd +++ b/src/dds_reader.vhd @@ -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; diff --git a/src/ros2/TEMPLATE_ros_srv_client.vhd b/src/ros2/TEMPLATE_ros_srv_client.vhd index d6e62d5..0c2c7f2 100644 --- a/src/ros2/TEMPLATE_ros_srv_client.vhd +++ b/src/ros2/TEMPLATE_ros_srv_client.vhd @@ -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 => diff --git a/src/ros2/TEMPLATE_ros_srv_server.vhd b/src/ros2/TEMPLATE_ros_srv_server.vhd index 9a32f28..98e86d8 100644 --- a/src/ros2/TEMPLATE_ros_srv_server.vhd +++ b/src/ros2/TEMPLATE_ros_srv_server.vhd @@ -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 => diff --git a/src/ros2/TEMPLATE_ros_sub.vhd b/src/ros2/TEMPLATE_ros_sub.vhd index 2c079ba..2e96c6d 100644 --- a/src/ros2/TEMPLATE_ros_sub.vhd +++ b/src/ros2/TEMPLATE_ros_sub.vhd @@ -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 => diff --git a/src/ros2/Tests/Level_1/L1_AddTwoInts_ros_srv_test1.vhd b/src/ros2/Tests/Level_1/L1_AddTwoInts_ros_srv_test1.vhd index 411bb8c..6c63852 100644 --- a/src/ros2/Tests/Level_1/L1_AddTwoInts_ros_srv_test1.vhd +++ b/src/ros2/Tests/Level_1/L1_AddTwoInts_ros_srv_test1.vhd @@ -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); diff --git a/src/ros2/Tests/Level_1/L1_AddTwoInts_ros_srv_test2.vhd b/src/ros2/Tests/Level_1/L1_AddTwoInts_ros_srv_test2.vhd index 32f1e89..9e4e61b 100644 --- a/src/ros2/Tests/Level_1/L1_AddTwoInts_ros_srv_test2.vhd +++ b/src/ros2/Tests/Level_1/L1_AddTwoInts_ros_srv_test2.vhd @@ -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); diff --git a/src/ros2/Tests/Level_1/L1_CancelGoal_ros_srv_test1.vhd b/src/ros2/Tests/Level_1/L1_CancelGoal_ros_srv_test1.vhd index d7c8379..4bebab5 100644 --- a/src/ros2/Tests/Level_1/L1_CancelGoal_ros_srv_test1.vhd +++ b/src/ros2/Tests/Level_1/L1_CancelGoal_ros_srv_test1.vhd @@ -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); diff --git a/src/ros2/Tests/Level_1/L1_CancelGoal_ros_srv_test2.vhd b/src/ros2/Tests/Level_1/L1_CancelGoal_ros_srv_test2.vhd index 9e3b7fe..d586a8c 100644 --- a/src/ros2/Tests/Level_1/L1_CancelGoal_ros_srv_test2.vhd +++ b/src/ros2/Tests/Level_1/L1_CancelGoal_ros_srv_test2.vhd @@ -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); diff --git a/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_feedback_test1.vhd b/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_feedback_test1.vhd index fba7ea9..96e3a15 100644 --- a/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_feedback_test1.vhd +++ b/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_feedback_test1.vhd @@ -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); diff --git a/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_feedback_test2.vhd b/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_feedback_test2.vhd index 10463f4..5f91a84 100644 --- a/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_feedback_test2.vhd +++ b/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_feedback_test2.vhd @@ -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); diff --git a/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_goal_srv_test1.vhd b/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_goal_srv_test1.vhd index 7acb0e1..471823f 100644 --- a/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_goal_srv_test1.vhd +++ b/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_goal_srv_test1.vhd @@ -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); diff --git a/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_goal_srv_test2.vhd b/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_goal_srv_test2.vhd index 547b871..9bf665e 100644 --- a/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_goal_srv_test2.vhd +++ b/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_goal_srv_test2.vhd @@ -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); diff --git a/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_result_srv_test1.vhd b/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_result_srv_test1.vhd index 1915a9b..941d06a 100644 --- a/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_result_srv_test1.vhd +++ b/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_result_srv_test1.vhd @@ -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); diff --git a/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_result_srv_test2.vhd b/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_result_srv_test2.vhd index 3a97fc1..0fa5fae 100644 --- a/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_result_srv_test2.vhd +++ b/src/ros2/Tests/Level_1/L1_Fibonacci_ros_action_result_srv_test2.vhd @@ -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); diff --git a/src/ros2/Tests/Level_1/L1_GoalStatusArray_ros_test1.vhd b/src/ros2/Tests/Level_1/L1_GoalStatusArray_ros_test1.vhd index 6e2f97a..ced16bc 100644 --- a/src/ros2/Tests/Level_1/L1_GoalStatusArray_ros_test1.vhd +++ b/src/ros2/Tests/Level_1/L1_GoalStatusArray_ros_test1.vhd @@ -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); diff --git a/src/ros2/Tests/Level_1/L1_GoalStatusArray_ros_test2.vhd b/src/ros2/Tests/Level_1/L1_GoalStatusArray_ros_test2.vhd index da0081a..5afe3b2 100644 --- a/src/ros2/Tests/Level_1/L1_GoalStatusArray_ros_test2.vhd +++ b/src/ros2/Tests/Level_1/L1_GoalStatusArray_ros_test2.vhd @@ -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); diff --git a/src/ros2/Tests/Level_2/L2_Testbench_ROS_Lib2.vhd b/src/ros2/Tests/Level_2/L2_Testbench_ROS_Lib2.vhd index d1c13a5..779e828 100644 --- a/src/ros2/Tests/Level_2/L2_Testbench_ROS_Lib2.vhd +++ b/src/ros2/Tests/Level_2/L2_Testbench_ROS_Lib2.vhd @@ -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, diff --git a/src/ros2/Tests/Level_2/L2_Testbench_ROS_Lib3.vhd b/src/ros2/Tests/Level_2/L2_Testbench_ROS_Lib3.vhd index d02de7e..c2a799e 100644 --- a/src/ros2/Tests/Level_2/L2_Testbench_ROS_Lib3.vhd +++ b/src/ros2/Tests/Level_2/L2_Testbench_ROS_Lib3.vhd @@ -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, diff --git a/src/ros2/example_interfaces/AddTwoInts_ros_srv_client.vhd b/src/ros2/example_interfaces/AddTwoInts_ros_srv_client.vhd index a99314a..1692cad 100644 --- a/src/ros2/example_interfaces/AddTwoInts_ros_srv_client.vhd +++ b/src/ros2/example_interfaces/AddTwoInts_ros_srv_client.vhd @@ -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 => diff --git a/src/ros2/example_interfaces/AddTwoInts_ros_srv_server.vhd b/src/ros2/example_interfaces/AddTwoInts_ros_srv_server.vhd index 5ce2ef7..585533a 100644 --- a/src/ros2/example_interfaces/AddTwoInts_ros_srv_server.vhd +++ b/src/ros2/example_interfaces/AddTwoInts_ros_srv_server.vhd @@ -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 => diff --git a/src/ros2/example_interfaces/Fibonacci_ros_action_feedback_sub.vhd b/src/ros2/example_interfaces/Fibonacci_ros_action_feedback_sub.vhd index b3af6be..356351c 100644 --- a/src/ros2/example_interfaces/Fibonacci_ros_action_feedback_sub.vhd +++ b/src/ros2/example_interfaces/Fibonacci_ros_action_feedback_sub.vhd @@ -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 => diff --git a/src/ros2/example_interfaces/Fibonacci_ros_action_goal_srv_client.vhd b/src/ros2/example_interfaces/Fibonacci_ros_action_goal_srv_client.vhd index 3a166ba..0c0abb2 100644 --- a/src/ros2/example_interfaces/Fibonacci_ros_action_goal_srv_client.vhd +++ b/src/ros2/example_interfaces/Fibonacci_ros_action_goal_srv_client.vhd @@ -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 => diff --git a/src/ros2/example_interfaces/Fibonacci_ros_action_goal_srv_server.vhd b/src/ros2/example_interfaces/Fibonacci_ros_action_goal_srv_server.vhd index 2244dd3..bcb514b 100644 --- a/src/ros2/example_interfaces/Fibonacci_ros_action_goal_srv_server.vhd +++ b/src/ros2/example_interfaces/Fibonacci_ros_action_goal_srv_server.vhd @@ -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 => diff --git a/src/ros2/example_interfaces/Fibonacci_ros_action_result_srv_client.vhd b/src/ros2/example_interfaces/Fibonacci_ros_action_result_srv_client.vhd index 49fe7d4..ee677e8 100644 --- a/src/ros2/example_interfaces/Fibonacci_ros_action_result_srv_client.vhd +++ b/src/ros2/example_interfaces/Fibonacci_ros_action_result_srv_client.vhd @@ -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 => diff --git a/src/ros2/example_interfaces/Fibonacci_ros_action_result_srv_server.vhd b/src/ros2/example_interfaces/Fibonacci_ros_action_result_srv_server.vhd index 9211bc5..d97bef8 100644 --- a/src/ros2/example_interfaces/Fibonacci_ros_action_result_srv_server.vhd +++ b/src/ros2/example_interfaces/Fibonacci_ros_action_result_srv_server.vhd @@ -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 => diff --git a/src/ros2/rcl_interfaces/action_msgs/CancelGoal_ros_srv_client.vhd b/src/ros2/rcl_interfaces/action_msgs/CancelGoal_ros_srv_client.vhd index ecf9ead..ba47bb3 100644 --- a/src/ros2/rcl_interfaces/action_msgs/CancelGoal_ros_srv_client.vhd +++ b/src/ros2/rcl_interfaces/action_msgs/CancelGoal_ros_srv_client.vhd @@ -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 => diff --git a/src/ros2/rcl_interfaces/action_msgs/CancelGoal_ros_srv_server.vhd b/src/ros2/rcl_interfaces/action_msgs/CancelGoal_ros_srv_server.vhd index fd6139f..a695187 100644 --- a/src/ros2/rcl_interfaces/action_msgs/CancelGoal_ros_srv_server.vhd +++ b/src/ros2/rcl_interfaces/action_msgs/CancelGoal_ros_srv_server.vhd @@ -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 => diff --git a/src/ros2/rcl_interfaces/action_msgs/GoalStatusArray_ros_sub.vhd b/src/ros2/rcl_interfaces/action_msgs/GoalStatusArray_ros_sub.vhd index 4b8c482..a8c7add 100644 --- a/src/ros2/rcl_interfaces/action_msgs/GoalStatusArray_ros_sub.vhd +++ b/src/ros2/rcl_interfaces/action_msgs/GoalStatusArray_ros_sub.vhd @@ -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 => diff --git a/src/ros2/ros_package.vhd b/src/ros2/ros_package.vhd index 0ed11db..9b8001d 100644 --- a/src/ros2/ros_package.vhd +++ b/src/ros2/ros_package.vhd @@ -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; diff --git a/src/rtps_package.vhd b/src/rtps_package.vhd index 60a0699..cd08ecf 100644 --- a/src/rtps_package.vhd +++ b/src/rtps_package.vhd @@ -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;