diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd index 6ece926fae5b8c38ab4d02a1289c10cb61fcf036..d5cb3f69e91f6301bb9431a1ed535bee7cfe08e6 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd @@ -193,12 +193,14 @@ PACKAGE sdp_pkg is CONSTANT c_sdp_cep_nof_blocks_per_packet : NATURAL := 4; CONSTANT c_sdp_cep_nof_beamlets_per_block : NATURAL := c_sdp_N_pol * c_sdp_S_sub_bf; CONSTANT c_sdp_cep_nof_hdr_fields : NATURAL := 3+12+4+18+1; -- 592b; 9.25 64b words - CONSTANT c_sdp_cep_hdr_field_sel : STD_LOGIC_VECTOR(c_sdp_cep_nof_hdr_fields-1 DOWNTO 0) := "101"&"111111111001"&"0111"&"110000000010000110"&"0"; + CONSTANT c_sdp_cep_hdr_field_sel : STD_LOGIC_VECTOR(c_sdp_cep_nof_hdr_fields-1 DOWNTO 0) := "101"&"111111111001"&"0111"&"1100"&"00000010"&"000110"&"0"; -- 0=data path, 1=MM controlled TODO +--CONSTANT c_sdp_cep_hdr_field_sel : STD_LOGIC_VECTOR(c_sdp_cep_nof_hdr_fields-1 DOWNTO 0) := "100"&"000000010001"&"0100"&"0100"&"00000000"&"101000"&"0"; -- 0=data path, 1=MM controlled TODO CONSTANT c_sdp_cep_hdr_field_arr : t_common_field_arr(c_sdp_cep_nof_hdr_fields-1 DOWNTO 0) := ( ( field_name_pad("eth_dst_mac" ), "RW", 48, field_default(x"00074306C700") ), -- 00074306C700=DOP36-eth0 ( field_name_pad("eth_src_mac" ), "RW", 48, field_default(0) ), ( field_name_pad("eth_type" ), "RW", 16, field_default(x"0800") ), + ( field_name_pad("ip_version" ), "RW", 4, field_default(4) ), ( field_name_pad("ip_header_length" ), "RW", 4, field_default(5) ), ( field_name_pad("ip_services" ), "RW", 8, field_default(0) ), @@ -211,14 +213,17 @@ PACKAGE sdp_pkg is ( field_name_pad("ip_header_checksum" ), "RW", 16, field_default(0) ), ( field_name_pad("ip_src_addr" ), "RW", 32, field_default(0) ), ( field_name_pad("ip_dst_addr" ), "RW", 32, field_default(x"C0A80001") ), -- C0A80001=DOP36-eth0 '192.168.0.1' + ( field_name_pad("udp_src_port" ), "RW", 16, field_default(0) ), ( field_name_pad("udp_dst_port" ), "RW", 16, field_default(5000) ), ( field_name_pad("udp_total_length" ), "RW", 16, field_default(7848) ), ( field_name_pad("udp_checksum" ), "RW", 16, field_default(0) ), + ( field_name_pad("sdp_marker" ), "RW", 8, field_default(x"62") ), ( field_name_pad("sdp_version_id" ), "RW", 8, field_default(5) ), ( field_name_pad("sdp_observation_id" ), "RW", 32, field_default(0) ), ( field_name_pad("sdp_station_id" ), "RW", 16, field_default(0) ), + ( field_name_pad("sdp_source_info_antenna_band_id" ), "RW", 1, field_default(0) ), ( field_name_pad("sdp_source_info_nyquist_zone_id" ), "RW", 2, field_default(0) ), ( field_name_pad("sdp_source_info_f_adc" ), "RW", 1, field_default(0) ), @@ -227,12 +232,14 @@ PACKAGE sdp_pkg is ( field_name_pad("sdp_source_info_repositioning_flag" ), "RW", 1, field_default(0) ), ( field_name_pad("sdp_source_info_beamlet_width" ), "RW", 4, field_default(c_sdp_W_beamlet) ), ( field_name_pad("sdp_source_info_gn_id" ), "RW", 5, field_default(0) ), + ( field_name_pad("sdp_reserved" ), "RW", 40, field_default(0) ), ( field_name_pad("sdp_beamlet_scale" ), "RW", 16, field_default(2**15) ), ( field_name_pad("sdp_beamlet_id" ), "RW", 16, field_default(0) ), ( field_name_pad("sdp_nof_blocks_per_packet" ), "RW", 8, field_default(c_sdp_cep_nof_blocks_per_packet) ), ( field_name_pad("sdp_nof_beamlets_per_block" ), "RW", 16, field_default(c_sdp_cep_nof_beamlets_per_block) ), ( field_name_pad("sdp_block_period" ), "RW", 16, field_default(5120) ), + ( field_name_pad("dp_bsn" ), "RW", 64, field_default(0) ) ); @@ -256,13 +263,15 @@ PACKAGE sdp_pkg is CONSTANT c_sdp_xst_udp_src_port_15_8 : STD_LOGIC_VECTOR(7 DOWNTO 0) := x"D2"; -- TBC CONSTANT c_sdp_stat_nof_hdr_fields : NATURAL := 1+3+12+4+20+1; -- 592b; 18.5 32b words - CONSTANT c_sdp_stat_hdr_field_sel : STD_LOGIC_VECTOR(c_sdp_stat_nof_hdr_fields-1 DOWNTO 0) := "1"&"101"&"111111111001"&"0111"&"01000000000000000100"&"0"; -- 0=data path, 1=MM controlled TODO + CONSTANT c_sdp_stat_hdr_field_sel : STD_LOGIC_VECTOR(c_sdp_stat_nof_hdr_fields-1 DOWNTO 0) := "1"&"101"&"111111111001"&"0111"&"0100"&"000000000"&"0000100"&"0"; -- 0=data path, 1=MM controlled TODO +--CONSTANT c_sdp_stat_hdr_field_sel : STD_LOGIC_VECTOR(c_sdp_stat_nof_hdr_fields-1 DOWNTO 0) := "0"&"100"&"000000010001"&"0100"&"0100"&"000000010"&"1000000"&"0"; -- 0=data path, 1=MM controlled TODO CONSTANT c_sdp_stat_hdr_field_arr : t_common_field_arr(c_sdp_stat_nof_hdr_fields-1 DOWNTO 0) := ( ( field_name_pad("word_align" ), "RW", 16, field_default(0) ), ( field_name_pad("eth_dst_mac" ), "RW", 48, field_default(x"001B217176B9") ), -- 001B217176B9 = DOP36-enp2s0 ( field_name_pad("eth_src_mac" ), "RW", 48, field_default(0) ), ( field_name_pad("eth_type" ), "RW", 16, field_default(x"0800") ), + ( field_name_pad("ip_version" ), "RW", 4, field_default(4) ), ( field_name_pad("ip_header_length" ), "RW", 4, field_default(5) ), ( field_name_pad("ip_services" ), "RW", 8, field_default(0) ), @@ -275,14 +284,17 @@ PACKAGE sdp_pkg is ( field_name_pad("ip_header_checksum" ), "RW", 16, field_default(0) ), ( field_name_pad("ip_src_addr" ), "RW", 32, field_default(0) ), ( field_name_pad("ip_dst_addr" ), "RW", 32, field_default(x"0A6300FE") ), -- 0A6300FE = DOP36-enp2s0 '10.99.0.254' + ( field_name_pad("udp_src_port" ), "RW", 16, field_default(0) ), ( field_name_pad("udp_dst_port" ), "RW", 16, field_default(5001) ), ( field_name_pad("udp_total_length" ), "RW", 16, field_default(4136) ), ( field_name_pad("udp_checksum" ), "RW", 16, field_default(0) ), + ( field_name_pad("sdp_marker" ), "RW", 8, field_default(0) ), ( field_name_pad("sdp_version_id" ), "RW", 8, field_default(5) ), ( field_name_pad("sdp_observation_id" ), "RW", 32, field_default(0) ), ( field_name_pad("sdp_station_id" ), "RW", 16, field_default(0) ), + ( field_name_pad("sdp_source_info_antenna_band_id" ), "RW", 1, field_default(0) ), ( field_name_pad("sdp_source_info_nyquist_zone_id" ), "RW", 2, field_default(0) ), ( field_name_pad("sdp_source_info_f_adc" ), "RW", 1, field_default(0) ), @@ -292,6 +304,7 @@ PACKAGE sdp_pkg is ( field_name_pad("sdp_source_info_subband_calibrated_flag" ), "RW", 1, field_default(0) ), ( field_name_pad("sdp_source_info_reserved" ), "RW", 3, field_default(0) ), ( field_name_pad("sdp_source_info_gn_id" ), "RW", 5, field_default(0) ), + ( field_name_pad("sdp_reserved" ), "RW", 8, field_default(0) ), ( field_name_pad("sdp_integration_interval" ), "RW", 24, field_default(0) ), ( field_name_pad("sdp_data_id" ), "RW", 32, field_default(0) ), @@ -299,6 +312,7 @@ PACKAGE sdp_pkg is ( field_name_pad("sdp_nof_bytes_per_statistics" ), "RW", 8, field_default(8) ), ( field_name_pad("sdp_nof_statistics_per_packet" ), "RW", 16, field_default(0) ), ( field_name_pad("sdp_block_period" ), "RW", 16, field_default(0) ), + ( field_name_pad("dp_bsn" ), "RW", 64, field_default(0) ) ); CONSTANT c_sdp_reg_stat_hdr_dat_addr_w : NATURAL := ceil_log2(field_nof_words(c_sdp_stat_hdr_field_arr, c_word_w));