Skip to content
Snippets Groups Projects
Commit ab8809f6 authored by Eric Kooistra's avatar Eric Kooistra
Browse files

Improved description of sdp_bf_weights. Defined unused field for second word of sdp_bf_scale.

parent 234af2d2
No related branches found
No related tags found
2 merge requests!100Removed text for XSub that is now written in Confluence Subband correlator...,!73Resolve L2SDP-240
...@@ -72,10 +72,17 @@ peripherals: ...@@ -72,10 +72,17 @@ peripherals:
"The beamlet weigths are stored in g_nof_instances = N_pol_bf * P_pfb = 2 * 6 = 12, where "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 = 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 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 polarizations, to distinguish these from the N_pol = 2 antenna polarizations. The
of Q_fft signal inputs that are multiplexed per block are mapped to the N_pol = 2 beamlet weigths for S_pn = P_pfb * Q_fft = 12 signal inputs are therefore defined by:
polarizations of an antenna.
Therefore A_pn = P_pfb = 6 is the number dual polarization antennas per peripheral. (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] (cint16)bf_weights[N_pol_bf][A_pn]_[N_pol][S_sub_bf]
...@@ -113,11 +120,11 @@ peripherals: ...@@ -113,11 +120,11 @@ peripherals:
requantizes the result to beamlet data output with less bits. 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. 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 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 . 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 . 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." . 2**5 rounds the lowest 10 bits and selects the highest 8 bits of the beamlet sum."
slave_type: REG slave_type: REG
fields: fields:
...@@ -125,8 +132,10 @@ peripherals: ...@@ -125,8 +132,10 @@ peripherals:
field_description: "" field_description: ""
width: g_gain_w width: g_gain_w
address_offset: 0x0 address_offset: 0x0
bit_offset: g_lsb_w
number_of_fields: 1 number_of_fields: 1
radix: unsigned radix: unsigned
#radix_width: g_gain_w #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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment