diff --git a/applications/disturb2/designs/disturb2_unb2b_station/disturb2_unb2b_station.fpga.yaml b/applications/disturb2/designs/disturb2_unb2b_station/disturb2_unb2b_station.fpga.yaml
index 991c957bd897dc41234da5286453a33dd2e3b59e..5cecb8d2e6c998d6f2f1f29cda282bcf1dc83551 100644
--- a/applications/disturb2/designs/disturb2_unb2b_station/disturb2_unb2b_station.fpga.yaml
+++ b/applications/disturb2/designs/disturb2_unb2b_station/disturb2_unb2b_station.fpga.yaml
@@ -373,6 +373,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_align_v2
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: ceil_pow2(c_P_sum) * 2 * MM_BUS_SIZE  # number_of_ports = c_P_sum, mm_port_span = 2 words
     parameter_overrides:
       - { name: g_nof_streams, value: 2 }
     mm_port_names:
@@ -381,6 +382,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: rx_align_bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: ceil_pow2(c_P_sum) * 8 * MM_BUS_SIZE  # number_of_ports = c_P_sum, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 2 }
     mm_port_names:
@@ -389,6 +391,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: aligned_bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
@@ -397,12 +400,14 @@ peripherals:
   - peripheral_name: ring/ring_lane_info
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 2 * MM_BUS_SIZE
     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
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
@@ -411,6 +416,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: ring_tx_bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
@@ -419,6 +425,7 @@ peripherals:
   - peripheral_name: dp/dp_block_validate_err
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: ceil_pow2(c_lane_nof_err_counts + 3) * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = ceil_pow2(g_nof_err_counts + 3) words
     parameter_overrides:
       - { name: g_nof_err_counts, value: c_lane_nof_err_counts }
     mm_port_names:
@@ -427,6 +434,7 @@ peripherals:
   - peripheral_name: dp/dp_block_validate_bsn_at_sync
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 4 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 4 words
     mm_port_names:
       - REG_DP_BLOCK_VALIDATE_BSN_AT_SYNC_BF
 
@@ -477,6 +485,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: bst_udp
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
@@ -485,6 +494,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: beamlet_output
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
diff --git a/applications/lofar2/designs/lofar2_unb2b_beamformer/lofar2_unb2b_beamformer.fpga.yaml b/applications/lofar2/designs/lofar2_unb2b_beamformer/lofar2_unb2b_beamformer.fpga.yaml
index 657960c434d8d439fdc9b41d4b4b1dfc96b2bd3f..4a7691e673098d8bad1c1d37a81797314ab5024a 100644
--- a/applications/lofar2/designs/lofar2_unb2b_beamformer/lofar2_unb2b_beamformer.fpga.yaml
+++ b/applications/lofar2/designs/lofar2_unb2b_beamformer/lofar2_unb2b_beamformer.fpga.yaml
@@ -221,6 +221,7 @@ peripherals:
   
   - peripheral_name: reorder/reorder_col_wide
     number_of_peripherals: c_N_beamsets  # lofar2_unb2b_beamformer.vhd
+    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
     parameter_overrides:
       - { name: g_wb_factor, value: c_P_pfb }
       - { name: g_nof_ch_in, value: c_N_sub * c_Q_fft }
@@ -230,6 +231,7 @@ peripherals:
 
   - peripheral_name: sdp/sdp_bf_weights
     number_of_peripherals: c_N_beamsets  # lofar2_unb2b_beamformer.vhd
+    peripheral_span: ceil_pow2(c_N_pol_bf * c_P_pfb) * ceil_pow2(c_Q_fft * c_S_sub_bf) * MM_BUS_SIZE  # number_of_ports = c_N_pol_bf * c_P_pfb, mm_port_span = ceil_pow2(c_Q_fft * c_S_sub_bf) words
     parameter_overrides:
       - { name: g_nof_instances, value: c_N_pol_bf * c_A_pn }  # A_pn = P_pfb = 6
       - { name: g_nof_gains, value: c_N_pol * c_S_sub_bf }  # N_pol = Q_fft = 2
@@ -238,6 +240,7 @@ peripherals:
 
   - peripheral_name: sdp/sdp_bf_scale
     number_of_peripherals: c_N_beamsets  # lofar2_unb2b_beamformer.vhd
+    peripheral_span: 2 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 2 words
     parameter_overrides:
       - { name: g_gain_w, value: c_W_beamlet_scale }
       - { name: g_lsb_w, value: 0 - c_W_beamlet_resolution}
@@ -246,11 +249,13 @@ peripherals:
 
   - peripheral_name: sdp/sdp_beamformer_output_hdr_dat
     number_of_peripherals: c_N_beamsets  # lofar2_unb2b_beamformer.vhd
