diff --git a/applications/lofar2/designs/lofar2_unb2b_beamformer/src/vhdl/lofar2_unb2b_beamformer.vhd b/applications/lofar2/designs/lofar2_unb2b_beamformer/src/vhdl/lofar2_unb2b_beamformer.vhd
index f894280241e8152fb4286f01898c31d001f18756..3a7c092e0d2ffbdc6ff2731f6c482fc96d4f0662 100644
--- a/applications/lofar2/designs/lofar2_unb2b_beamformer/src/vhdl/lofar2_unb2b_beamformer.vhd
+++ b/applications/lofar2/designs/lofar2_unb2b_beamformer/src/vhdl/lofar2_unb2b_beamformer.vhd
@@ -642,7 +642,7 @@ BEGIN
   GENERIC MAP(
     g_technology                => g_technology,
     g_nof_streams               => c_sdp_S_pn,
-    g_buf_nof_data              => c_sdp_ait_buf_nof_data_bsn,
+    g_buf_nof_data              => c_sdp_V_si_db,
     g_sim                       => g_sim                
   )
   PORT MAP(
diff --git a/applications/lofar2/designs/lofar2_unb2b_beamformer/src/vhdl/mmm_lofar2_unb2b_beamformer.vhd b/applications/lofar2/designs/lofar2_unb2b_beamformer/src/vhdl/mmm_lofar2_unb2b_beamformer.vhd
index fa98abaa196a9e1c95ead0ebd137381adc04e6de..c116e37ee89765d76e53d2a79edbeae0ae33f75c 100644
--- a/applications/lofar2/designs/lofar2_unb2b_beamformer/src/vhdl/mmm_lofar2_unb2b_beamformer.vhd
+++ b/applications/lofar2/designs/lofar2_unb2b_beamformer/src/vhdl/mmm_lofar2_unb2b_beamformer.vhd
@@ -487,7 +487,7 @@ BEGIN
 
       reg_bsn_source_clk_export                 => OPEN,
       reg_bsn_source_reset_export               => OPEN,
-      reg_bsn_source_address_export             => reg_bsn_source_mosi.address(c_sdp_reg_bsn_source_addr_w-1 DOWNTO 0),
+      reg_bsn_source_address_export             => reg_bsn_source_mosi.address(2-1 DOWNTO 0),
       reg_bsn_source_read_export                => reg_bsn_source_mosi.rd,
       reg_bsn_source_readdata_export            => reg_bsn_source_miso.rddata(c_word_w-1 DOWNTO 0),
       reg_bsn_source_write_export               => reg_bsn_source_mosi.wr,
@@ -544,7 +544,7 @@ BEGIN
 
       ram_diag_data_buf_bsn_clk_export          => OPEN,
       ram_diag_data_buf_bsn_reset_export        => OPEN,
-      ram_diag_data_buf_bsn_address_export      => ram_diag_data_buf_bsn_mosi.address(c_sdp_ram_diag_data_buf_bsn_addr_w-1 DOWNTO 0),
+      ram_diag_data_buf_bsn_address_export      => ram_diag_data_buf_bsn_mosi.address(14-1 DOWNTO 0),
       ram_diag_data_buf_bsn_write_export        => ram_diag_data_buf_bsn_mosi.wr,
       ram_diag_data_buf_bsn_writedata_export    => ram_diag_data_buf_bsn_mosi.wrdata(c_word_w-1 DOWNTO 0),
       ram_diag_data_buf_bsn_read_export         => ram_diag_data_buf_bsn_mosi.rd,
@@ -560,7 +560,7 @@ BEGIN
 
       ram_diag_data_buf_jesd_clk_export         => OPEN,
       ram_diag_data_buf_jesd_reset_export       => OPEN,
-      ram_diag_data_buf_jesd_address_export     => ram_diag_data_buf_jesd_mosi.address(c_sdp_ram_diag_data_buf_jesd_addr_w-1 DOWNTO 0),
+      ram_diag_data_buf_jesd_address_export     => ram_diag_data_buf_jesd_mosi.address(11-1 DOWNTO 0),
       ram_diag_data_buf_jesd_write_export       => ram_diag_data_buf_jesd_mosi.wr,
       ram_diag_data_buf_jesd_writedata_export   => ram_diag_data_buf_jesd_mosi.wrdata(c_word_w-1 DOWNTO 0),
       ram_diag_data_buf_jesd_read_export        => ram_diag_data_buf_jesd_mosi.rd,
@@ -568,7 +568,7 @@ BEGIN
 
       reg_diag_data_buf_jesd_reset_export       => OPEN,
       reg_diag_data_buf_jesd_clk_export         => OPEN,
-      reg_diag_data_buf_jesd_address_export     => reg_diag_data_buf_jesd_mosi.address(c_sdp_reg_diag_data_buf_jesd_addr_w-1 DOWNTO 0),
+      reg_diag_data_buf_jesd_address_export     => reg_diag_data_buf_jesd_mosi.address(2-1 DOWNTO 0),
       reg_diag_data_buf_jesd_write_export       => reg_diag_data_buf_jesd_mosi.wr,
       reg_diag_data_buf_jesd_writedata_export   => reg_diag_data_buf_jesd_mosi.wrdata(c_word_w-1 DOWNTO 0),
       reg_diag_data_buf_jesd_read_export        => reg_diag_data_buf_jesd_mosi.rd,
diff --git a/applications/lofar2/designs/lofar2_unb2b_filterbank/src/vhdl/lofar2_unb2b_filterbank.vhd b/applications/lofar2/designs/lofar2_unb2b_filterbank/src/vhdl/lofar2_unb2b_filterbank.vhd
index 1ad3eb3ae671b261e13c3980fbf478f6203b54eb..d32ffe7f4d7b958f81ee608f67304a33c44b7d8e 100644
--- a/applications/lofar2/designs/lofar2_unb2b_filterbank/src/vhdl/lofar2_unb2b_filterbank.vhd
+++ b/applications/lofar2/designs/lofar2_unb2b_filterbank/src/vhdl/lofar2_unb2b_filterbank.vhd
@@ -551,7 +551,7 @@ BEGIN
   GENERIC MAP(
     g_technology                => g_technology,
     g_nof_streams               => c_sdp_S_pn,
-    g_buf_nof_data              => c_sdp_ait_buf_nof_data_bsn,
+    g_buf_nof_data              => c_sdp_V_si_db,
     g_sim                       => g_sim                
   )
   PORT MAP(
diff --git a/applications/lofar2/designs/lofar2_unb2b_filterbank/src/vhdl/mmm_lofar2_unb2b_filterbank.vhd b/applications/lofar2/designs/lofar2_unb2b_filterbank/src/vhdl/mmm_lofar2_unb2b_filterbank.vhd
index 5c98a6406407f62ac0b85082e0cf55399565f7da..a0280460a0f7dd5971d4d375b75c8582134d8df8 100644
--- a/applications/lofar2/designs/lofar2_unb2b_filterbank/src/vhdl/mmm_lofar2_unb2b_filterbank.vhd
+++ b/applications/lofar2/designs/lofar2_unb2b_filterbank/src/vhdl/mmm_lofar2_unb2b_filterbank.vhd
@@ -458,7 +458,7 @@ BEGIN
 
       reg_bsn_source_clk_export                 => OPEN,
       reg_bsn_source_reset_export               => OPEN,
-      reg_bsn_source_address_export             => reg_bsn_source_mosi.address(c_sdp_reg_bsn_source_addr_w-1 DOWNTO 0),
+      reg_bsn_source_address_export             => reg_bsn_source_mosi.address(2-1 DOWNTO 0),
       reg_bsn_source_read_export                => reg_bsn_source_mosi.rd,
       reg_bsn_source_readdata_export            => reg_bsn_source_miso.rddata(c_word_w-1 DOWNTO 0),
       reg_bsn_source_write_export               => reg_bsn_source_mosi.wr,
@@ -515,7 +515,7 @@ BEGIN
 
       ram_diag_data_buf_bsn_clk_export          => OPEN,
       ram_diag_data_buf_bsn_reset_export        => OPEN,
-      ram_diag_data_buf_bsn_address_export      => ram_diag_data_buf_bsn_mosi.address(c_sdp_ram_diag_data_buf_bsn_addr_w-1 DOWNTO 0),
+      ram_diag_data_buf_bsn_address_export      => ram_diag_data_buf_bsn_mosi.address(14-1 DOWNTO 0),
       ram_diag_data_buf_bsn_write_export        => ram_diag_data_buf_bsn_mosi.wr,
       ram_diag_data_buf_bsn_writedata_export    => ram_diag_data_buf_bsn_mosi.wrdata(c_word_w-1 DOWNTO 0),
       ram_diag_data_buf_bsn_read_export         => ram_diag_data_buf_bsn_mosi.rd,
@@ -531,7 +531,7 @@ BEGIN
 
       ram_diag_data_buf_jesd_clk_export         => OPEN,
       ram_diag_data_buf_jesd_reset_export       => OPEN,
-      ram_diag_data_buf_jesd_address_export     => ram_diag_data_buf_jesd_mosi.address(c_sdp_ram_diag_data_buf_jesd_addr_w-1 DOWNTO 0),
+      ram_diag_data_buf_jesd_address_export     => ram_diag_data_buf_jesd_mosi.address(11-1 DOWNTO 0),
       ram_diag_data_buf_jesd_write_export       => ram_diag_data_buf_jesd_mosi.wr,
       ram_diag_data_buf_jesd_writedata_export   => ram_diag_data_buf_jesd_mosi.wrdata(c_word_w-1 DOWNTO 0),
       ram_diag_data_buf_jesd_read_export        => ram_diag_data_buf_jesd_mosi.rd,
@@ -539,7 +539,7 @@ BEGIN
 
       reg_diag_data_buf_jesd_reset_export       => OPEN,
       reg_diag_data_buf_jesd_clk_export         => OPEN,
-      reg_diag_data_buf_jesd_address_export     => reg_diag_data_buf_jesd_mosi.address(c_sdp_reg_diag_data_buf_jesd_addr_w-1 DOWNTO 0),
+      reg_diag_data_buf_jesd_address_export     => reg_diag_data_buf_jesd_mosi.address(2-1 DOWNTO 0),
       reg_diag_data_buf_jesd_write_export       => reg_diag_data_buf_jesd_mosi.wr,
       reg_diag_data_buf_jesd_writedata_export   => reg_diag_data_buf_jesd_mosi.wrdata(c_word_w-1 DOWNTO 0),
       reg_diag_data_buf_jesd_read_export        => reg_diag_data_buf_jesd_mosi.rd,
diff --git a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_adc_input_and_timing.vhd b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_adc_input_and_timing.vhd
index 00d9bc5946efa386af23e9d9afd0e0eb5b027398..424218a2bcd45e080d308fdf2e288ff3b7b67044 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_adc_input_and_timing.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_adc_input_and_timing.vhd
@@ -1,6 +1,6 @@
 -------------------------------------------------------------------------------
 --
--- Copyright 2020
+-- Copyright 2021
 -- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
 -- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
 --
@@ -18,7 +18,7 @@
 --
 -------------------------------------------------------------------------------
 
--- Author : J Hargreaves
+-- Authors : J Hargreaves, L Hiemstra
 -- Purpose:  
 --   AIT - ADC (Jesd) receiver, input, timing and associated diagnostic blocks
 -- Description:
@@ -36,14 +36,11 @@ USE diag_lib.diag_pkg.ALL;
 USE dp_lib.dp_stream_pkg.ALL;
 USE work.sdp_pkg.ALL;
 
-ENTITY node_adc_input_and_timing IS
+ENTITY node_sdp_adc_input_and_timing IS
   GENERIC (
     g_technology              : NATURAL := c_tech_arria10_e1sg;
-    g_buf_nof_data            : NATURAL := 8192; --1024;
-    g_nof_streams             : NATURAL := 12;
-    g_nof_sync_n              : NATURAL := 4;          -- Three ADCs per RCU share a sync
-    g_aduh_buffer_nof_symbols : NATURAL := 512;        -- Default 512
-    g_bsn_sync_timeout        : NATURAL := 200000000;  -- Default 200M, overide for short simulation 
+    g_buf_nof_data            : NATURAL := c_sdp_V_si_db;
+    g_bsn_sync_timeout        : NATURAL := c_sdp_f_adc_MHz*10**6;  -- Default 200M, overide for short simulation 
     g_sim                     : BOOLEAN := FALSE  
   );
   PORT (
@@ -53,6 +50,7 @@ ENTITY node_adc_input_and_timing IS
     dp_clk                         : IN STD_LOGIC;
     dp_rst                         : IN STD_LOGIC;
 
+
     -- mm control buses
     -- JESD 
     jesd204b_mosi                  : IN  t_mem_mosi := c_mem_mosi_rst;
@@ -80,12 +78,6 @@ ENTITY node_adc_input_and_timing IS
     reg_bsn_monitor_input_mosi     : IN  t_mem_mosi;
     reg_bsn_monitor_input_miso     : OUT t_mem_miso;
 
-    -- Data buffer for raw samples
-    ram_diag_data_buf_jesd_mosi    : IN  t_mem_mosi;
-    ram_diag_data_buf_jesd_miso    : OUT t_mem_miso;
-    reg_diag_data_buf_jesd_mosi    : IN  t_mem_mosi;
-    reg_diag_data_buf_jesd_miso    : OUT t_mem_miso;
-
     -- Data buffer for framed samples (variable depth)
     ram_diag_data_buf_bsn_mosi     : IN  t_mem_mosi;
     ram_diag_data_buf_bsn_miso     : OUT t_mem_miso;
@@ -93,78 +85,89 @@ ENTITY node_adc_input_and_timing IS
     reg_diag_data_buf_bsn_miso     : OUT t_mem_miso;
 
     -- Aduh (statistics) monitor
-    ram_aduh_monitor_mosi          : IN  t_mem_mosi;
-    ram_aduh_monitor_miso          : OUT t_mem_miso;
     reg_aduh_monitor_mosi          : IN  t_mem_mosi;
     reg_aduh_monitor_miso          : OUT t_mem_miso;
 
+    -- JESD control
+    jesd_ctrl_mosi                 : IN  t_mem_mosi;
+    jesd_ctrl_miso                 : OUT t_mem_miso;
+
     -- JESD io signals
-    JESD204B_SERIAL_DATA           : IN    STD_LOGIC_VECTOR((c_sdp_jesd204b_bus_w*c_sdp_jesd204b_nof_bus)-1 downto 0); 
-    JESD204B_REFCLK                : IN    STD_LOGIC; 
-    JESD204B_SYSREF                : IN    STD_LOGIC;
-    JESD204B_SYNC_N                : OUT   STD_LOGIC_VECTOR((c_sdp_jesd204b_bus_w*c_sdp_jesd204b_nof_bus)-1 DOWNTO 0);
+    jesd204b_serial_data           : IN    STD_LOGIC_VECTOR(c_sdp_S_pn-1 downto 0); 
+    jesd204b_refclk                : IN    STD_LOGIC; 
+    jesd204b_sysref                : IN    STD_LOGIC;
+    jesd204b_sync_n                : OUT   STD_LOGIC_VECTOR(c_sdp_S_pn-1 DOWNTO 0);
 
     -- Streaming data output
-    out_sosi_arr                   : OUT t_dp_sosi_arr(g_nof_streams-1 DOWNTO 0)        
+    out_sosi_arr                   : OUT t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0)        
 
   );
-END node_adc_input_and_timing;
-
-
-ARCHITECTURE str OF node_adc_input_and_timing IS
+END node_sdp_adc_input_and_timing;
 
 
-  CONSTANT c_nof_streams_jesd204b   : NATURAL := 12;     -- IP is set up for 12 streams
-  CONSTANT c_nof_streams_db         : NATURAL := 2;      -- Streams of raw samples to record in db 
+ARCHITECTURE str OF node_sdp_adc_input_and_timing IS
 
   -- Waveform Generator
   CONSTANT c_wg_buf_directory       : STRING := "data/";
   CONSTANT c_wg_buf_dat_w           : NATURAL := 18; --default value of WG that fits 14 bits of ADC data
   CONSTANT c_wg_buf_addr_w          : NATURAL := 10; --default value of WG for 1024 samples;
-  SIGNAL wg_out_ovr                 : STD_LOGIC_VECTOR(g_nof_streams-1 DOWNTO 0);    
-  SIGNAL wg_out_val                 : STD_LOGIC_VECTOR(g_nof_streams-1 DOWNTO 0);    
-  SIGNAL wg_out_data                : STD_LOGIC_VECTOR(g_nof_streams*c_wg_buf_dat_w-1 DOWNTO 0);    
-  SIGNAL wg_out_sync                : STD_LOGIC_VECTOR(g_nof_streams-1 DOWNTO 0);    
+  SIGNAL wg_out_ovr                 : STD_LOGIC_VECTOR(c_sdp_S_pn-1 DOWNTO 0);    
+  SIGNAL wg_out_val                 : STD_LOGIC_VECTOR(c_sdp_S_pn-1 DOWNTO 0);    
+  SIGNAL wg_out_data                : STD_LOGIC_VECTOR(c_sdp_S_pn*c_wg_buf_dat_w-1 DOWNTO 0);    
+  SIGNAL wg_out_sync                : STD_LOGIC_VECTOR(c_sdp_S_pn-1 DOWNTO 0);    
   SIGNAL trigger_wg                 : STD_LOGIC;
 
   -- Frame parameters TBC
   CONSTANT c_bs_bsn_w               : NATURAL := 64; --51;
   CONSTANT c_bs_block_size          : NATURAL := 1024;
   CONSTANT c_bs_nof_block_per_sync  : NATURAL := 390625;  -- generate a sync every 2s for testing
-  CONSTANT c_dp_shiftram_nof_samples: NATURAL := 4096;
-  CONSTANT c_data_w                 : NATURAL := 16;
   CONSTANT c_dp_fifo_dc_size        : NATURAL := 64;
  
- 
   -- JESD signals
   SIGNAL rx_clk                     : STD_LOGIC; -- formerly jesd204b_frame_clk
   SIGNAL rx_rst                     : STD_LOGIC; 
   SIGNAL rx_sysref                  : STD_LOGIC; 
 
   -- Sosis and sosi arrays
-  SIGNAL rx_sosi_arr                : t_dp_sosi_arr(c_nof_streams_jesd204b-1 DOWNTO 0);         
-  SIGNAL dp_shiftram_snk_in_arr     : t_dp_sosi_arr(c_nof_streams_jesd204b-1 DOWNTO 0);         
-  SIGNAL ant_sosi_arr               : t_dp_sosi_arr(c_nof_streams_jesd204b-1 DOWNTO 0);
-  SIGNAL diag_data_buf_snk_in_arr   : t_dp_sosi_arr(c_nof_streams_db-1 DOWNTO 0);
+  SIGNAL rx_sosi_arr                : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0);         
+  SIGNAL dp_shiftram_snk_in_arr     : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0);         
+  SIGNAL ant_sosi_arr               : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0);
   SIGNAL bs_sosi                    : t_dp_sosi;    
-  SIGNAL wg_sosi_arr                : t_dp_sosi_arr(g_nof_streams-1 DOWNTO 0);    
-  SIGNAL mux_sosi_arr               : t_dp_sosi_arr(g_nof_streams-1 DOWNTO 0);         
-  SIGNAL nxt_mux_sosi_arr           : t_dp_sosi_arr(g_nof_streams-1 DOWNTO 0);
-  SIGNAL st_sosi_arr                : t_dp_sosi_arr(g_nof_streams-1 DOWNTO 0);    
+  SIGNAL wg_sosi_arr                : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0);    
+  SIGNAL mux_sosi_arr               : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0);         
+  SIGNAL nxt_mux_sosi_arr           : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0);
+  SIGNAL st_sosi_arr                : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0);    
 
+  SIGNAL mm_rst_internal            : STD_LOGIC; 
+  SIGNAL mm_jesd_ctrl_reg           : STD_LOGIC_VECTOR(c_word_w-1 DOWNTO 0);
+  SIGNAL jesd204b_disable_arr       : STD_LOGIC_VECTOR(c_sdp_S_pn-1 DOWNTO 0);
+  SIGNAL jesd204b_reset             : STD_LOGIC;
 
 BEGIN
 
+  -- The node AIT is reset at power up by mm_rst and under software control by jesd204b_reset.
+  -- The mm_rst internal will cause a reset on the rx_rst by the reset sequencer in the u_jesd204b.
+  -- The MM jesd204b_reset is intended for node AIT resynchronisation tests of the u_jesd204b.
+  -- The MM jesd204b_reset should not be applied in an SDP application, because this will cause
+  -- a disturbance in the block timing of the out_sosi_arr(i).sync,bsn,sop,eop. The other logic
+  -- in an SDP application assumes that the block timing of the out_sosi_arr(i) only contains
+  -- complete blocks, so from sop to eop.
+
+  mm_rst_internal <= mm_rst OR mm_jesd_ctrl_reg(31);
+  gen_jesd_disable : FOR I IN 0 TO c_sdp_S_pn-1 GENERATE
+    jesd204b_disable_arr(i) <= mm_jesd_ctrl_reg(i);
+  END GENERATE;
+
   -----------------------------------------------------------------------------
   -- JESD204B IP (ADC Handler)
   -----------------------------------------------------------------------------
   
   u_jesd204b: ENTITY tech_jesd204b_lib.tech_jesd204b 
   GENERIC MAP(
-    g_sim                => g_sim,     
-    g_technology         => g_technology,           
-    g_nof_streams        => c_nof_streams_jesd204b,
-    g_nof_sync_n         => g_nof_sync_n        
+    g_sim                => g_sim,                
+    g_nof_streams        => c_sdp_S_pn,
+    g_nof_sync_n         => c_sdp_S_pn/c_sdp_S_rcu, -- = 12/3 = 4
+    g_jesd_freq          => c_sdp_jesd204b_freq
   )
   PORT MAP(
     jesd204b_refclk      => JESD204B_REFCLK,   
@@ -175,57 +178,22 @@ BEGIN
     rx_clk               => rx_clk,          
     rx_rst               => rx_rst,          
     rx_sysref            => rx_sysref,          
+
+    jesd204b_disable_arr  => jesd204b_disable_arr,
   
     -- MM
     mm_clk               => mm_clk,           
-    mm_rst               => mm_rst,           
+    mm_rst               => mm_rst_internal,           
   
     jesd204b_mosi        => jesd204b_mosi,         
     jesd204b_miso        => jesd204b_miso,         
   
      -- Serial
     serial_tx_arr        => open,
-    serial_rx_arr        => JESD204B_SERIAL_DATA(c_nof_streams_jesd204b-1 downto 0)
+    serial_rx_arr        => JESD204B_SERIAL_DATA(c_sdp_S_pn-1 downto 0)
   );
 
 
-  gen_jesd_mon_in : FOR i IN 0 TO c_nof_streams_db-1 GENERATE
-    diag_data_buf_snk_in_arr(i).data(c_data_w-1 downto 0) <= rx_sosi_arr(i).data(c_data_w-1 downto 0);
-    diag_data_buf_snk_in_arr(i).valid <= rx_sosi_arr(i).valid;
-    diag_data_buf_snk_in_arr(i).sop   <= '0';
-    diag_data_buf_snk_in_arr(i).eop   <= '0';
-    diag_data_buf_snk_in_arr(i).err   <= (OTHERS=>'0');
-  END GENERATE;
-
-
-  -----------------------------------------------------------------------------
-  -- Diagnostic Data Buffer (Records 1024 raw ADC samples after the PPS)
-  --   ToDo: Remove this JESD DB when the second (BSN) data buffer is working correctly
-  -----------------------------------------------------------------------------
-
-  u_diag_data_buffer : ENTITY diag_lib.mms_diag_data_buffer
-  GENERIC MAP (
-    g_technology   => g_technology,
-    g_nof_streams  => c_nof_streams_db,
-    g_data_w       => c_data_w,
-    g_buf_nof_data => 1024,
-    g_buf_use_sync => TRUE -- when TRUE start filling the buffer at the in_sync, else after the last word was read
-  )
-  PORT MAP (
-    mm_rst            => mm_rst,
-    mm_clk            => mm_clk,
-    dp_rst            => rx_rst,
-    dp_clk            => rx_clk,
-
-    ram_data_buf_mosi => ram_diag_data_buf_jesd_mosi,
-    ram_data_buf_miso => ram_diag_data_buf_jesd_miso,
-    reg_data_buf_mosi => reg_diag_data_buf_jesd_mosi,
-    reg_data_buf_miso => reg_diag_data_buf_jesd_miso,
-
-    in_sosi_arr       => diag_data_buf_snk_in_arr,
-    in_sync           => rx_sysref
-  );
-
   -----------------------------------------------------------------------------
   -- Time delay: dp_shiftram
   -- . copied from unb1_bn_capture_input (apertif)
@@ -233,7 +201,7 @@ BEGIN
   -- . the input valid is always '1', even when there is no data 
   -----------------------------------------------------------------------------
   
-  gen_force_valid : FOR I IN 0 TO c_nof_streams_jesd204b-1 GENERATE
+  gen_force_valid : FOR I IN 0 TO c_sdp_S_pn-1 GENERATE
     p_sosi : PROCESS(rx_sosi_arr)
     BEGIN
       dp_shiftram_snk_in_arr(I)       <= rx_sosi_arr(I);
@@ -244,16 +212,16 @@ BEGIN
 
   u_dp_shiftram : ENTITY dp_lib.dp_shiftram
   GENERIC MAP (
-    g_nof_streams => c_nof_streams_jesd204b, 
-    g_nof_words   => c_dp_shiftram_nof_samples,
-    g_data_w      => c_data_w, 
+    g_nof_streams => c_sdp_S_pn, 
+    g_nof_words   => c_sdp_V_sample_delay,
+    g_data_w      => c_sdp_W_adc_jesd, 
     g_use_sync_in => TRUE
   )
   PORT MAP (
     dp_rst   => rx_rst,
     dp_clk   => rx_clk,
 
-    mm_rst   => mm_rst,
+    mm_rst   => mm_rst_internal,
     mm_clk   => mm_clk,
 
     sync_in  => bs_sosi.sync,
@@ -278,7 +246,7 @@ BEGIN
   )
   PORT MAP (
     -- Clocks and reset
-    mm_rst            => mm_rst,
+    mm_rst            => mm_rst_internal,
     mm_clk            => mm_clk,
     dp_rst            => rx_rst,
     dp_clk            => rx_clk,
@@ -299,7 +267,7 @@ BEGIN
   )
   PORT MAP (
     -- Memory-mapped clock domain
-    mm_rst      => mm_rst,
+    mm_rst      => mm_rst_internal,
     mm_clk      => mm_clk,
 
     reg_mosi    => reg_bsn_scheduler_wg_mosi,
@@ -320,7 +288,7 @@ BEGIN
 
   u_wg_arr : ENTITY diag_lib.mms_diag_wg_wideband_arr
   GENERIC MAP (
-    g_nof_streams        => g_nof_streams, 
+    g_nof_streams        => c_sdp_S_pn, 
     g_cross_clock_domain => TRUE,
     g_buf_dir            => c_wg_buf_directory,
 
@@ -332,11 +300,11 @@ BEGIN
     g_buf_addr_w         => c_wg_buf_addr_w,
     g_calc_support       => TRUE,
     g_calc_gain_w        => 1,
-    g_calc_dat_w         => c_wg_buf_dat_w
+    g_calc_dat_w         => c_sdp_W_adc
   )
   PORT MAP (
     -- Memory-mapped clock domain
-    mm_rst              => mm_rst,
+    mm_rst              => mm_rst_internal,
     mm_clk              => mm_clk,
 
     reg_mosi            => reg_wg_mosi,
@@ -358,7 +326,7 @@ BEGIN
   -- ADC/WG Mux (Input Select)
   -----------------------------------------------------------------------------
   
-  gen_mux : FOR I IN 0 TO g_nof_streams-1 GENERATE
+  gen_mux : FOR I IN 0 TO c_sdp_S_pn-1 GENERATE
     p_sosi : PROCESS(ant_sosi_arr(I), wg_sosi_arr(I))
     BEGIN
       -- Default use the ADC data
@@ -376,7 +344,7 @@ BEGIN
   -- Concatenate muxed data streams with bsn framing
   -----------------------------------------------------------------------------
   
-  gen_concat : FOR I IN 0 TO g_nof_streams-1 GENERATE
+  gen_concat : FOR I IN 0 TO c_sdp_S_pn-1 GENERATE
     p_sosi : PROCESS(mux_sosi_arr(I), bs_sosi)
     BEGIN
       st_sosi_arr(I)       <= bs_sosi;
@@ -405,7 +373,7 @@ BEGIN
   )
   PORT MAP (
     -- Memory-mapped clock domain
-    mm_rst      => mm_rst,
+    mm_rst      => mm_rst_internal,
     mm_clk      => mm_clk,
     reg_mosi    => reg_bsn_monitor_input_mosi,
     reg_miso    => reg_bsn_monitor_input_miso,
@@ -423,22 +391,20 @@ BEGIN
   u_aduh_monitor : ENTITY aduh_lib.mms_aduh_monitor_arr
   GENERIC MAP (
     g_cross_clock_domain   => TRUE,
-    g_nof_streams          => g_nof_streams,
-    g_symbol_w             => c_data_w,   --TBD 16?
+    g_nof_streams          => c_sdp_S_pn,
+    g_symbol_w             => c_sdp_W_adc_jesd,   --TBD 16?
     g_nof_symbols_per_data => 1,          -- Wideband factor is 1          
-    g_nof_accumulations    => 200000512,  -- = 195313 blocks * 1024 samples
-    g_buffer_nof_symbols   => g_aduh_buffer_nof_symbols,  -- default 512, larger for full design
-    g_buffer_use_sync      => TRUE        -- True to capture all streams synchronously
+    g_nof_accumulations    => 200000512   -- = 195313 blocks * 1024 samples
   )
   PORT MAP (
     -- Memory-mapped clock domain
-    mm_rst         => mm_rst,
+    mm_rst         => mm_rst_internal,
     mm_clk         => mm_clk,
 
     reg_mosi       => reg_aduh_monitor_mosi, -- read only access to the signal path data mean sum and power sum registers
     reg_miso       => reg_aduh_monitor_miso,
-    buf_mosi       => ram_aduh_monitor_mosi, -- read and overwrite access to the signal path data buffers
-    buf_miso       => ram_aduh_monitor_miso,
+    buf_mosi       => c_mem_mosi_rst,         -- Unused
+    buf_miso       => OPEN,
 
     -- Streaming clock domain
     st_rst         => rx_rst,
@@ -448,20 +414,20 @@ BEGIN
   );
 
 
- -----------------------------------------------------------------------------
--- Diagnostic Data Buffer
+  -----------------------------------------------------------------------------
+  -- Diagnostic Data Buffer
   -----------------------------------------------------------------------------
 
   u_diag_data_buffer_bsn : ENTITY diag_lib.mms_diag_data_buffer
   GENERIC MAP (
     g_technology   => g_technology,
-    g_nof_streams  => g_nof_streams,
-    g_data_w       => c_data_w,
+    g_nof_streams  => c_sdp_S_pn,
+    g_data_w       => c_sdp_W_adc_jesd,
     g_buf_nof_data => g_buf_nof_data,
     g_buf_use_sync => TRUE -- when TRUE start filling the buffer at the in_sync, else after the last word was read
   )
   PORT MAP (
-    mm_rst            => mm_rst,
+    mm_rst            => mm_rst_internal,
     mm_clk            => mm_clk,
     dp_rst            => rx_rst,
     dp_clk            => rx_clk,
@@ -481,10 +447,10 @@ BEGIN
   --   . Thin dual clock fifo to cross from jesd frame clock (rx_clk) to dp_clk domain
   -----------------------------------------------------------------------------
  
-  gen_dp_fifo_dc : FOR I IN 0 TO g_nof_streams-1 GENERATE
+  gen_dp_fifo_dc : FOR I IN 0 TO c_sdp_S_pn-1 GENERATE
     u_dp_fifo_dc : ENTITY dp_lib.dp_fifo_dc
       GENERIC MAP (
-        g_data_w         => c_data_w,
+        g_data_w         => c_sdp_W_adc_jesd,
         g_use_empty      => FALSE, --TRUE,
         g_use_ctrl       => TRUE,
         g_use_sync       => TRUE,
@@ -501,4 +467,28 @@ BEGIN
       );
   END GENERATE;
 
+  -----------------------------------------------------------------------------
+  -- JESD Control register
+  -----------------------------------------------------------------------------
+  u_mm_jesd_ctrl_reg : ENTITY common_lib.common_reg_r_w
+  GENERIC MAP (
+    g_reg       => c_sdp_jesd204b_mm_jesd_ctrl_reg,
+    g_init_reg  => (OTHERS => '0')
+  )
+  PORT MAP (
+    rst       => mm_rst,
+    clk       => mm_clk,
+    -- control side
+    wr_en     => jesd_ctrl_mosi.wr,
+    wr_adr    => jesd_ctrl_mosi.address(c_sdp_jesd204b_mm_jesd_ctrl_reg.adr_w-1 DOWNTO 0),
+    wr_dat    => jesd_ctrl_mosi.wrdata(c_sdp_jesd204b_mm_jesd_ctrl_reg.dat_w-1 DOWNTO 0),
+    rd_en     => jesd_ctrl_mosi.rd,
+    rd_adr    => jesd_ctrl_mosi.address(c_sdp_jesd204b_mm_jesd_ctrl_reg.adr_w-1 DOWNTO 0),
+    rd_dat    => jesd_ctrl_miso.rddata(c_sdp_jesd204b_mm_jesd_ctrl_reg.dat_w-1 DOWNTO 0),
+    rd_val    => OPEN,
+    -- data side
+    out_reg   => mm_jesd_ctrl_reg,
+    in_reg    => mm_jesd_ctrl_reg
+  );
+
 END str;
diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
index 26bfb350adc815289db13a14c71ea3279718322a..26c7088c62b8c7621ba54ac4e086d00f21584990 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
@@ -26,10 +26,12 @@
 -- Description:
 -- Remark:
 -- . See Document: L3 SDP Decision: SDP Parameter definitions.
+--   https://support.astron.nl/confluence/display/L2M/L3+SDP+Decision%3A+SDP+Parameter+definitions
 -------------------------------------------------------------------------------
 LIBRARY ieee, common_lib, rTwoSDF_lib, fft_lib, filter_lib, wpfb_lib;
 USE IEEE.std_logic_1164.ALL;
 USE common_lib.common_pkg.ALL;
+USE common_lib.common_mem_pkg.ALL;
 USE common_lib.common_field_pkg.ALL;
 USE rTwoSDF_lib.rTwoSDFPkg.ALL;
 USE fft_lib.fft_pkg.ALL; 
@@ -67,44 +69,46 @@ PACKAGE sdp_pkg is
   -------------------------------------------------
   -- SDP specific parameters as defined in:
   --  L3 SDP Decision: SDP Parameter definitions 
-  -------------------------------------------------
-  CONSTANT c_sdp_N_pol           : NATURAL := 2;
   CONSTANT c_sdp_N_beamsets      : NATURAL := 2;
-  CONSTANT c_sdp_N_sub           : NATURAL := 512;
   CONSTANT c_sdp_N_fft           : NATURAL := 1024;
-  CONSTANT c_sdp_S_pn            : NATURAL := 12;    
-  CONSTANT c_sdp_Q_fft           : NATURAL := 2;         
-  CONSTANT c_sdp_N_taps          : NATURAL := 16;  
-  CONSTANT c_sdp_W_adc           : NATURAL := 14;  
-  CONSTANT c_sdp_W_fir_coef      : NATURAL := 16;  
-  CONSTANT c_sdp_W_subband       : NATURAL := 18; 
-  CONSTANT c_sdp_P_pfb           : NATURAL := c_sdp_S_pn / c_sdp_Q_fft;
+  CONSTANT c_sdp_N_pn_lb         : NATURAL := 16;
+  CONSTANT c_sdp_N_pol           : NATURAL := 2;
+  CONSTANT c_sdp_N_sub           : NATURAL := 512;
+  CONSTANT c_sdp_N_taps          : NATURAL := 16;
+  CONSTANT c_sdp_Q_fft           : NATURAL := 2;
+  CONSTANT c_sdp_S_pn            : NATURAL := 12;
+  CONSTANT c_sdp_S_rcu           : NATURAL := 3;
   CONSTANT c_sdp_S_sub_bf        : NATURAL := 488;
+  CONSTANT c_sdp_V_sample_delay  : NATURAL := 4096;
+  CONSTANT c_sdp_V_si_db         : NATURAL := 1024;
+  CONSTANT c_sdp_V_si_db_large   : NATURAL := 131072;
+  CONSTANT c_sdp_W_adc           : NATURAL := 14;
+  CONSTANT c_sdp_W_adc_jesd      : NATURAL := 16;
+  CONSTANT c_sdp_W_beamlet       : NATURAL := 8;
+  CONSTANT c_sdp_W_beamlet_scale : NATURAL := 16;
+  CONSTANT c_sdp_W_beamlet_sum   : NATURAL := 18;
+  CONSTANT c_sdp_W_bf_magnitude  : NATURAL := 1;
+  CONSTANT c_sdp_W_bf_weight     : NATURAL := 16;
+  CONSTANT c_sdp_W_fir_coef      : NATURAL := 16;
+  CONSTANT c_sdp_W_gn_id         : NATURAL := 5;
+  CONSTANT c_sdp_W_sub_magnitude : NATURAL := 2;
+  CONSTANT c_sdp_W_sub_weight    : NATURAL := 16;
+  CONSTANT c_sdp_W_subband       : NATURAL := 18;
   CONSTANT c_sdp_f_adc_MHz       : NATURAL := 200;
+
+  -- Derived constants
+  CONSTANT c_sdp_P_pfb           : NATURAL := c_sdp_S_pn / c_sdp_Q_fft;
   CONSTANT c_sdp_T_adc           : TIME    := (10**6 / c_sdp_f_adc_MHz) * 1 ps;
   CONSTANT c_sdp_T_sub           : TIME    := c_sdp_N_fft * c_sdp_T_adc;
-  CONSTANT c_sdp_W_sub_weight    : NATURAL := 16;
-  CONSTANT c_sdp_W_sub_magnitude : NATURAL := 2;
-  CONSTANT c_sdp_W_sub_fraction  : NATURAL := c_sdp_W_sub_weight - c_sdp_W_sub_magnitude -1;
-  CONSTANT c_sdp_W_bf_weight     : NATURAL := 16;
-  CONSTANT c_sdp_W_bf_magnitude  : NATURAL := 1;
   CONSTANT c_sdp_W_bf_fraction   : NATURAL := c_sdp_W_bf_weight - c_sdp_W_bf_magnitude -1;
-  CONSTANT c_sdp_W_bf_product    : NATURAL := c_sdp_W_subband + c_sdp_W_bf_weight -1; 
-  CONSTANT c_sdp_W_beamlet_sum   : NATURAL := 18; 
-  CONSTANT c_sdp_W_beamlet       : NATURAL := 8; 
-  CONSTANT c_sdp_W_beamlet_scale : NATURAL := 16; 
-  CONSTANT c_sdp_W_gn_id         : NATURAL := 5;
-  CONSTANT c_sdp_N_pn_lb         : NATURAL := 16;
+  CONSTANT c_sdp_W_bf_product    : NATURAL := c_sdp_W_subband + c_sdp_W_bf_weight -1;
+  CONSTANT c_sdp_W_sub_fraction  : NATURAL := c_sdp_W_sub_weight - c_sdp_W_sub_magnitude -1;
 
   -- 
   CONSTANT c_sdp_marker_sst : NATURAL := 83;  -- = 0x53 = 'S'
   CONSTANT c_sdp_marker_bst : NATURAL := 66;  -- = 0x42 = 'B'
   CONSTANT c_sdp_marker_xst : NATURAL := 88;  -- = 0x58 = 'X'
 
-  -- AIT constants
-  CONSTANT c_sdp_ait_buf_nof_data_jesd : NATURAL := 1024; -- 1024 14 bit samples fit in one M20k BRAM 
-  CONSTANT c_sdp_ait_buf_nof_data_bsn  : NATURAL := 1024; -- 1024 14 bit samples fit in one M20k BRAM
- 
   -- In SDP c_nof_channels = 2**nof_chan = 1 and wb_factor = 1, 
   -- therefore these parameters are not explicitly used in calculation of derived constants
   -- LTS 2020_11_23:
@@ -128,8 +132,12 @@ PACKAGE sdp_pkg is
    c_fil_ppf_pipeline);
 
   -- JESD204
-  CONSTANT c_sdp_jesd204b_bus_w   : NATURAL := 12;
-  CONSTANT c_sdp_jesd204b_nof_bus : NATURAL := 1;
+  CONSTANT c_sdp_jesd204b_freq             : STRING := "200MHz";
+  CONSTANT c_sdp_jesd204b_mm_jesd_ctrl_reg : t_c_mem := (latency  => 1,
+                                                         adr_w    => 1,
+                                                         dat_w    => c_word_w,
+                                                         nof_dat  => 1,
+                                                         init_sl  => '0');
 
   -- AIT MM address widths
   CONSTANT c_sdp_jesd204b_addr_w               : NATURAL := 8 + ceil_log2(c_sdp_S_pn); 
@@ -139,9 +147,7 @@ PACKAGE sdp_pkg is
   CONSTANT c_sdp_reg_dp_shiftram_addr_w        : NATURAL := 1 + ceil_log2(c_sdp_S_pn); 
   CONSTANT c_sdp_reg_bsn_source_addr_w         : NATURAL := 2;
   CONSTANT c_sdp_reg_bsn_scheduler_addr_w      : NATURAL := 1;
-  CONSTANT c_sdp_ram_diag_data_buf_jesd_addr_w : NATURAL := ceil_log2(2*c_sdp_ait_buf_nof_data_jesd);
-  CONSTANT c_sdp_reg_diag_data_buf_jesd_addr_w : NATURAL := 1 + ceil_log2(2);
-  CONSTANT c_sdp_ram_diag_data_buf_bsn_addr_w  : NATURAL := ceil_log2(c_sdp_S_pn*c_sdp_ait_buf_nof_data_bsn);  
+  CONSTANT c_sdp_ram_diag_data_buf_bsn_addr_w  : NATURAL := ceil_log2(c_sdp_S_pn*c_sdp_V_si_db_large); -- Dimension DB address range for largest DB, so that both the large and the default small DB fit.
   CONSTANT c_sdp_reg_diag_data_buf_bsn_addr_w  : NATURAL := 1 + ceil_log2(c_sdp_S_pn);  
   CONSTANT c_sdp_reg_aduh_monitor_addr_w       : NATURAL := 2 + ceil_log2(c_sdp_S_pn);