From 720e6b14f2f0f453f70dacbd734032122e7d2d0c Mon Sep 17 00:00:00 2001 From: Reinier van der Walle <walle@astron.nl> Date: Thu, 12 May 2022 15:42:31 +0200 Subject: [PATCH] removed old yaml backups --- .../disturb2_unb2b_station.fpga.yaml.bak | 500 ------------------ .../disturb/disturb.peripheral.yaml.bak | 461 ---------------- 2 files changed, 961 deletions(-) delete mode 100644 applications/disturb2/designs/disturb2_unb2b_station/disturb2_unb2b_station.fpga.yaml.bak delete mode 100644 applications/disturb2/libraries/disturb/disturb.peripheral.yaml.bak diff --git a/applications/disturb2/designs/disturb2_unb2b_station/disturb2_unb2b_station.fpga.yaml.bak b/applications/disturb2/designs/disturb2_unb2b_station/disturb2_unb2b_station.fpga.yaml.bak deleted file mode 100644 index 2efc861652..0000000000 --- a/applications/disturb2/designs/disturb2_unb2b_station/disturb2_unb2b_station.fpga.yaml.bak +++ /dev/null @@ -1,500 +0,0 @@ -schema_name: args -schema_version: 1.0 -schema_type: fpga - -hdl_library_name: disturb2_unb2b_station -fpga_name: disturb2_unb2b_station -fpga_description: "FPGA design disturb2_unb2b_station" -parameters: - - { name: c_N_pol_bf, value: 2 } # NOTE: define c_N_pol_bf before c_N_pol, to avoid that c_N_pol_bf gets substituted by 2_bf - - { name: c_N_pol, value: 2 } - - { name: c_N_beamsets, value: 2 } - - { name: c_N_sub, value: 512 } - - { name: c_N_fft, value: 1024 } - - { name: c_N_pn_lb, value: 16 } - - { name: c_S_pn, value: 12 } - - { name: c_Q_fft, value: 2 } - - { name: c_P_sq, value: 1 + c_N_pn_lb // 2 } # = 1 + 16 // 2 = 9, on revision xsub_one only first X_sq cell is used - - { name: c_X_sq, value: c_S_pn * c_S_pn } # = 144 - - { name: c_N_crosslets, value: 7 } - - { name: c_N_taps, value: 16 } - - { name: c_W_adc_jesd, value: 16 } - - { name: c_W_adc, value: 14 } - - { name: c_V_sample_delay, value: 4096 } - - { name: c_V_si_db_large, value: 131072 } - - { name: c_V_si_db, value: 1024 } - - { name: c_V_si_histogram, value: 512 } - - { name: c_W_fir_coef, value: 16 } - - { name: c_W_subband, value: 18 } - - { name: c_P_pfb, value: c_S_pn / c_Q_fft } # = 6 - - { name: c_A_pn, value: c_S_pn / c_N_pol } # = 6 - - { name: c_S_sub_bf, value: 488 } - - { name: c_f_adc_MHz, value: 200 } - - { name: c_W_sub_weight, value: 16 } - - { name: c_W_bf_weight, value: 16 } - - { name: c_W_beamlet_scale, value: 16 } - - { name: c_W_beamlet_resolution, value: 0 - 15 } # EK: FIXME: support passing on negative values, workaround use 0 - positive - - { name: c_W_beamlet, value: 8 } - - { name: c_stat_data_sz, value: 2 } - - { name: c_nof_clk_per_pps, value: c_f_adc_MHz * 10**6 } # = 200000000 - - { name: c_lane_nof_rx_monitors, value: 16 } # per lane - - { name: c_lane_nof_tx_monitors, value: 16 } # per lane - - { name: c_lane_nof_err_counts, value: 8 } # per lane - - { name: c_ring_nof_mac, value: 3 } # 1 TX/RX for RING0 + 1 TX/RX for RING1 + 1 TX/RX for QSFP0 - -peripherals: - ############################################################################# - # Factory / minimal (see ctrl_unb2b_board.vhd) - ############################################################################# - - peripheral_name: unb2b_board/system_info - lock_base_address: 0x10000 - mm_port_names: - - ROM_SYSTEM_INFO - - PIO_SYSTEM_INFO - - - peripheral_name: unb2b_board/wdi - mm_port_names: - - REG_WDI - - - peripheral_name: unb2b_board/unb2_fpga_sens - mm_port_names: - - REG_FPGA_TEMP_SENS - - REG_FPGA_VOLTAGE_SENS - - - peripheral_name: unb2b_board/ram_scrap - mm_port_names: - - RAM_SCRAP - - - peripheral_name: eth/eth - mm_port_names: - - AVS_ETH_0_TSE - - AVS_ETH_0_REG - - AVS_ETH_0_RAM - - - peripheral_name: ppsh/ppsh - mm_port_names: - - PIO_PPS - - - peripheral_name: epcs/epcs - parameter_overrides: - - { name: "g_epcs_addr_w", value: 32 } - mm_port_names: - - REG_EPCS - - - peripheral_name: dp/dpmm - mm_port_names: - - REG_DPMM_CTRL - - REG_DPMM_DATA - - - peripheral_name: dp/mmdp - mm_port_names: - - REG_MMDP_CTRL - - REG_MMDP_DATA - - - peripheral_name: remu/remu - parameter_overrides: - - { name: g_data_w, value: 32 } - mm_port_names: - - REG_REMU - - ############################################################################# - # SDP Info - ############################################################################# - - - peripheral_name: disturb/disturb_info - mm_port_names: - - REG_SDP_INFO - - ############################################################################# - # Ring Info - ############################################################################# - - - peripheral_name: ring/ring_info - mm_port_names: - - REG_RING_INFO - - ############################################################################# - # AIT = ADC Input and Timing (see node_adc_input_and_timing.vhd) - ############################################################################# - - - peripheral_name: tech_jesd204b/jesd_ctrl - mm_port_names: - - PIO_JESD_CTRL - - - peripheral_name: tech_jesd204b/jesd204b_arria10 - parameter_overrides: - - { name: g_nof_streams, value: c_S_pn } - mm_port_names: - - JESD204B - - - peripheral_name: dp/dp_shiftram - parameter_overrides: - - { name: g_nof_streams, value: c_S_pn } - - { name: g_nof_words, value: c_V_sample_delay } - - { name: g_data_w, value: c_W_adc_jesd } - mm_port_names: - - REG_DP_SHIFTRAM - - - peripheral_name: dp/dp_bsn_source_v2 - parameter_overrides: - - { name: g_nof_clk_per_sync, value: c_nof_clk_per_pps } - - { name: g_block_size, value: c_N_fft } - - { name: g_bsn_time_offset_w, value: ceil_log2(c_N_fft) } - mm_port_names: - - REG_BSN_SOURCE_V2 - - - peripheral_name: dp/dp_bsn_scheduler - mm_port_names: - - REG_BSN_SCHEDULER - - - peripheral_name: dp/dp_bsn_monitor - peripheral_group: input - mm_port_names: - - REG_BSN_MONITOR_INPUT - - - peripheral_name: diag/diag_wg_wideband - parameter_overrides: - - { name: g_nof_streams, value: c_S_pn } - mm_port_names: - - REG_WG - - RAM_WG - - - peripheral_name: st/st_histogram - parameter_overrides: - - { name: g_nof_instances, value: c_S_pn } - - { name: g_nof_bins, value: c_V_si_histogram } - - { name: g_nof_data_per_sync, value: c_nof_clk_per_pps} - mm_port_names: - - RAM_ST_HISTOGRAM - - - peripheral_name: aduh/aduh_mon_dc_power - parameter_overrides: - - { name: g_nof_streams, value: c_S_pn } - mm_port_names: - - REG_ADUH_MONITOR - - # Commented RAM_ADUH_MON, because use RAM_DIAG_DATA_BUF_BSN instead - #- peripheral_name: aduh/aduh_mon_data_buffer - # parameter_overrides: - # - { name: g_nof_streams, value: c_S_pn } - # - { name: g_symbol_w, value: c_W_adc_jesd } - # - { name: g_nof_symbols_per_data, value: 1 } - # - { name: g_buffer_nof_symbols, value: 512 } - # - { name: g_buffer_use_sync, value: True } - # mm_port_names: - # - RAM_ADUH_MON - - - peripheral_name: diag/diag_data_buffer - peripheral_group: bsn - parameter_overrides: - - { name: g_nof_streams, value: c_S_pn } - - { name: g_data_w, value: c_W_adc_jesd } - - { name: g_nof_data, value: c_V_si_db } - mm_port_names: - - REG_DIAG_DATA_BUFFER_BSN - - RAM_DIAG_DATA_BUFFER_BSN - - ############################################################################# - # Fsub = Subband Filterbank (from node_disturb_filterbank.vhd) - ############################################################################# - - - peripheral_name: si/si - mm_port_names: - - REG_SI - - - peripheral_name: filter/fil_ppf_w - parameter_overrides: - - { name: g_fil_ppf.wb_factor, value: 1 } # process at sample rate (so no parallel wideband factor) - - { name: g_fil_ppf.nof_chan, value: 0 } # process at sample rate (so no serial time multiplexing) - - { name: g_fil_ppf.nof_bands, value: c_N_fft } - - { name: g_fil_ppf.nof_taps, value: c_N_taps } - - { name: g_fil_ppf.nof_streams, value: 1 } - - { name: g_fil_ppf.coef_dat_w, value: c_W_fir_coef } - mm_port_names: - - RAM_FIL_COEFS - - - peripheral_name: disturb/disturb_subband_equalizer - mm_port_names: - - RAM_EQUALIZER_GAINS - - - peripheral_name: dp/dp_selector - mm_port_names: - - REG_DP_SELECTOR # input_select = 0 for weighted subbands, input_select = 1 for raw subbands - - - peripheral_name: st/st_sst_for_disturb - mm_port_names: - - RAM_ST_SST - - - peripheral_name: common/common_variable_delay - peripheral_group: sst - mm_port_names: - - REG_STAT_ENABLE_SST - - - peripheral_name: disturb/disturb_statistics_offload_hdr_dat_sst - peripheral_group: sst - mm_port_names: - - REG_STAT_HDR_DAT_SST - - - peripheral_name: dp/dp_bsn_monitor_v2 - peripheral_group: sst_udp - parameter_overrides: - - { name: g_nof_streams, value: 1 } - mm_port_names: - - REG_BSN_MONITOR_V2_SST_OFFLOAD - - ############################################################################# - # Xsub = Subband Correlator (from node_disturb_correlator.vhd) - ############################################################################# - - - peripheral_name: dp/dp_bsn_sync_scheduler - peripheral_group: xsub - mm_port_names: - - REG_BSN_SYNC_SCHEDULER_XSUB - - - peripheral_name: st/st_xst_for_disturb - parameter_overrides: - - { name: g_nof_streams, value: c_P_sq } - - { name: g_nof_crosslets, value: c_N_crosslets } - mm_port_names: - - RAM_ST_XSQ - - - peripheral_name: disturb/disturb_crosslets_subband_select - mm_port_names: - - REG_CROSSLETS_INFO - - - peripheral_name: disturb/disturb_nof_crosslets - mm_port_names: - - REG_NOF_CROSSLETS - - - peripheral_name: common/common_variable_delay - peripheral_group: xst - mm_port_names: - - REG_STAT_ENABLE_XST - - - peripheral_name: disturb/disturb_statistics_offload_hdr_dat_xst - peripheral_group: xst - mm_port_names: - - REG_STAT_HDR_DAT_XST - - - peripheral_name: dp/dp_bsn_align_v2 - peripheral_group: xsub - parameter_overrides: - - { name: g_nof_streams, value: c_P_sq } - mm_port_names: - - REG_BSN_ALIGN_V2_XSUB - - - peripheral_name: dp/dp_bsn_monitor_v2 - peripheral_group: rx_align_xsub - parameter_overrides: - - { name: g_nof_streams, value: c_P_sq } - mm_port_names: - - REG_BSN_MONITOR_V2_RX_ALIGN_XSUB - - - peripheral_name: dp/dp_bsn_monitor_v2 - peripheral_group: aligned_xsub - parameter_overrides: - - { name: g_nof_streams, value: 1 } - mm_port_names: - - REG_BSN_MONITOR_V2_ALIGNED_XSUB - - - peripheral_name: dp/dp_bsn_monitor_v2 - peripheral_group: xst_udp - parameter_overrides: - - { name: g_nof_streams, value: 1 } - mm_port_names: - - REG_BSN_MONITOR_V2_XST_OFFLOAD - - - peripheral_name: ring/ring_lane_info - peripheral_group: xsub - mm_port_names: - - REG_RING_LANE_INFO_XST - - - peripheral_name: dp/dp_bsn_monitor_v2 - peripheral_group: ring_rx - parameter_overrides: - - { name: g_nof_streams, value: c_lane_nof_rx_monitors } - mm_port_names: - - REG_BSN_MONITOR_V2_RING_RX_XST - - - peripheral_name: dp/dp_bsn_monitor_v2 - peripheral_group: ring_tx - parameter_overrides: - - { name: g_nof_streams, value: c_lane_nof_tx_monitors } - mm_port_names: - - REG_BSN_MONITOR_V2_RING_TX_XST - - - peripheral_name: dp/dp_block_validate_err - parameter_overrides: - - { name: g_nof_err_counts, value: c_lane_nof_err_counts } - mm_port_names: - - REG_DP_BLOCK_VALIDATE_ERR_XST - - - peripheral_name: dp/dp_block_validate_bsn_at_sync - mm_port_names: - - REG_DP_BLOCK_VALIDATE_BSN_AT_SYNC_XST - - - peripheral_name: tr_10GbE/tr_10GbE_unb2legacy # For ring interface - parameter_overrides: - - { name: g_nof_macs, value: c_ring_nof_mac } - mm_port_names: - - REG_TR_10GBE_MAC - - - peripheral_name: tr_10GbE/tr_10GbE_eth10g # For ring interface - parameter_overrides: - - { name: g_nof_macs, value: c_ring_nof_mac } - mm_port_names: - - REG_TR_10GBE_ETH10G - - ############################################################################# - # BF = Beamformer (from node_disturb_beamformer.vhd) - ############################################################################# - - - peripheral_name: reorder/reorder_col_wide - number_of_peripherals: c_N_beamsets - peripheral_span: ceil_pow2(c_P_pfb) * ceil_pow2(c_S_sub_bf * c_Q_fft) * MM_BUS_SIZE # number_of_ports = c_P_pfb, mm_port_span = ceil_pow2(c_S_sub_bf * c_Q_fft) words - parameter_overrides: - - { name: g_wb_factor, value: c_P_pfb } - - { name: g_nof_ch_in, value: c_N_sub * c_Q_fft } - - { name: g_nof_ch_sel, value: c_S_sub_bf * c_Q_fft } - mm_port_names: - - RAM_SS_SS_WIDE - - - peripheral_name: disturb/disturb_bf_weights - number_of_peripherals: c_N_beamsets - peripheral_span: ceil_pow2(c_N_pol_bf * c_P_pfb) * ceil_pow2(c_Q_fft * c_S_sub_bf) * MM_BUS_SIZE # number_of_ports = c_N_pol_bf * c_P_pfb, mm_port_span = ceil_pow2(c_Q_fft * c_S_sub_bf) words - mm_port_names: - - RAM_BF_WEIGHTS - - - peripheral_name: dp/dp_bsn_align_v2 - peripheral_group: bf - number_of_peripherals: c_N_beamsets - parameter_overrides: - - { name: g_nof_streams, value: 2 } - mm_port_names: - - REG_BSN_ALIGN_V2_BF - - - peripheral_name: dp/dp_bsn_monitor_v2 - peripheral_group: rx_align_bf - number_of_peripherals: c_N_beamsets - parameter_overrides: - - { name: g_nof_streams, value: 2 } - mm_port_names: - - REG_BSN_MONITOR_V2_RX_ALIGN_BF - - - peripheral_name: dp/dp_bsn_monitor_v2 - peripheral_group: aligned_bf - number_of_peripherals: c_N_beamsets - parameter_overrides: - - { name: g_nof_streams, value: 1 } - mm_port_names: - - REG_BSN_MONITOR_V2_ALIGNED_BF - - - peripheral_name: ring/ring_lane_info - peripheral_group: bf - number_of_peripherals: c_N_beamsets - mm_port_names: - - REG_RING_LANE_INFO_BF - - - peripheral_name: dp/dp_bsn_monitor_v2 - peripheral_group: ring_rx_bf - number_of_peripherals: c_N_beamsets - parameter_overrides: - - { name: g_nof_streams, value: c_lane_nof_rx_monitors } - mm_port_names: - - REG_BSN_MONITOR_V2_RING_RX_BF - - - peripheral_name: dp/dp_bsn_monitor_v2 - peripheral_group: ring_tx_bf - number_of_peripherals: c_N_beamsets - parameter_overrides: - - { name: g_nof_streams, value: c_lane_nof_tx_monitors } - mm_port_names: - - REG_BSN_MONITOR_V2_RING_TX_BF - - - peripheral_name: dp/dp_block_validate_err - peripheral_group: bf - number_of_peripherals: c_N_beamsets - parameter_overrides: - - { name: g_nof_err_counts, value: c_lane_nof_err_counts } - mm_port_names: - - REG_DP_BLOCK_VALIDATE_ERR_BF - - - peripheral_name: dp/dp_block_validate_bsn_at_sync - peripheral_group: bf - number_of_peripherals: c_N_beamsets - mm_port_names: - - REG_DP_BLOCK_VALIDATE_BSN_AT_SYNC_BF - - - peripheral_name: disturb/disturb_bf_scale - number_of_peripherals: c_N_beamsets - peripheral_span: 2 * MM_BUS_SIZE # number_of_ports = 1, mm_port_span = 2 words - parameter_overrides: - - { name: g_gain_w, value: c_W_beamlet_scale } - - { name: g_lsb_w, value: 0 - c_W_beamlet_resolution} - mm_port_names: - - REG_BF_SCALE - - - peripheral_name: disturb/disturb_beamformer_output_hdr_dat - number_of_peripherals: c_N_beamsets - peripheral_span: 64 * MM_BUS_SIZE # number_of_ports = 1, mm_port_span = 64 words - mm_port_names: - - REG_HDR_DAT - - - peripheral_name: dp/dp_xonoff - number_of_peripherals: c_N_beamsets - peripheral_span: 2 * MM_BUS_SIZE # number_of_ports = 1, mm_port_span = 2 words - parameter_overrides: - - { name: g_nof_streams, value: 1 } - - { name: g_combine_streams, value: False } - mm_port_names: - - REG_DP_XONOFF - - - peripheral_name: st/st_bst_for_disturb - number_of_peripherals: c_N_beamsets - peripheral_span: ceil_pow2(c_stat_data_sz * c_S_sub_bf * c_N_pol_bf) * MM_BUS_SIZE # number_of_ports = 1, mm_port_span = ceil_pow2(c_stat_data_sz * c_S_sub_bf * c_N_pol_bf) words - mm_port_names: - - RAM_ST_BST - - - peripheral_name: common/common_variable_delay - peripheral_group: bst - number_of_peripherals: c_N_beamsets - peripheral_span: 2 * MM_BUS_SIZE # number_of_ports = 1, mm_port_span = 2 words - mm_port_names: - - REG_STAT_ENABLE_BST - - - peripheral_name: disturb/disturb_statistics_offload_hdr_dat_bst - peripheral_group: bst - number_of_peripherals: c_N_beamsets - peripheral_span: 64 * MM_BUS_SIZE # number_of_ports = 1, mm_port_span = 64 words - mm_port_names: - - REG_STAT_HDR_DAT_BST - - - peripheral_name: dp/dp_bsn_monitor_v2 - peripheral_group: bst_udp - number_of_peripherals: c_N_beamsets - parameter_overrides: - - { name: g_nof_streams, value: 1 } - mm_port_names: - - REG_BSN_MONITOR_V2_BST_OFFLOAD - - - peripheral_name: dp/dp_bsn_monitor_v2 - peripheral_group: beamlet_output - number_of_peripherals: c_N_beamsets - parameter_overrides: - - { name: g_nof_streams, value: 1 } - mm_port_names: - - REG_BSN_MONITOR_V2_BEAMLET_OUTPUT - - - peripheral_name: nw_10GbE/nw_10GbE_unb2legacy # For beamlet output - peripheral_group: beamlet_output - parameter_overrides: - - { name: g_nof_macs, value: 1 } - mm_port_names: - - REG_NW_10GBE_MAC - - - peripheral_name: nw_10GbE/nw_10GbE_eth10g # For beamlet output - peripheral_group: beamlet_output - parameter_overrides: - - { name: g_nof_macs, value: 1 } - mm_port_names: - - REG_NW_10GBE_ETH10G diff --git a/applications/disturb2/libraries/disturb/disturb.peripheral.yaml.bak b/applications/disturb2/libraries/disturb/disturb.peripheral.yaml.bak deleted file mode 100644 index 93f17e9ce7..0000000000 --- a/applications/disturb2/libraries/disturb/disturb.peripheral.yaml.bak +++ /dev/null @@ -1,461 +0,0 @@ -schema_name: args -schema_version: 1.0 -schema_type: peripheral - -hdl_library_name: disturb -hdl_library_description: "Station Digital Processor (DISTURB) for LOFAR2.0" - -peripherals: - - peripheral_name: disturb_info # pi_disturb_info.py - peripheral_description: "DISTURB info." - mm_ports: - # MM port for disturb_info.vhd - - mm_port_name: REG_DISTURB_INFO - mm_port_type: REG - mm_port_span: 16 * MM_BUS_SIZE - mm_port_description: | - "The DISTURB info contains central DISTURB information. The station_id applies to the entire station. - The other info fields apply per antenna band (low band or high band). An FPGA node only - participates in one band." - fields: - - - { field_name: station_id, mm_width: 16, access_mode: RW, address_offset: 0x1C } - - - { field_name: antenna_band_index, mm_width: 1, access_mode: RW, address_offset: 0x18 } - - - { field_name: observation_id, mm_width: 32, access_mode: RW, address_offset: 0x14 } - - - { field_name: nyquist_zone_index, mm_width: 2, access_mode: RW, address_offset: 0x10 } - - - { field_name: f_adc, mm_width: 1, access_mode: RO, address_offset: 0xC } - - - { field_name: fsub_type, mm_width: 1, access_mode: RO, address_offset: 0x8 } - - - { field_name: beam_repositioning_flag, mm_width: 1, access_mode: RW, address_offset: 0x4 } - - - { field_name: block_period, mm_width: 16, access_mode: RO, address_offset: 0x0 } - - - - peripheral_name: disturb_crosslets_subband_select # pi_disturb_crosslets_info.py - peripheral_description: "DISTURB crosslets info." - mm_ports: - # MM port for disturb_info.vhd - - mm_port_name: REG_CROSSLETS_INFO - mm_port_type: REG - mm_port_span: 16 * MM_BUS_SIZE - mm_port_description: | - "The DISTURB crosslets info contains the step size and 15 offsets, that are used to select a new - crosslet subband for every integration interval" - fields: - - - { field_name: step, access_mode: RW, address_offset: 0x3C } - - - field_name: offset - number_of_fields: 15 - address_offset: 0x0 - - - peripheral_name: disturb_nof_crosslets # pi_disturb_nof_crosslets.py - peripheral_description: "DISTURB nof crosslets." - mm_ports: - - mm_port_name: REG_NOF_CROSSLETS - mm_port_type: REG - mm_port_span: 2 * MM_BUS_SIZE - mm_port_description: | - "The DISTURB nof crosslets contains the number of crosslets that are being sent out the UDP offload - where 1 <= nof_crosslets <= N_crosslets_max" - fields: - - - { field_name: nof_crosslets, access_mode: RW, address_offset: 0x0 } - - - { field_name: unused, access_mode: RW, address_offset: 0x4 } - - - peripheral_name: disturb_subband_equalizer # pi_disturb_subband_equalizer.py - peripheral_description: "DISTURB Subband equalizer coefficients." - parameters: - # Parameters of pi_disturb_subband_equalizer.py, fixed in disturb_subband_equalizer.vhd / disturb_pkg.vhd - - { name: P_pfb, value: 6 } # P_pfb = S_pn / Q_fft = 12 / 2 = 6 - - { name: Q_fft, value: 2 } - - { name: N_sub, value: 512 } - mm_ports: - # MM port for disturb_subband_equalizer.vhd - - mm_port_name: RAM_EQUALIZER_GAINS - mm_port_type: RAM - mm_port_span: ceil_pow2(Q_fft * N_sub) * MM_BUS_SIZE - mm_port_description: | - "The subband weigths are stored in P_pfb = S_pn / Q_fft = 6 blocks of - Q_fft * N_sub = 2 * 512 = 1024 complex coefficients as: - - (cint16)subband_weights[S_pn/Q_fft]_[Q_fft][N_sub] - - where S_pn = 12, Q_fft = 2 and N_sub = 512 are defined in disturb_pkg.vhd." - number_of_mm_ports: P_pfb - fields: - - - field_name: coef - field_description: | - "Complex coefficient to calibrate the gain and phase per subband. Packed as imaginary in high part, - real in low part of mm_width = N_complex * W_sub_weight = 2 * 16 = 32 bit." - number_of_fields: Q_fft * N_sub # = 1024 = 2 signal inputs * 512 subbands - address_offset: 0x0 - mm_width: 32 # = N_complex * W_sub_weight - radix: cint16_ir - - - - peripheral_name: disturb_bf_weights # pi_disturb_bf_weights.py - peripheral_description: "DISTURB Beamformer weights (= beamlet weights)." - parameters: - # Parameters of pi_disturb_bf_weights.py, fixed in disturb_bf_weights.vhd / disturb_pkg.vhd - - { name: N_pol_bf, value: 2 } - - { name: P_pfb, value: 6 } # P_pfb = S_pn / Q_fft = 12 / 2 = 6 - - { name: Q_fft, value: 2 } - - { name: S_sub_bf, value: 488 } - mm_ports: - # MM port for disturb_beamformer_local.vhd / disturb_bf_weights.vhd / mms_dp_gain_serial_arr.vhd - - mm_port_name: RAM_BF_WEIGHTS - mm_port_type: RAM - mm_port_span: ceil_pow2(Q_fft * S_sub_bf) * MM_BUS_SIZE - mm_port_description: | - "The beamlet weigths are stored in N_pol_bf * P_pfb = 2 * 6 = 12 instances, where - P_pfb = S_pn / Q_fft = 6. Per instance there is a block of Q_fft * S_sub_bf = - 2 * 488 = 976 complex BF weights. The N_pol_bf = 2 represents the two beamformer - polarizations, to distinguish these from the N_pol = 2 antenna polarizations. The - beamlet weigths for S_pn = P_pfb * Q_fft = 12 signal inputs are therefore defined by: - - (cint16)bf_weights[N_pol_bf][P_pfb]_[Q_fft][S_sub_bf] - - where N_pol_bf = 2, P_pfb = 6 and Q_fft = 2 and S_sub_bf = 488, defined in disturb_pkg.vhd. - - The pairs of Q_fft signal inputs that are multiplexed per block are mapped to the N_pol = 2 - polarizations of an antenna. Therefore A_pn = P_pfb = 6 is the number dual polarization - antennas per peripheral. The beamlet weigths for S_pn = A_pn * N_pol = 12 signal inputs - are therefore defined by: - - (cint16)bf_weights[N_pol_bf][A_pn]_[N_pol][S_sub_bf] - - where N_pol_bf = 2, A_pn = 6 and N_pol = 2 and S_sub_bf = 488, defined in disturb_pkg.vhd. - - The BF weights can implement the full 2x2 Jones matrix for weighting and adding the - signal input polarizations [x, y] per dual polarization antenna. The polarization index - mapping is index 0 = X and index 1 = Y. The co-polarization BF weights (XX, YY) are set - when index of N_pol_bf and index of N_pol are the same. The cross-polarization BF - weights (XY, YX) are set when index of N_pol_bf and index of N_pol are different. If - no cross-polarization weighting is needed, then these weights can be kept 0." - number_of_mm_ports: N_pol_bf * P_pfb # = 12 = 2 beam polarizations * 6 complex PFB units - fields: - - - field_name: coef - field_description: | - "Complex weight per subband. Packed as imaginary in high part, real in low part - of mm_width = N_complex * W_bf_weight = 2 * 16 = 32 bit." - number_of_fields: Q_fft * S_sub_bf # = 976 = 2 signal inputs * 488 beamlets - address_offset: 0x0 - mm_width: 32 # = N_complex * W_bf_weight - radix: cint16_ir - - - - peripheral_name: disturb_bf_scale # pi_disturb_bf_scale.py - peripheral_description: "DISTURB BF beamlet data output scaling and requantization." - parameters: - # Parameters fixed in node_disturb_beamformer.vhd / mms_dp_scale.vhd / disturb_pkg.vhd - - { name: g_gain_w, value: 16 } - - { name: g_lsb_w, value: 15 } - mm_ports: - # MM port for node_disturb_beamformer.vhd / mms_dp_scale.vhd / mms_dp_gain.vhd / mms_dp_gain_arr.vhd - - mm_port_name: REG_BF_SCALE - mm_port_type: REG - mm_port_span: 2 * MM_BUS_SIZE - mm_port_description: | - "The beamlet scale function scales the beamlet sum with a real scale factor and then - requantizes the result to beamlet data output with less bits. - The beamlet scale factor has g_gain_w bits and the value 2**g_lsb_w represents a gain of 1. - For example for g_gain_w = 16, g_lsb_w = 15, a beamlet sum of 18 bits and beamlet data - output of 8 bits, a scale value of: - . 2**g_lsb_w = 2**15 selects the lowest 8 bits of the beamlet sum and clips the highest - 10 bits, - . 2**11 rounds the lowest 4 bits, selects the next 8 bits of the beamlet sum and clips - the highest 6 bits, - . 2**5 rounds the lowest 10 bits and selects the highest 8 bits of the beamlet sum." - fields: - - - field_name: scale - field_description: "" - number_of_fields: 1 - address_offset: 0x0 - mm_width: g_gain_w - #user_width: g_gain_w # EK TODO: check parameter passing to user_width - radix: uint32 # scale factor is unsigned value - resolution_w: 0 - g_lsb_w - - - field_name: unused - field_description: "Not used." - address_offset: 0x4 - - - - peripheral_name: disturb_beamformer_output_hdr_dat # pi_dp_offload_tx_hdr_dat_lofar2_beamformer_output.py - peripheral_description: "DISTURB BF beamlet data output header." - mm_ports: - # MM port for disturb_beamformer_output.vhd / dp_offload_tx_v3.vhd - - mm_port_name: REG_DP_OFFLOAD_TX_HDR_DAT - mm_port_type: REG - mm_port_span: 64 * MM_BUS_SIZE - mm_port_description: | - "The ETH/IP/UDP/application header fields for the beamlet data output offload UDP packets. - - The header fields are described in ICD STAT-CEP [1]. - - https://plm.astron.nl/polarion/#/project/LOFAR2System/wiki/L1%20Interface%20Control%20Documents/STAT%20to%20CEP%20ICD - - From tb_dp_offload_tx_v3.vhd simulation it follows that: - . the header fields are stored in reversed address order due to that the array in VHDL has - range (h downto 0) where the first header field (eth_destination_mac) is at index h. - . the RO fields are filled in by the logic, when the packet header is transmitted, however - the read value does not still represents the MM write value, not the transmitted value. - . dp_bsn with user_width = 64 is stored as: - word byte - addr addr bits - 0 0x0 [31:0] = dp_bsn[31:0] - 1 0x4 [31:0] = dp_bsn[63:32] - . eth_dst_mac with user_width = 48 is stored as: - word byte - addr addr bits - 21 0x84 [31:0] = eth_dst_mac[31:0] - 22 0x88 [15:0] = eth_dst_mac[47:32] - " - fields: - # eth field group - - - { field_name: eth_destination_mac, mm_width: 32, user_width: 48, radix: uint64, access_mode: RW, address_offset: 0xA0 } - - - { field_name: eth_source_mac, mm_width: 32, user_width: 48, radix: uint64, access_mode: RO, address_offset: 0x98 } - - - { field_name: eth_type, mm_width: 16, access_mode: RO, address_offset: 0x94 } - # ip field group - - - { field_name: ip_version, mm_width: 4, access_mode: RW, address_offset: 0x90 } - - - { field_name: ip_header_length, mm_width: 4, access_mode: RW, address_offset: 0x8C } - - - { field_name: ip_services, mm_width: 8, access_mode: RW, address_offset: 0x88 } - - - { field_name: ip_total_length, mm_width: 16, access_mode: RW, address_offset: 0x84 } - - - { field_name: ip_identification, mm_width: 16, access_mode: RW, address_offset: 0x80 } - - - { field_name: ip_flags, mm_width: 3, access_mode: RW, address_offset: 0x7C } - - - { field_name: ip_fragment_offset, mm_width: 13, access_mode: RW, address_offset: 0x78 } - - - { field_name: ip_time_to_live, mm_width: 8, access_mode: RW, address_offset: 0x74 } - - - { field_name: ip_protocol, mm_width: 8, access_mode: RW, address_offset: 0x70 } - - - { field_name: ip_header_checksum, mm_width: 16, access_mode: RW, address_offset: 0x6C } - - - { field_name: ip_source_address, mm_width: 32, access_mode: RW, address_offset: 0x68 } - - - { field_name: ip_destination_address, mm_width: 32, access_mode: RW, address_offset: 0x64 } - # udp field group - - - { field_name: udp_source_port, mm_width: 16, access_mode: RW, address_offset: 0x60 } - - - { field_name: udp_destination_port, mm_width: 16, access_mode: RW, address_offset: 0x5C } - - - { field_name: udp_length, mm_width: 16, access_mode: RW, address_offset: 0x58 } - - - { field_name: udp_checksum, mm_width: 16, access_mode: RW, address_offset: 0x54 } - # application field group - - - { field_name: disturb_marker, mm_width: 8, access_mode: RO, address_offset: 0x50 } - - - { field_name: disturb_version_id, mm_width: 8, access_mode: RO, address_offset: 0x4C } - - - { field_name: disturb_observation_id, mm_width: 32, access_mode: RW, address_offset: 0x48 } - - - { field_name: disturb_station_id, mm_width: 16, access_mode: RW, address_offset: 0x44 } - - - { field_name: disturb_source_info_antenna_band_index, mm_width: 1, bit_offset: 15, access_mode: RW, address_offset: 0x40 } - - - { field_name: disturb_source_info_nyquist_zone_index, mm_width: 2, bit_offset: 13, access_mode: RW, address_offset: 0x3C } - - - { field_name: disturb_source_info_f_adc, mm_width: 1, bit_offset: 12, access_mode: RW, address_offset: 0x38 } - - - { field_name: disturb_source_info_fsub_type, mm_width: 1, bit_offset: 11, access_mode: RW, address_offset: 0x34 } - - - { field_name: disturb_source_info_payload_error, mm_width: 1, bit_offset: 10, access_mode: RW, address_offset: 0x30 } - - - { field_name: disturb_source_info_repositioning_flag, mm_width: 1, bit_offset: 9, access_mode: RW, address_offset: 0x2C } - - - { field_name: disturb_source_info_beamlet_width, mm_width: 3, bit_offset: 5, access_mode: RW, address_offset: 0x28 } - - - { field_name: disturb_source_info_gn_index, mm_width: 5, bit_offset: 0, access_mode: RW, address_offset: 0x24 } - - - - { field_name: disturb_reserved, mm_width: 32, user_width: 40, radix: uint64, access_mode: RW, address_offset: 0x1C } - - - { field_name: disturb_beamlet_scale, mm_width: 16, access_mode: RW, address_offset: 0x18 } - - - { field_name: disturb_beamlet_index, mm_width: 16, access_mode: RW, address_offset: 0x14 } - - - { field_name: disturb_nof_blocks_per_packet, mm_width: 8, access_mode: RW, address_offset: 0x10 } - - - { field_name: disturb_nof_beamlets_per_block, mm_width: 16, access_mode: RW, address_offset: 0xC } - - - { field_name: disturb_block_period, mm_width: 16, access_mode: RW, address_offset: 0x8 } - - - { field_name: BSN, mm_width: 32, user_width: 64, radix: uint64, access_mode: RW, address_offset: 0x0 } - - - - peripheral_name: disturb_statistics_offload_hdr_dat_sst # pi_dp_offload_tx_hdr_dat_lofar2_disturb_statistics_offload.py - peripheral_description: "DISTURB statistics offload header for the subband statistics (SST)." - mm_ports: - # MM port for disturb_statistics_offload.vhd / dp_offload_tx_v3.vhd - - mm_port_name: REG_DP_OFFLOAD_TX_HDR_DAT - mm_port_type: REG - mm_port_span: 64 * MM_BUS_SIZE - mm_port_description: | - "The ETH/IP/UDP/application header fields for the SST offload UDP packets. - - The Subband statistics (SST) are integrated auto power values of the subbands per signal input. - The SST specific settings are defined by data_id_sst. - - The statistics offload header fields are described in ICD SC-DISTURB [1]. - - [1] https://plm.astron.nl/polarion/#/project/LOFAR2System/wiki/L2%20Interface%20Control%20Documents/SC%20to%20DISTURB%20ICD - " - fields: - # eth field group - - - { field_name: word_align, mm_width: 16, access_mode: RW, address_offset: 0xAC } - - - { field_name: eth_destination_mac, mm_width: 32, user_width: 48, radix: uint64, access_mode: RW, address_offset: 0xA4 } - - - { field_name: eth_source_mac, mm_width: 32, user_width: 48, radix: uint64, access_mode: RO, address_offset: 0x9C } - - - { field_name: eth_type, mm_width: 16, access_mode: RO, address_offset: 0x98 } - # ip field group - - - { field_name: ip_version, mm_width: 4, access_mode: RW, address_offset: 0x94 } - - - { field_name: ip_header_length, mm_width: 4, access_mode: RW, address_offset: 0x90 } - - - { field_name: ip_services, mm_width: 8, access_mode: RW, address_offset: 0x8C } - - - { field_name: ip_total_length, mm_width: 16, access_mode: RW, address_offset: 0x88 } - - - { field_name: ip_identification, mm_width: 16, access_mode: RW, address_offset: 0x84 } - - - { field_name: ip_flags, mm_width: 3, access_mode: RW, address_offset: 0x80 } - - - { field_name: ip_fragment_offset, mm_width: 13, access_mode: RW, address_offset: 0x7C } - - - { field_name: ip_time_to_live, mm_width: 8, access_mode: RW, address_offset: 0x78 } - - - { field_name: ip_protocol, mm_width: 8, access_mode: RW, address_offset: 0x74 } - - - { field_name: ip_header_checksum, mm_width: 16, access_mode: RW, address_offset: 0x70 } - - - { field_name: ip_source_address, mm_width: 32, access_mode: RW, address_offset: 0x6C } - - - { field_name: ip_destination_address, mm_width: 32, access_mode: RW, address_offset: 0x68 } - # udp field group - - - { field_name: udp_source_port, mm_width: 16, access_mode: RW, address_offset: 0x64 } - - - { field_name: udp_destination_port, mm_width: 16, access_mode: RW, address_offset: 0x60 } - - - { field_name: udp_length, mm_width: 16, access_mode: RW, address_offset: 0x5C } - - - { field_name: udp_checksum, mm_width: 16, access_mode: RW, address_offset: 0x58 } - # application field group - - - { field_name: disturb_marker, mm_width: 8, access_mode: RO, address_offset: 0x54 } - - - { field_name: disturb_version_id, mm_width: 8, access_mode: RO, address_offset: 0x50 } - - - { field_name: disturb_observation_id, mm_width: 32, access_mode: RW, address_offset: 0x4C } - - - { field_name: disturb_station_id, mm_width: 16, access_mode: RW, address_offset: 0x48 } - - - { field_name: disturb_source_info_antenna_band_index, mm_width: 1, bit_offset: 15, access_mode: RW, address_offset: 0x44 } - - - { field_name: disturb_source_info_nyquist_zone_index, mm_width: 2, bit_offset: 13, access_mode: RW, address_offset: 0x40 } - - - { field_name: disturb_source_info_f_adc, mm_width: 1, bit_offset: 12, access_mode: RW, address_offset: 0x3C } - - - { field_name: disturb_source_info_fsub_type, mm_width: 1, bit_offset: 11, access_mode: RW, address_offset: 0x38 } - - - { field_name: disturb_source_info_payload_error, mm_width: 1, bit_offset: 10, access_mode: RW, address_offset: 0x34 } - - - { field_name: disturb_source_info_beam_repositioning_flag, mm_width: 1, bit_offset: 9, access_mode: RW, address_offset: 0x30 } - - - { field_name: disturb_source_info_weighted_subbands_flag, mm_width: 1, bit_offset: 8, access_mode: RW, address_offset: 0x2C } - - - { field_name: disturb_source_info_reserved, mm_width: 3, bit_offset: 5, access_mode: RW, address_offset: 0x28 } - - - { field_name: disturb_source_info_gn_index, mm_width: 5, bit_offset: 0, access_mode: RW, address_offset: 0x24 } - - - { field_name: disturb_reserved, mm_width: 8, access_mode: RW, address_offset: 0x20 } - - - { field_name: disturb_integration_interval, mm_width: 24, access_mode: RW, address_offset: 0x1C } - - - { field_name: disturb_data_id, mm_width: 32, access_mode: RW, address_offset: 0x18 } - - "disturb_data_id_sst": - - { field_name: reserved, mm_width: 24, bit_offset: 8, access_mode: RW, address_offset: 0x18 } - - { field_name: signal_input_index, mm_width: 8, bit_offset: 0, access_mode: RW, address_offset: 0x18 } - - - - { field_name: disturb_nof_signal_inputs, mm_width: 8, access_mode: RW, address_offset: 0x14 } - - - { field_name: disturb_nof_bytes_per_statistic, mm_width: 8, access_mode: RW, address_offset: 0x10 } - - - { field_name: disturb_nof_statistics_per_packet, mm_width: 16, access_mode: RW, address_offset: 0xC } - - - { field_name: disturb_block_period, mm_width: 16, access_mode: RW, address_offset: 0x8 } - - - { field_name: BSN, mm_width: 32, user_width: 64, radix: uint64, access_mode: RW, address_offset: 0x0 } - - - - peripheral_name: disturb_statistics_offload_hdr_dat_bst # pi_dp_offload_tx_hdr_dat_lofar2_disturb_statistics_offload.py - peripheral_description: "DISTURB statistics offload header for the beamlet statistics (BST)." - mm_ports: - # MM port for disturb_statistics_offload.vhd / dp_offload_tx_v3.vhd - - mm_port_name: REG_DP_OFFLOAD_TX_HDR_DAT - mm_port_type: REG - mm_port_span: 64 * MM_BUS_SIZE - mm_port_description: | - "The ETH/IP/UDP/application header fields for the BST offload UDP packets. - - The beamlet statistics (BST) are integrated auto power values of the beamlets per beamset - The BST specific settings are defined by data_id_bst. - - The statistics offload header fields are described in ICD SC-DISTURB [1]. - - [1] https://plm.astron.nl/polarion/#/project/LOFAR2System/wiki/L2%20Interface%20Control%20Documents/SC%20to%20DISTURB%20ICD - " - fields: - # eth field group - - - { field_name: word_align, mm_width: 16, access_mode: RW, address_offset: 0xAC } - - - { field_name: eth_destination_mac, mm_width: 32, user_width: 48, radix: uint64, access_mode: RW, address_offset: 0xA4 } - - - { field_name: eth_source_mac, mm_width: 32, user_width: 48, radix: uint64, access_mode: RO, address_offset: 0x9C } - - - { field_name: eth_type, mm_width: 16, access_mode: RO, address_offset: 0x98 } - # ip field group - - - { field_name: ip_version, mm_width: 4, access_mode: RW, address_offset: 0x94 } - - - { field_name: ip_header_length, mm_width: 4, access_mode: RW, address_offset: 0x90 } - - - { field_name: ip_services, mm_width: 8, access_mode: RW, address_offset: 0x8C } - - - { field_name: ip_total_length, mm_width: 16, access_mode: RW, address_offset: 0x88 } - - - { field_name: ip_identification, mm_width: 16, access_mode: RW, address_offset: 0x84 } - - - { field_name: ip_flags, mm_width: 3, access_mode: RW, address_offset: 0x80 } - - - { field_name: ip_fragment_offset, mm_width: 13, access_mode: RW, address_offset: 0x7C } - - - { field_name: ip_time_to_live, mm_width: 8, access_mode: RW, address_offset: 0x78 } - - - { field_name: ip_protocol, mm_width: 8, access_mode: RW, address_offset: 0x74 } - - - { field_name: ip_header_checksum, mm_width: 16, access_mode: RW, address_offset: 0x70 } - - - { field_name: ip_source_address, mm_width: 32, access_mode: RW, address_offset: 0x6C } - - - { field_name: ip_destination_address, mm_width: 32, access_mode: RW, address_offset: 0x68 } - # udp field group - - - { field_name: udp_source_port, mm_width: 16, access_mode: RW, address_offset: 0x64 } - - - { field_name: udp_destination_port, mm_width: 16, access_mode: RW, address_offset: 0x60 } - - - { field_name: udp_length, mm_width: 16, access_mode: RW, address_offset: 0x5C } - - - { field_name: udp_checksum, mm_width: 16, access_mode: RW, address_offset: 0x58 } - # application field group - - - { field_name: disturb_marker, mm_width: 8, access_mode: RO, address_offset: 0x54 } - - - { field_name: disturb_version_id, mm_width: 8, access_mode: RO, address_offset: 0x50 } - - - { field_name: disturb_observation_id, mm_width: 32, access_mode: RW, address_offset: 0x4C } - - - { field_name: disturb_station_id, mm_width: 16, access_mode: RW, address_offset: 0x48 } - - - { field_name: disturb_source_info_antenna_band_index, mm_width: 1, bit_offset: 15, access_mode: RW, address_offset: 0x44 } - - - { field_name: disturb_source_info_nyquist_zone_index, mm_width: 2, bit_offset: 13, access_mode: RW, address_offset: 0x40 } - - - { field_name: disturb_source_info_f_adc, mm_width: 1, bit_offset: 12, access_mode: RW, address_offset: 0x3C } - - - { field_name: disturb_source_info_fsub_type, mm_width: 1, bit_offset: 11, access_mode: RW, address_offset: 0x38 } - - - { field_name: disturb_source_info_payload_error, mm_width: 1, bit_offset: 10, access_mode: RW, address_offset: 0x34 } - - - { field_name: disturb_source_info_beam_repositioning_flag, mm_width: 1, bit_offset: 9, access_mode: RW, address_offset: 0x30 } - - - { field_name: disturb_source_info_weighted_subbands_flag, mm_width: 1, bit_offset: 8, access_mode: RW, address_offset: 0x2C } - - - { field_name: disturb_source_info_reserved, mm_width: 3, bit_offset: 5, access_mode: RW, address_offset: 0x28 } - - - { field_name: disturb_source_info_gn_index, mm_width: 5, bit_offset: 0, access_mode: RW, address_offset: 0x24 } - - - { field_name: disturb_reserved, mm_width: 8, access_mode: RW, address_offset: 0x20 } - - - { field_name: disturb_integration_interval, mm_width: 24, access_mode: RW, address_offset: 0x1C } - - - { field_name: disturb_data_id, mm_width: 32, access_mode: RW, address_offset: 0x18 } - - "disturb_data_id_bst": - - { field_name: reserved, mm_width: 16, bit_offset: 16, access_mode: RW, address_offset: 0x18 } - - { field_name: beamlet_index, mm_width: 16, bit_offset: 0, access_mode: RW, address_offset: 0x18 } - - - - { field_name: nof_signal_inputs, mm_width: 8, access_mode: RW, address_offset: 0x14 } - - - { field_name: nof_bytes_per_statistic, mm_width: 8, access_mode: RW, address_offset: 0x10 } - - - { field_name: nof_statistics_per_packet, mm_width: 16, access_mode: RW, address_offset: 0xC } - - - { field_name: block_period, mm_width: 16, access_mode: RW, address_offset: 0x8 } - - - { field_name: BSN, mm_width: 32, user_width: 64, radix: uint64, access_mode: RW, address_offset: 0x0 } - - - - peripheral_name: disturb_statistics_offload_hdr_dat_xst # pi_dp_offload_tx_hdr_dat_lofar2_disturb_statistics_offload.py - peripheral_description: "DISTURB statistics offload header for the cross-subband statistics (XST)." - mm_ports: - # MM port for disturb_statistics_offload.vhd / dp_offload_tx_v3.vhd - - mm_port_name: REG_DP_OFFLOAD_TX_HDR_DAT - mm_port_type: REG - mm_port_span: 64 * MM_BUS_SIZE - mm_port_description: | - "The ETH/IP/UDP/application header fields for the XST offload UDP packets. - - The crosslet statistics (XST) are integrated cross power values of the subbands from all - pairs of signal inputs per suband. - The XST specific settings are defined by data_id_xst. - - The statistics offload header fields are described in ICD SC-DISTURB [1]. - - [1] https://plm.astron.nl/polarion/#/project/LOFAR2System/wiki/L2%20Interface%20Control%20Documents/SC%20to%20DISTURB%20ICD - " - fields: - # eth field group - - - { field_name: word_align, mm_width: 16, access_mode: RW, address_offset: 0xAC } - - - { field_name: eth_destination_mac, mm_width: 32, user_width: 48, radix: uint64, access_mode: RW, address_offset: 0xA4 } - - - { field_name: eth_source_mac, mm_width: 32, user_width: 48, radix: uint64, access_mode: RO, address_offset: 0x9C } - - - { field_name: eth_type, mm_width: 16, access_mode: RO, address_offset: 0x98 } - # ip field group - - - { field_name: ip_version, mm_width: 4, access_mode: RW, address_offset: 0x94 } - - - { field_name: ip_header_length, mm_width: 4, access_mode: RW, address_offset: 0x90 } - - - { field_name: ip_services, mm_width: 8, access_mode: RW, address_offset: 0x8C } - - - { field_name: ip_total_length, mm_width: 16, access_mode: RW, address_offset: 0x88 } - - - { field_name: ip_identification, mm_width: 16, access_mode: RW, address_offset: 0x84 } - - - { field_name: ip_flags, mm_width: 3, access_mode: RW, address_offset: 0x80 } - - - { field_name: ip_fragment_offset, mm_width: 13, access_mode: RW, address_offset: 0x7C } - - - { field_name: ip_time_to_live, mm_width: 8, access_mode: RW, address_offset: 0x78 } - - - { field_name: ip_protocol, mm_width: 8, access_mode: RW, address_offset: 0x74 } - - - { field_name: ip_header_checksum, mm_width: 16, access_mode: RW, address_offset: 0x70 } - - - { field_name: ip_source_address, mm_width: 32, access_mode: RW, address_offset: 0x6C } - - - { field_name: ip_destination_address, mm_width: 32, access_mode: RW, address_offset: 0x68 } - # udp field group - - - { field_name: udp_source_port, mm_width: 16, access_mode: RW, address_offset: 0x64 } - - - { field_name: udp_destination_port, mm_width: 16, access_mode: RW, address_offset: 0x60 } - - - { field_name: udp_length, mm_width: 16, access_mode: RW, address_offset: 0x5C } - - - { field_name: udp_checksum, mm_width: 16, access_mode: RW, address_offset: 0x58 } - # application field group - - - { field_name: disturb_marker, mm_width: 8, access_mode: RO, address_offset: 0x54 } - - - { field_name: disturb_version_id, mm_width: 8, access_mode: RO, address_offset: 0x50 } - - - { field_name: disturb_observation_id, mm_width: 32, access_mode: RW, address_offset: 0x4C } - - - { field_name: disturb_station_id, mm_width: 16, access_mode: RW, address_offset: 0x48 } - - - { field_name: disturb_source_info_antenna_band_index, mm_width: 1, bit_offset: 15, access_mode: RW, address_offset: 0x44 } - - - { field_name: disturb_source_info_nyquist_zone_index, mm_width: 2, bit_offset: 13, access_mode: RW, address_offset: 0x40 } - - - { field_name: disturb_source_info_f_adc, mm_width: 1, bit_offset: 12, access_mode: RW, address_offset: 0x3C } - - - { field_name: disturb_source_info_fsub_type, mm_width: 1, bit_offset: 11, access_mode: RW, address_offset: 0x38 } - - - { field_name: disturb_source_info_payload_error, mm_width: 1, bit_offset: 10, access_mode: RW, address_offset: 0x34 } - - - { field_name: disturb_source_info_beam_repositioning_flag, mm_width: 1, bit_offset: 9, access_mode: RW, address_offset: 0x30 } - - - { field_name: disturb_source_info_weighted_subbands_flag, mm_width: 1, bit_offset: 8, access_mode: RW, address_offset: 0x2C } - - - { field_name: disturb_source_info_reserved, mm_width: 3, bit_offset: 5, access_mode: RW, address_offset: 0x28 } - - - { field_name: disturb_source_info_gn_index, mm_width: 5, bit_offset: 0, access_mode: RW, address_offset: 0x24 } - - - { field_name: disturb_reserved, mm_width: 8, access_mode: RW, address_offset: 0x20 } - - - { field_name: disturb_integration_interval, mm_width: 24, access_mode: RW, address_offset: 0x1C } - - - { field_name: disturb_data_id, mm_width: 32, access_mode: RW, address_offset: 0x18 } - - "disturb_data_id_xst": - - { field_name: reserved, mm_width: 7, bit_offset: 25, access_mode: RW, address_offset: 0x18 } - - { field_name: subband_index, mm_width: 9, bit_offset: 16, access_mode: RW, address_offset: 0x18 } - - { field_name: signal_input_A_index, mm_width: 8, bit_offset: 8, access_mode: RW, address_offset: 0x18 } - - { field_name: signal_input_B_index, mm_width: 8, bit_offset: 0, access_mode: RW, address_offset: 0x18 } - - - - { field_name: nof_signal_inputs, mm_width: 8, access_mode: RW, address_offset: 0x14 } - - - { field_name: nof_bytes_per_statistic, mm_width: 8, access_mode: RW, address_offset: 0x10 } - - - { field_name: nof_statistics_per_packet, mm_width: 16, access_mode: RW, address_offset: 0xC } - - - { field_name: block_period, mm_width: 16, access_mode: RW, address_offset: 0x8 } - - - { field_name: BSN, mm_width: 32, user_width: 64, radix: uint64, access_mode: RW, address_offset: 0x0 } -- GitLab