+    peripheral_span: 64 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 64 words
     mm_port_names:
       - REG_HDR_DAT
 
   - peripheral_name: dp/dp_xonoff
     number_of_peripherals: c_N_beamsets  # lofar2_unb2b_beamformer.vhd
+    peripheral_span: 2 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 2 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
       - { name: g_combine_streams, value: False }
diff --git a/applications/lofar2/designs/lofar2_unb2b_ring/lofar2_unb2b_ring.fpga.yaml b/applications/lofar2/designs/lofar2_unb2b_ring/lofar2_unb2b_ring.fpga.yaml
index 953084dfb15b258fc2f18a990383f0973c966c7c..3a814a4657d166ff85e6dd39b13566fe0e225b82 100644
--- a/applications/lofar2/designs/lofar2_unb2b_ring/lofar2_unb2b_ring.fpga.yaml
+++ b/applications/lofar2/designs/lofar2_unb2b_ring/lofar2_unb2b_ring.fpga.yaml
@@ -74,6 +74,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: ring_rx
     number_of_peripherals: c_nof_lanes
+    peripheral_span: ceil_pow2(c_nof_rx_monitors) * 8 * MM_BUS_SIZE 
     parameter_overrides:
       - { name: g_nof_streams, value: c_nof_rx_monitors }
     mm_port_names:
@@ -82,6 +83,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: ring_tx
     number_of_peripherals: c_nof_lanes
+    peripheral_span: ceil_pow2(c_nof_tx_monitors) * 8 * MM_BUS_SIZE 
     parameter_overrides:
       - { name: g_nof_streams, value: c_nof_tx_monitors }
     mm_port_names:
@@ -89,23 +91,27 @@ peripherals:
 
   - peripheral_name: ring/ring_lane_info
     number_of_peripherals: c_nof_lanes
+    peripheral_span: 2 * MM_BUS_SIZE
     mm_port_names:
       - REG_RING_LANE_INFO
 
   - peripheral_name: dp/dp_xonoff
     peripheral_group: lane
     number_of_peripherals: c_nof_lanes
+    peripheral_span: 2 * MM_BUS_SIZE
     mm_port_names:
       - REG_DP_XONOFF_LANE
 
   - peripheral_name: dp/dp_xonoff
     peripheral_group: local
     number_of_peripherals: c_nof_lanes
+    peripheral_span: 2 * MM_BUS_SIZE
     mm_port_names:
       - REG_DP_XONOFF_LOCAL
 
   - peripheral_name: dp/dp_block_validate_err
     number_of_peripherals: c_nof_lanes
+    peripheral_span: ceil_pow2(c_nof_err_counts + 3) * MM_BUS_SIZE
     parameter_overrides:
       - { name: g_nof_err_counts, value: c_nof_err_counts }
     mm_port_names:
@@ -113,6 +119,7 @@ peripherals:
 
   - peripheral_name: dp/dp_block_validate_bsn_at_sync
     number_of_peripherals: c_nof_lanes
+    peripheral_span: 4 * MM_BUS_SIZE
     mm_port_names:
       - REG_DP_BLOCK_VALIDATE_BSN_AT_SYNC
 
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 c8ed157e255422e409f972b72348c86edd889005..0e7f0176633908ccea087378043598f493509d3f 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
@@ -367,6 +367,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_align_v2
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: ceil_pow2(c_P_sum) * 2 * MM_BUS_SIZE  # number_of_ports = c_P_sum, mm_port_span = 2 words
     parameter_overrides:
       - { name: g_nof_streams, value: c_P_sum }
     mm_port_names:
@@ -375,6 +376,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: rx_align_bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: ceil_pow2(c_P_sum) * 8 * MM_BUS_SIZE  # number_of_ports = c_P_sum, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: c_P_sum }
     mm_port_names:
@@ -383,6 +385,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: aligned_bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
@@ -391,12 +394,15 @@ peripherals:
   - peripheral_name: ring/ring_lane_info
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 2 * MM_BUS_SIZE
     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
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
+
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
@@ -405,6 +411,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: ring_tx_bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
@@ -413,6 +420,7 @@ peripherals:
   - peripheral_name: dp/dp_block_validate_err
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: ceil_pow2(c_lane_nof_err_counts + 3) * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = ceil_pow2(g_nof_err_counts + 3) words
     parameter_overrides:
       - { name: g_nof_err_counts, value: c_lane_nof_err_counts }
     mm_port_names:
@@ -421,6 +429,7 @@ peripherals:
   - peripheral_name: dp/dp_block_validate_bsn_at_sync
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 4 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 4 words
     mm_port_names:
       - REG_DP_BLOCK_VALIDATE_BSN_AT_SYNC_BF
 
