diff --git a/applications/lofar2/designs/lofar2_unb2b_sdp_station/lofar2_unb2b_sdp_station.fpga.yaml b/applications/lofar2/designs/lofar2_unb2b_sdp_station/lofar2_unb2b_sdp_station.fpga.yaml index d6d7e396408e2915242cd0ae69c7e308ba2fe32b..0462ee07fc37fb600588d5e788539ca51040162a 100644 --- a/applications/lofar2/designs/lofar2_unb2b_sdp_station/lofar2_unb2b_sdp_station.fpga.yaml +++ b/applications/lofar2/designs/lofar2_unb2b_sdp_station/lofar2_unb2b_sdp_station.fpga.yaml @@ -193,27 +193,27 @@ peripherals: mm_port_names: - REG_STAT_HDR_DAT_SST -# ############################################################################# -# # Xsub = Subband Correlator (from node_sdp_correlator.vhd) -# ############################################################################# -# -# - peripheral_name: dp/dp_bsn_scheduler -# peripheral_group: xsub -# mm_port_names: -# - REG_BSN_SCHEDULER_XSUB -# -# - peripheral_name: dp/dp_sync_insert_v2 -# mm_port_names: -# - REG_DP_SYNC_INSERT_V2 -# -# - peripheral_name: st/st_xst -# mm_port_names: -# - RAM_ST_XSQ -# -# - peripheral_name: sdp/sdp_crosslets_subband_select -# mm_port_names: -# - REG_CROSSLETS_INFO -# + ############################################################################# + # Xsub = Subband Correlator (from node_sdp_correlator.vhd) + ############################################################################# + + - peripheral_name: dp/dp_bsn_scheduler + peripheral_group: xsub + mm_port_names: + - REG_BSN_SCHEDULER_XSUB + + - peripheral_name: dp/dp_sync_insert_v2 + mm_port_names: + - REG_DP_SYNC_INSERT_V2 + + - peripheral_name: st/st_xst_for_sdp + mm_port_names: + - RAM_ST_XSQ + + - peripheral_name: sdp/sdp_crosslets_subband_select + mm_port_names: + - REG_CROSSLETS_INFO + ############################################################################# # BF = Beamformer (from node_sdp_beamformer.vhd) ############################################################################# diff --git a/applications/lofar2/libraries/sdp/sdp.peripheral.yaml b/applications/lofar2/libraries/sdp/sdp.peripheral.yaml index 67eef47dc7e3f47dbb1558b2b6cfac89b0c9593f..cceb27d004e0df25b245ede31c7a6218b7189406 100644 --- a/applications/lofar2/libraries/sdp/sdp.peripheral.yaml +++ b/applications/lofar2/libraries/sdp/sdp.peripheral.yaml @@ -6,7 +6,7 @@ hdl_library_name: sdp hdl_library_description: "Station Digital Processor (SDP) for LOFAR2.0" peripherals: - - peripheral_name: sdp_info # pi_sdp_info.py ? + - peripheral_name: sdp_info # pi_sdp_info.py peripheral_description: "SDP info." mm_ports: # MM port for sdp_info.vhd @@ -31,6 +31,22 @@ peripherals: - - { field_name: block_period, mm_width: 16, access_mode: RO, address_offset: 0x4 } - - { field_name: beamlet_scale, mm_width: 16, access_mode: RW, address_offset: 0x0 } + + - peripheral_name: sdp_crosslets_subband_select # pi_sdp_crosslets_info.py + peripheral_description: "SDP crosslets info." + mm_ports: + # MM port for sdp_info.vhd + - mm_port_name: REG_CROSSLETS_INFO + mm_port_type: REG + mm_port_description: | + "The SDP crosslets info contains the step size and 15 offsets." + fields: + - - { field_name: step, access_mode: RW, address_offset: 0x3C } + - - field_name: offset + number_of_fields: 15 + address_offset: 0x0 + + - peripheral_name: sdp_subband_equalizer # pi_sdp_subband_equalizer.py peripheral_description: "SDP Subband equalizer coefficients." parameters: diff --git a/libraries/base/dp/dp.peripheral.yaml b/libraries/base/dp/dp.peripheral.yaml index 7a8008c0e8addecda2dee9e1579f39f0fd09c9d6..95d7115b26a5767cd4cb9629814438d1a249d900 100644 --- a/libraries/base/dp/dp.peripheral.yaml +++ b/libraries/base/dp/dp.peripheral.yaml @@ -326,3 +326,19 @@ peripherals: address_offset: 0x0 mm_width: 1 access_mode: RW + + + - peripheral_name: dp_sync_insert_v2 # pi_dp_sync_insert_v2.py + peripheral_description: "Every nof_blk_per_sync block a sync pulse is created at the output." + mm_ports: + # MM port for dp_sync_insert_v2.vhd + - mm_port_name: REG_DP_SYNC_INSERT_V2 + mm_port_type: REG + mm_port_description: "" + fields: + - - field_name: nof_blk_per_sync + field_description: | + "The block counter resets if a sync arrives at the input or when nof_blk_per_sync is reached. + nof_blk_per_sync is controllable using M&C." + address_offset: 0x0 + access_mode: RW diff --git a/libraries/dsp/st/st.peripheral.yaml b/libraries/dsp/st/st.peripheral.yaml index 322e625d1b590a70b6fb3eea0c39e7a4a75ff644..6bf0a7aac2d6e7aeefd67cbce394af06fb7a9b6e 100644 --- a/libraries/dsp/st/st.peripheral.yaml +++ b/libraries/dsp/st/st.peripheral.yaml @@ -105,29 +105,31 @@ peripherals: - peripheral_name: st_xst_for_sdp # pi_st_xst.py peripheral_description: | - "Accumulate the beamlet auto power values during a sync interval for the beamlet statistics (BST) in LOFAR2.0 SDP" + "Calculate Crosslets Statistics during a sync interval for the crosslets statistics (XST) in LOFAR2.0 SDP" parameters: - # Parameters of pi_st_bst.py, fixed in node_sdp_beamformer.vhd / sdp_pkg.vhd - - { name: g_nof_instances, value: 6 } - # Parameters of st_sst.vhd, fixed in node_sdp_filterbank.vhd / sdp_pkg.vhd - - { name: g_nof_stat, value: 976 } # nof accumulators: S_sub_bf * N_pol_bf = 488 * 2 = 976 - - { name: g_stat_data_w, value: 54 } # statistics accumulator user_width in bits: W_statistic = 64 - - { name: g_stat_data_sz, value: 2 } # statistics accumulator user_width in 32b MM words: W_statistic_sz = 2 + # Parameters of pi_st_xst.py, fixed in node_sdp_correlator.vhd / sdp_pkg.vhd + - { name: g_nof_streams, value: 9 } # P_sq + # Parameters of st_xst.vhd, fixed in node_sdp_correlator.vhd / sdp_pkg.vhd + - { name: g_nof_crosslets, value: 1 } # N_crosslets + - { name: g_nof_signal_inputs, value: 12 } # S_pn = 12 + - { name: g_in_data_w, value: 16 } # W_crosslet = 16 + - { name: g_stat_data_w, value: 64 } # W_statistic = 64 + - { name: g_stat_data_sz, value: 2 } # W_statistic_sz = 2 mm_ports: # MM port for st_sst.vhd - - mm_port_name: RAM_ST_SST + - mm_port_name: RAM_ST_XSQ mm_port_type: RAM mm_port_description: | - "The beamlet statistics per PN are stored in 1 block of S_sub_bf * N_pol_bf = 488 * 2 = 976 real values as: + "The crosslets statistics per PN are stored in 1 block of + g_nof_crosslets * g_nof_signal_inputs**2 * c_nof_complex * g_stat_data_sz = 1 * 12 * 12 * 2 * 2 = 576 values as: - (uint64)BST[g_nof_stat] = (uint64)BST[S_sub_bf][N_pol_bf] + (cint64)XST[] = (cint64)XST[crosslets][in A][in B][complex][word]" - where N_pol_bf = 2 and S_sub_bf = 488 are defined in sdp_pkg.vhd." number_of_mm_ports: 1 fields: - - field_name: power field_description: "" - number_of_fields: g_nof_stat * g_stat_data_sz + number_of_fields: 576 address_offset: 0x0 mm_width: 32 user_width: g_stat_data_w