From 92a68ca19dc7a1441c21cd80aa02ea1be6ec59b6 Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Mon, 16 Oct 2023 14:26:00 +0200
Subject: [PATCH] Add peripheral_name: sdp/sdp_bdo_destinations

---
 .../lofar2_unb2b_sdp_station.fpga.yaml        | 78 ++++++++++---------
 .../lofar2_unb2c_sdp_station.fpga.yaml        | 78 ++++++++++---------
 2 files changed, 84 insertions(+), 72 deletions(-)

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 696629eeab..1b4f52aa78 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
@@ -60,43 +60,43 @@ peripherals:
     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
   #############################################################################
@@ -104,7 +104,7 @@ peripherals:
   - peripheral_name: sdp/sdp_info
     mm_port_names:
       - REG_SDP_INFO
- 
+
   #############################################################################
   # Ring Info
   #############################################################################
@@ -116,17 +116,17 @@ peripherals:
   #############################################################################
   # 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 }
@@ -142,16 +142,16 @@ peripherals:
       - { 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 }
@@ -165,7 +165,7 @@ peripherals:
       - { 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   
+      - RAM_ST_HISTOGRAM
 
   - peripheral_name: aduh/aduh_mon_dc_power
     parameter_overrides:
@@ -193,17 +193,17 @@ peripherals:
     mm_port_names:
       - REG_DIAG_DATA_BUFFER_BSN
       - RAM_DIAG_DATA_BUFFER_BSN
-  
+
   #############################################################################
   # Fsub = Subband Filterbank (from node_sdp_filterbank.vhd)
   #############################################################################
-  
+
   - peripheral_name: si/si
     parameter_overrides:
       - { name: g_nof_streams, value: c_S_pn }
     mm_port_names:
       - REG_SI
-      
+
   - peripheral_name: filter/fil_ppf_w
     number_of_peripherals: c_R_os # Disturb uses 2x oversample
     peripheral_span: ceil_pow2(c_N_taps) * ceil_pow2(c_N_fft) * MM_BUS_SIZE  # number_of_ports = ceil_pow2(c_N_taps), mm_port_span = ceil_pow2(c_N_fft) words
@@ -216,7 +216,7 @@ peripherals:
       - { name: g_fil_ppf.coef_dat_w, value: c_W_fir_coef }
     mm_port_names:
       - RAM_FIL_COEFS
-      
+
   - peripheral_name: sdp/sdp_subband_equalizer
     parameter_overrides:
       - { name: P_pfb, value: c_R_os * c_P_pfb} # DISTURB uses 2x oversample so 2 X P_pfb
@@ -227,13 +227,13 @@ peripherals:
   - 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_sdp
     parameter_overrides:
       - { name: g_nof_instances, value: c_R_os * c_P_pfb} # DISTURB uses 2x oversample so 2 X P_pfb
     mm_port_names:
       - RAM_ST_SST
-      
+
   - peripheral_name: common/common_variable_delay
     peripheral_group: sst
     mm_port_names:
@@ -243,7 +243,7 @@ peripherals:
     peripheral_group: sst
     mm_port_names:
       - REG_STAT_HDR_DAT_SST
-    
+
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: sst_udp
     parameter_overrides:
@@ -259,14 +259,14 @@ peripherals:
     peripheral_group: xsub
     mm_port_names:
       - REG_BSN_SYNC_SCHEDULER_XSUB
-      
+
   - peripheral_name: st/st_xst_for_sdp
     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: sdp/sdp_crosslets_subband_select
     mm_port_names:
       - REG_CROSSLETS_INFO
@@ -291,33 +291,33 @@ peripherals:
       - { 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:
@@ -341,7 +341,7 @@ peripherals:
   - 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 }
@@ -357,7 +357,7 @@ peripherals:
   #############################################################################
   # BF = Beamformer (from node_sdp_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
@@ -382,7 +382,7 @@ peripherals:
       - { name: g_nof_streams, value: c_P_sum }
     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
@@ -391,7 +391,7 @@ peripherals:
       - { name: g_nof_streams, value: c_P_sum }
     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
@@ -400,14 +400,14 @@ peripherals:
       - { 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
     peripheral_span: 2 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 2 words
     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
@@ -451,6 +451,12 @@ peripherals:
     mm_port_names:
       - REG_BF_SCALE
 
+  - peripheral_name: sdp/sdp_bdo_destinations
+    number_of_peripherals: c_N_beamsets
+    peripheral_span: 256 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 256 words
+    mm_port_names:
+      - REG_BDO_DESTINATIONS
+
   - peripheral_name: sdp/sdp_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
diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml b/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml
index 094c157891..9a3ae24966 100644
--- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml
+++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml
@@ -60,43 +60,43 @@ peripherals:
     mm_port_names:
       - REG_FPGA_TEMP_SENS
       - REG_FPGA_VOLTAGE_SENS
-    
+
   - peripheral_name: unb2c_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
   #############################################################################
@@ -104,7 +104,7 @@ peripherals:
   - peripheral_name: sdp/sdp_info
     mm_port_names:
       - REG_SDP_INFO
- 
+
   #############################################################################
   # Ring Info
   #############################################################################
@@ -116,17 +116,17 @@ peripherals:
   #############################################################################
   # 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 }
@@ -142,16 +142,16 @@ peripherals:
       - { 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 }
@@ -165,7 +165,7 @@ peripherals:
       - { 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   
+      - RAM_ST_HISTOGRAM
 
   - peripheral_name: aduh/aduh_mon_dc_power
     parameter_overrides:
@@ -193,17 +193,17 @@ peripherals:
     mm_port_names:
       - REG_DIAG_DATA_BUFFER_BSN
       - RAM_DIAG_DATA_BUFFER_BSN
-  
+
   #############################################################################
   # Fsub = Subband Filterbank (from node_sdp_filterbank.vhd)
   #############################################################################
-  
+
   - peripheral_name: si/si
     parameter_overrides:
       - { name: g_nof_streams, value: c_S_pn }
     mm_port_names:
       - REG_SI
-      
+
   - peripheral_name: filter/fil_ppf_w
     number_of_peripherals: c_R_os # Disturb uses 2x oversample
     peripheral_span: ceil_pow2(c_N_taps) * ceil_pow2(c_N_fft) * MM_BUS_SIZE  # number_of_ports = ceil_pow2(c_N_taps), mm_port_span = ceil_pow2(c_N_fft) words
@@ -216,7 +216,7 @@ peripherals:
       - { name: g_fil_ppf.coef_dat_w, value: c_W_fir_coef }
     mm_port_names:
       - RAM_FIL_COEFS
-      
+
   - peripheral_name: sdp/sdp_subband_equalizer
     parameter_overrides:
       - { name: P_pfb, value: c_R_os * c_P_pfb} # DISTURB uses 2x oversample so 2 X P_pfb
@@ -227,13 +227,13 @@ peripherals:
   - 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_sdp
     parameter_overrides:
       - { name: g_nof_instances, value: c_R_os * c_P_pfb} # DISTURB uses 2x oversample so 2 X P_pfb
     mm_port_names:
       - RAM_ST_SST
-      
+
   - peripheral_name: common/common_variable_delay
     peripheral_group: sst
     mm_port_names:
@@ -243,7 +243,7 @@ peripherals:
     peripheral_group: sst
     mm_port_names:
       - REG_STAT_HDR_DAT_SST
-    
+
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: sst_udp
     parameter_overrides:
@@ -259,14 +259,14 @@ peripherals:
     peripheral_group: xsub
     mm_port_names:
       - REG_BSN_SYNC_SCHEDULER_XSUB
-      
+
   - peripheral_name: st/st_xst_for_sdp
     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: sdp/sdp_crosslets_subband_select
     mm_port_names:
       - REG_CROSSLETS_INFO
@@ -291,33 +291,33 @@ peripherals:
       - { 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:
@@ -341,7 +341,7 @@ peripherals:
   - 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 }
@@ -357,7 +357,7 @@ peripherals:
   #############################################################################
   # BF = Beamformer (from node_sdp_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
@@ -382,7 +382,7 @@ peripherals:
       - { name: g_nof_streams, value: c_P_sum }
     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
@@ -391,7 +391,7 @@ peripherals:
       - { name: g_nof_streams, value: c_P_sum }
     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
@@ -400,14 +400,14 @@ peripherals:
       - { 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
     peripheral_span: 2 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 2 words
     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
@@ -451,6 +451,12 @@ peripherals:
     mm_port_names:
       - REG_BF_SCALE
 
+  - peripheral_name: sdp/sdp_bdo_destinations
+    number_of_peripherals: c_N_beamsets
+    peripheral_span: 256 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 256 words
+    mm_port_names:
+      - REG_BDO_DESTINATIONS
+
   - peripheral_name: sdp/sdp_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
-- 
GitLab