Skip to content
Snippets Groups Projects
Commit 720e6b14 authored by Reinier van der Walle's avatar Reinier van der Walle
Browse files

removed old yaml backups

parent e4e15fa6
Branches
No related tags found
1 merge request!255Resolve DISTURB-1
Pipeline #30296 passed
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
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 }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment