diff --git a/applications/lofar2/libraries/sdp/sdp.peripheral.yaml b/applications/lofar2/libraries/sdp/sdp.peripheral.yaml index cfdfac31f327eb8ca82b1e5d90f7c0de0fe3dd76..11977f0fd3441e4d9eca4c1eaaf50891ea468394 100644 --- a/applications/lofar2/libraries/sdp/sdp.peripheral.yaml +++ b/applications/lofar2/libraries/sdp/sdp.peripheral.yaml @@ -72,10 +72,17 @@ peripherals: "The beamlet weigths are stored in g_nof_instances = N_pol_bf * P_pfb = 2 * 6 = 12, 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 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. + 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 sdp_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] @@ -113,11 +120,11 @@ peripherals: 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: + 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 + 10 bits, . 2**11 rounds the lowest 4 bits, selects the next 8 bits of the beamlet sum and clips - the highest 6 bits. + the highest 6 bits, . 2**5 rounds the lowest 10 bits and selects the highest 8 bits of the beamlet sum." slave_type: REG fields: @@ -125,8 +132,10 @@ peripherals: field_description: "" width: g_gain_w address_offset: 0x0 - bit_offset: g_lsb_w number_of_fields: 1 radix: unsigned #radix_width: g_gain_w - radix_resolution: -g_lsb_w + radix_resolution: 0 - g_lsb_w + - - field_name: unused + field_description: "Not used." + address_offset: 0x4