@@ -471,6 +480,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: bst_udp
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
@@ -479,6 +489,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: beamlet_output
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
diff --git a/applications/lofar2/designs/lofar2_unb2c_ring/lofar2_unb2c_ring.fpga.yaml b/applications/lofar2/designs/lofar2_unb2c_ring/lofar2_unb2c_ring.fpga.yaml
index da16eb02707f4d94c2dc05ac22492678e925388e..37037abf09666e4d44b6e970a5857db05cfdf92a 100644
--- a/applications/lofar2/designs/lofar2_unb2c_ring/lofar2_unb2c_ring.fpga.yaml
+++ b/applications/lofar2/designs/lofar2_unb2c_ring/lofar2_unb2c_ring.fpga.yaml
@@ -74,6 +74,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: ring_rx
     number_of_peripherals: c_nof_lanes
+    peripheral_span: ceil_pow2(c_nof_rx_monitors) * 8 * MM_BUS_SIZE 
     parameter_overrides:
       - { name: g_nof_streams, value: c_nof_rx_monitors }
     mm_port_names:
@@ -82,6 +83,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: ring_tx
     number_of_peripherals: c_nof_lanes
+    peripheral_span: ceil_pow2(c_nof_tx_monitors) * 8 * MM_BUS_SIZE 
     parameter_overrides:
       - { name: g_nof_streams, value: c_nof_tx_monitors }
     mm_port_names:
@@ -89,23 +91,27 @@ peripherals:
 
   - peripheral_name: ring/ring_lane_info
     number_of_peripherals: c_nof_lanes
+    peripheral_span: 2 * MM_BUS_SIZE
     mm_port_names:
       - REG_RING_LANE_INFO
 
   - peripheral_name: dp/dp_xonoff
     peripheral_group: lane
     number_of_peripherals: c_nof_lanes
+    peripheral_span: 2 * MM_BUS_SIZE
     mm_port_names:
       - REG_DP_XONOFF_LANE
 
   - peripheral_name: dp/dp_xonoff
     peripheral_group: local
     number_of_peripherals: c_nof_lanes
+    peripheral_span: 2 * MM_BUS_SIZE
     mm_port_names:
       - REG_DP_XONOFF_LOCAL
 
   - peripheral_name: dp/dp_block_validate_err
     number_of_peripherals: c_nof_lanes
+    peripheral_span: ceil_pow2(c_nof_err_counts + 3) * MM_BUS_SIZE
     parameter_overrides:
       - { name: g_nof_err_counts, value: c_nof_err_counts }
     mm_port_names:
@@ -113,6 +119,7 @@ peripherals:
 
   - peripheral_name: dp/dp_block_validate_bsn_at_sync
     number_of_peripherals: c_nof_lanes
+    peripheral_span: 4 * MM_BUS_SIZE
     mm_port_names:
       - REG_DP_BLOCK_VALIDATE_BSN_AT_SYNC
 
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 6f9cb187f829e008ca22aa579fdcd4605bafe222..1b3fae928ad905928679a151c3174343e6be7922 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
@@ -367,6 +367,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_align_v2
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: ceil_pow2(c_P_sum) * 2 * MM_BUS_SIZE  # number_of_ports = c_P_sum, mm_port_span = 2 words
     parameter_overrides:
       - { name: g_nof_streams, value: c_P_sum }
     mm_port_names:
@@ -375,6 +376,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: rx_align_bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: ceil_pow2(c_P_sum) * 8 * MM_BUS_SIZE  # number_of_ports = c_P_sum, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: c_P_sum }
     mm_port_names:
@@ -383,6 +385,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: aligned_bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
@@ -391,12 +394,14 @@ peripherals:
   - peripheral_name: ring/ring_lane_info
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 2 * MM_BUS_SIZE
     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
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
@@ -405,6 +410,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: ring_tx_bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
@@ -413,6 +419,7 @@ peripherals:
   - peripheral_name: dp/dp_block_validate_err
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: ceil_pow2(c_lane_nof_err_counts + 3) * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = ceil_pow2(g_nof_err_counts + 3) words
     parameter_overrides:
       - { name: g_nof_err_counts, value: c_lane_nof_err_counts }
     mm_port_names:
@@ -421,6 +428,7 @@ peripherals:
   - peripheral_name: dp/dp_block_validate_bsn_at_sync
     peripheral_group: bf
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 4 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 4 words
     mm_port_names:
       - REG_DP_BLOCK_VALIDATE_BSN_AT_SYNC_BF
 
@@ -471,6 +479,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: bst_udp
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names:
@@ -479,6 +488,7 @@ peripherals:
   - peripheral_name: dp/dp_bsn_monitor_v2
     peripheral_group: beamlet_output
     number_of_peripherals: c_N_beamsets
+    peripheral_span: 8 * MM_BUS_SIZE  # number_of_ports = 1, mm_port_span = 8 words
     parameter_overrides:
       - { name: g_nof_streams, value: 1 }
     mm_port_names: