From 400e4bfffbd9fc71596798347fdf3496e9a64e33 Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Thu, 10 Feb 2022 17:12:16 +0100
Subject: [PATCH] Corrected step increment MOD N_sub in
 func_sdp_step_crosslets_info(). Currently only used in tb, but should also
 work fine in synth.

---
 applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
index 512cdebae0..a1eede5e5e 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
@@ -849,7 +849,8 @@ PACKAGE BODY sdp_pkg IS
     VARIABLE v_info : t_sdp_crosslets_info := info_rec;
   BEGIN
     FOR I IN 0 TO c_sdp_crosslets_info_nof_offsets-1 LOOP  -- step all offsets
-      v_info.offset_arr(I) := v_info.offset_arr(I) + v_info.step;
+      -- c_sdp_N_sub = 512 is power of 2, so MOD should be fine in synthesis (simpel skips MSbits, no need for division).
+      v_info.offset_arr(I) := (v_info.offset_arr(I) + v_info.step) MOD c_sdp_N_sub;
     END LOOP;
     RETURN v_info;
   END func_sdp_step_crosslets_info;
-- 
GitLab