From e6528c65912b331a5a360186edb26428a2d6459b Mon Sep 17 00:00:00 2001 From: Eric Kooistra <kooistra@astron.nl> Date: Tue, 16 Mar 2021 16:40:44 +0100 Subject: [PATCH] Added peripheral sdp_beamformer_output_hdr_dat --- .../lofar2/libraries/sdp/sdp.peripheral.yaml | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/applications/lofar2/libraries/sdp/sdp.peripheral.yaml b/applications/lofar2/libraries/sdp/sdp.peripheral.yaml index 11977f0fd3..5f26ca047a 100644 --- a/applications/lofar2/libraries/sdp/sdp.peripheral.yaml +++ b/applications/lofar2/libraries/sdp/sdp.peripheral.yaml @@ -32,6 +32,7 @@ peripherals: - - { field_name: block_period, width: 16, access_mode: RO, address_offset: 0x30 } - - { field_name: beamlet_scale, width: 16, access_mode: RW, address_offset: 0x34 } + - peripheral_name: sdp_subband_equalizer # pi_sdp_subband_equalizer.py peripheral_description: "SDP Subband equalizer coefficients." parameters: @@ -59,6 +60,7 @@ peripherals: number_of_fields: 1024 # = Q_fft * N_sub = 2 signal inputs * 512 subbands radix: complx + - peripheral_name: sdp_bf_weights # pi_sdp_bf_weights.py peripheral_description: "SDP Beamformer weights (= beamlet weights)." parameters: @@ -106,6 +108,7 @@ peripherals: number_of_fields: g_nof_gains radix: complx + - peripheral_name: sdp_bf_scale # pi_sdp_bf_scale.py peripheral_description: "SDP BF beamlet data output scaling and requantization." parameters: @@ -139,3 +142,62 @@ peripherals: - - field_name: unused field_description: "Not used." address_offset: 0x4 + + + - peripheral_name: sdp_beamformer_output_hdr_dat + peripheral_description: "SDP BF beamlet data output header." + parameters: + # Parameters fixed in sdp_beamformer_output.vhd / dp_offload_tx_v3.vhd / sdp_pkg.vhd + - { name: g_gain_w, value: 16 } + - { name: g_lsb_w, value: 15 } + slave_ports: + # MM port for sdp_beamformer_output.vhd / dp_offload_tx_v3.vhd + - slave_name: REG_DP_OFFLOAD_TX_HDR_DAT + slave_description: | + "The ETH/IP/UDP/application header fields for the beamlet data output offload UDP packets." + slave_type: REG + fields: + # eth field group + - - { field_name: eth_destination_mac, width: 32, access_mode: RW, address_offset: 0x0, radix_width: 48 } + - - { field_name: eth_source_mac, width: 32, access_mode: RO, address_offset: 0x8, radix_width: 48 } + - - { field_name: eth_type, width: 16, access_mode: RO, address_offset: 0x10 } + # ip field group + - - { field_name: ip_version, width: 4, access_mode: RW, address_offset: 0x14 } + - - { field_name: ip_header_length, width: 4, access_mode: RW, address_offset: 0x18 } + - - { field_name: ip_services, width: 8, access_mode: RW, address_offset: 0x1C } + - - { field_name: ip_total_length, width: 16, access_mode: RW, address_offset: 0x20 } + - - { field_name: ip_identification, width: 16, access_mode: RW, address_offset: 0x24 } + - - { field_name: ip_flags, width: 3, access_mode: RW, address_offset: 0x28 } + - - { field_name: ip_fragment_offset, width: 13, access_mode: RW, address_offset: 0x2C } + - - { field_name: ip_time_to_live, width: 8, access_mode: RW, address_offset: 0x30 } + - - { field_name: ip_protocol, width: 8, access_mode: RW, address_offset: 0x34 } + - - { field_name: ip_header_checksum, width: 16, access_mode: RW, address_offset: 0x38 } + - - { field_name: ip_source_address, width: 32, access_mode: RW, address_offset: 0x3C } + - - { field_name: ip_destination_address, width: 32, access_mode: RW, address_offset: 0x40 } + # udp field group + - - { field_name: udp_source_port, width: 16, access_mode: RW, address_offset: 0x44 } + - - { field_name: udp_destination_port, width: 16, access_mode: RW, address_offset: 0x48 } + - - { field_name: udp_length, width: 16, access_mode: RW, address_offset: 0x4C } + - - { field_name: udp_checksum, width: 16, access_mode: RW, address_offset: 0x50 } + # application field group + - - { field_name: marker, width: 8, access_mode: RO, address_offset: 0x54 } + - - { field_name: version_id, width: 8, access_mode: RO, address_offset: 0x58 } + - - { field_name: observation_id, width: 32, access_mode: RW, address_offset: 0x5C } + - - { field_name: station_id, width: 16, access_mode: RW, address_offset: 0x60 } + - - { field_name: source_info, width: 16, access_mode: RW, address_offset: 0x64 } + - "source_info": + - { field_name: antenna_band_index, width: 1, bit_offset: 15, access_mode: RW, address_offset: 0x64 } + - { field_name: nyquist_zone_index, width: 2, bit_offset: 13, access_mode: RW, address_offset: 0x64 } + - { field_name: f_adc, width: 1, bit_offset: 12, access_mode: RW, address_offset: 0x64 } + - { field_name: fsub_type, width: 1, bit_offset: 11, access_mode: RW, address_offset: 0x64 } + - { field_name: payload_error, width: 1, bit_offset: 10, access_mode: RW, address_offset: 0x64 } + - { field_name: repositioning_flag, width: 1, bit_offset: 9, access_mode: RW, address_offset: 0x64 } + - { field_name: beamlet_width, width: 3, bit_offset: 5, access_mode: RW, address_offset: 0x64 } + - { field_name: gn_index, width: 5, bit_offset: 0, access_mode: RW, address_offset: 0x64 } + - - { field_name: reserved, width: 32, access_mode: RW, address_offset: 0x68, radix_width: 40 } + - - { field_name: beamlet_scale, width: 16, access_mode: RW, address_offset: 0x70 } + - - { field_name: beamlet_index, width: 16, access_mode: RW, address_offset: 0x74 } + - - { field_name: nof_blocks_per_packet, width: 8, access_mode: RW, address_offset: 0x78 } + - - { field_name: nof_beamlets_per_block, width: 16, access_mode: RW, address_offset: 0x7C } + - - { field_name: block_period, width: 16, access_mode: RW, address_offset: 0x80 } + - - { field_name: BSN, width: 32, access_mode: RW, address_offset: 0x84, radix_width: 64 } -- GitLab