From e5d3bcf433aaab96794097ec7856d1fea0e40840 Mon Sep 17 00:00:00 2001
From: Zanting <zanting>
Date: Fri, 14 Aug 2015 14:32:26 +0000
Subject: [PATCH] Added new ddr versions

---
 .../designs/unb1_test/src/vhdl/ddr_stream.vhd | 427 +++------
 .../unb1_test/src/vhdl/mmm_unb1_test.vhd      | 517 ++++++-----
 .../unb1_test/src/vhdl/qsys_unb1_test_pkg.vhd | 137 +--
 .../designs/unb1_test/src/vhdl/unb1_test.vhd  | 826 +++++++++++-------
 4 files changed, 956 insertions(+), 951 deletions(-)

diff --git a/boards/uniboard1/designs/unb1_test/src/vhdl/ddr_stream.vhd b/boards/uniboard1/designs/unb1_test/src/vhdl/ddr_stream.vhd
index 94c979b48f..7d51b6de51 100644
--- a/boards/uniboard1/designs/unb1_test/src/vhdl/ddr_stream.vhd
+++ b/boards/uniboard1/designs/unb1_test/src/vhdl/ddr_stream.vhd
@@ -1,8 +1,7 @@
 -------------------------------------------------------------------------------
 --
--- Copyright (C) 2015
+-- Copyright (C) 2011
 -- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
--- JIVE (Joint Institute for VLBI in Europe) <http://www.jive.nl/>
 -- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
 --
 -- This program is free software: you can redistribute it and/or modify
@@ -20,331 +19,171 @@
 --
 -------------------------------------------------------------------------------
 
-LIBRARY IEEE, common_lib, unb1_board_lib, dp_lib, technology_lib, tech_ddr_lib, diag_lib, io_ddr_lib, reorder_lib;
+LIBRARY IEEE, common_lib, unb1_board_lib, dp_lib, diag_lib, technology_lib, tech_ddr_lib, io_ddr_lib, diagnostics_lib;
 USE IEEE.STD_LOGIC_1164.ALL;
 USE IEEE.NUMERIC_STD.ALL;
 USE common_lib.common_pkg.ALL;
 USE common_lib.common_mem_pkg.ALL;
-USE common_lib.common_interface_layers_pkg.ALL;
-USE common_lib.common_network_layers_pkg.ALL;
-USE common_lib.common_field_pkg.ALL;
-USE common_lib.common_mem_pkg.ALL;
 USE unb1_board_lib.unb1_board_pkg.ALL;
-USE technology_lib.technology_pkg.ALL;
-USE technology_lib.technology_select_pkg.ALL;
-USE tech_ddr_lib.tech_ddr_pkg.ALL;
 USE dp_lib.dp_stream_pkg.ALL;
 USE diag_lib.diag_pkg.ALL;
-USE reorder_lib.reorder_pkg.ALL;
-USE work.unb1_test_pkg.ALL;
+USE technology_lib.technology_select_pkg.ALL;
+USE tech_ddr_lib.tech_ddr_pkg.ALL;
 
 ENTITY ddr_stream IS
   GENERIC (
-    g_sim                       : BOOLEAN := FALSE;
-    g_technology                : NATURAL := c_tech_stratixiv;
-    g_nof_streams               : NATURAL;
-    g_data_w                    : NATURAL;
-
-    g_bg_block_size             : NATURAL := 1024;
-    g_bg_gapsize                : NATURAL := 0;
-    g_bg_blocks_per_sync        : NATURAL := 200000;
-
-    g_tech_ddr                  : t_c_tech_ddr := c_tech_ddr3_4g_800m_master;
-    g_ena_pre_transp            : BOOLEAN := FALSE;
-    g_reorder_seq               : t_reorder_seq := c_reorder_seq_same
+    g_sim        : BOOLEAN := FALSE;
+    g_technology : NATURAL := c_tech_select_default;
+    g_tech_ddr   : t_c_tech_ddr;
+    g_st_dat_w   : NATURAL := 64 -- Any power of two 8..256
   );
   PORT (
     -- System
-    mm_rst                      : IN  STD_LOGIC;
-    mm_clk                      : IN  STD_LOGIC;
-
-    dp_rst                      : IN  STD_LOGIC;
-    dp_clk                      : IN  STD_LOGIC;
-
-    -- blockgen mm
-    reg_diag_bg_mosi            : IN  t_mem_mosi := c_mem_mosi_rst;  -- BG control register (one for all streams)
-    reg_diag_bg_miso            : OUT t_mem_miso;
-    ram_diag_bg_mosi            : IN  t_mem_mosi := c_mem_mosi_rst;  -- BG buffer RAM (one per stream)
-    ram_diag_bg_miso            : OUT t_mem_miso;
-    reg_diag_tx_seq_mosi        : IN  t_mem_mosi := c_mem_mosi_rst;
-    reg_diag_tx_seq_miso        : OUT t_mem_miso;
-
-    -- bsn
-    reg_bsn_monitor_mosi        : IN  t_mem_mosi;
-    reg_bsn_monitor_miso        : OUT t_mem_miso;
-
-    -- databuffer
-    reg_diag_data_buf_mosi      : IN  t_mem_mosi := c_mem_mosi_rst;
-    reg_diag_data_buf_miso      : OUT t_mem_miso;
-    ram_diag_data_buf_mosi      : IN  t_mem_mosi := c_mem_mosi_rst;
-    ram_diag_data_buf_miso      : OUT t_mem_miso;
-    reg_diag_rx_seq_mosi        : IN  t_mem_mosi := c_mem_mosi_rst;
-    reg_diag_rx_seq_miso        : OUT t_mem_miso;
-
-    -- IO DDR register map      
-    reg_io_ddr_mosi             : IN  t_mem_mosi;
-    reg_io_ddr_miso             : OUT t_mem_miso;
-
-    -- Reorder transpose        
-    ram_ss_ss_transp_mosi       : IN  t_mem_mosi;
-    ram_ss_ss_transp_miso       : OUT t_mem_miso;
-
-    -- SO-DIMM Memory Bank I
-    MB_I_IN                     : IN    t_tech_ddr3_phy_in;
-    MB_I_IO                     : INOUT t_tech_ddr3_phy_io;
-    MB_I_OU                     : OUT   t_tech_ddr3_phy_ou
-  );
-END ddr_stream;
+    mm_rst                   : IN    STD_LOGIC;
+    mm_clk                   : IN    STD_LOGIC;
 
+    dp_rst                   : IN    STD_LOGIC;
+    dp_clk                   : IN    STD_LOGIC;
 
+    ddr_ref_clk              : IN    STD_LOGIC;
+    ddr_ref_rst              : IN    STD_LOGIC;
 
-ARCHITECTURE str OF ddr_stream IS
+    -- Clock outputs
+    ddr_out_clk              : OUT   STD_LOGIC;
+    ddr_out_rst              : OUT   STD_LOGIC;
 
-  -- Block generator
-  CONSTANT c_bg_ctrl                   : t_diag_block_gen := ('0',    -- enable (disabled by default) 
-                                                              '0',    -- enable_sync        
-                                                              TO_UVEC(     g_bg_block_size, c_diag_bg_samples_per_packet_w),
-                                                              TO_UVEC(g_bg_blocks_per_sync, c_diag_bg_blocks_per_sync_w),
-                                                              TO_UVEC(        g_bg_gapsize, c_diag_bg_gapsize_w),
-                                                              TO_UVEC(                   0, c_diag_bg_mem_low_adrs_w),
-                                                              TO_UVEC(   g_bg_block_size-1, c_diag_bg_mem_high_adrs_w),
-                                                              TO_UVEC(                   0, c_diag_bg_bsn_init_w));
+    -- MM interface
+    reg_io_ddr_mosi          : IN    t_mem_mosi := c_mem_mosi_rst;
+    reg_io_ddr_miso          : OUT   t_mem_miso;
 
-  CONSTANT c_max_nof_words_per_block   : NATURAL := g_bg_block_size;
-  CONSTANT c_min_nof_words_per_block   : NATURAL := 1;
-  CONSTANT c_def_nof_blocks_per_packet : NATURAL := 1;
+    -- Data Buffer Control
+    reg_diag_data_buf_mosi   : IN    t_mem_mosi;
+    reg_diag_data_buf_miso   : OUT   t_mem_miso;
 
+    -- Data Buffer Data
+    ram_diag_data_buf_mosi   : IN    t_mem_mosi;
+    ram_diag_data_buf_miso   : OUT   t_mem_miso;
 
-  -- ddr
-  CONSTANT c_wr_fifo_depth             : NATURAL  := 128;     -- >=16                             , defined at DDR side of the FIFO.
-  CONSTANT c_rd_fifo_depth             : NATURAL  := 256;     -- >=16 AND >g_tech_ddr.maxburstsize, defined at DDR side of the FIFO. 
+    -- TX Sequencer
+    reg_diag_tx_seq_mosi     : IN    t_mem_mosi;
+    reg_diag_tx_seq_miso     : OUT   t_mem_miso;
 
+    -- RX Sequencer
+    reg_diag_rx_seq_mosi     : IN    t_mem_mosi;
+    reg_diag_rx_seq_miso     : OUT   t_mem_miso;
 
-  SIGNAL block_gen_src_out_arr       : t_dp_sosi_arr(g_nof_streams-1 DOWNTO 0);
-  SIGNAL block_gen_src_in_arr        : t_dp_siso_arr(g_nof_streams-1 DOWNTO 0) := (OTHERS=> c_dp_siso_rdy);
-  SIGNAL fifo_block_gen_src_out_arr  : t_dp_sosi_arr(g_nof_streams-1 DOWNTO 0);
-  SIGNAL fifo_block_gen_src_in_arr   : t_dp_siso_arr(g_nof_streams-1 DOWNTO 0) := (OTHERS=> c_dp_siso_rdy);
-
-  SIGNAL diag_data_buf_snk_in_arr    : t_dp_sosi_arr(g_nof_streams-1 DOWNTO 0);
-  SIGNAL diag_data_buf_snk_out_arr   : t_dp_siso_arr(g_nof_streams-1 DOWNTO 0);
-
-  -- Signals to interface with the DDR conroller and memory model.
-  SIGNAL ctlr_dvr_miso               : t_mem_ctlr_miso;
-  SIGNAL ctlr_dvr_mosi               : t_mem_ctlr_mosi;
-
-  SIGNAL to_mem_siso                 : t_dp_siso := c_dp_siso_rdy;
-  SIGNAL to_mem_sosi                 : t_dp_sosi;
-
-  SIGNAL from_mem_siso               : t_dp_siso := c_dp_siso_rdy;
-  SIGNAL from_mem_sosi               : t_dp_sosi;
-
-  SIGNAL ddr_ref_rst                 : STD_LOGIC;
-  SIGNAL ddr_out_clk_i               : STD_LOGIC;
-  SIGNAL ddr_out_rst_i               : STD_LOGIC;
-
-BEGIN
+    -- DDR3 pass on termination control from master to slave controller
+    term_ctrl_out            : OUT   t_tech_ddr3_phy_terminationcontrol;
+    term_ctrl_in             : IN    t_tech_ddr3_phy_terminationcontrol := c_tech_ddr3_phy_terminationcontrol_rst;
 
-  -----------------------------------------------------------------------------
-  -- TX: Block generator and DP fifo
-  -----------------------------------------------------------------------------
-  u_mms_diag_block_gen: ENTITY diag_lib.mms_diag_block_gen
-  GENERIC MAP (
-    g_nof_streams        => g_nof_streams,
-    g_buf_dat_w          => g_data_w,
-    g_buf_addr_w         => ceil_log2(TO_UINT(c_bg_ctrl.samples_per_packet)),
-    g_file_index_arr     => array_init(0, g_nof_streams),
-    g_file_name_prefix   => "hex/counter_data_" & NATURAL'IMAGE(g_data_w),
-    g_diag_block_gen_rst => c_bg_ctrl,
-    g_use_tx_seq         => TRUE
-  )
-  PORT MAP (
-    mm_rst           => mm_rst,
-    mm_clk           => mm_clk,
-
-    dp_rst           => dp_rst,
-    dp_clk           => dp_clk,
-    en_sync          => '1',
-
-    out_sosi_arr     => block_gen_src_out_arr,
-    out_siso_arr     => block_gen_src_in_arr,
-
-    reg_bg_ctrl_mosi => reg_diag_bg_mosi,
-    reg_bg_ctrl_miso => reg_diag_bg_miso,
-    ram_bg_data_mosi => ram_diag_bg_mosi,
-    ram_bg_data_miso => ram_diag_bg_miso,
-    reg_tx_seq_mosi  => reg_diag_tx_seq_mosi,
-    reg_tx_seq_miso  => reg_diag_tx_seq_miso
+    -- SO-DIMM Memory Bank I = ddr3_I
+    phy_3_in                 : IN    t_tech_ddr3_phy_in;
+    phy_3_io                 : INOUT t_tech_ddr3_phy_io;
+    phy_3_ou                 : OUT   t_tech_ddr3_phy_ou
   );
+END ddr_stream;
 
 
+ARCHITECTURE str OF ddr_stream IS
 
-  u_dp_bsn_monitor : ENTITY dp_lib.mms_dp_bsn_monitor
-  GENERIC MAP (
-    g_nof_streams        => g_nof_streams,
-    g_cross_clock_domain => TRUE,
-    --g_sync_timeout       => g_bg_blocks_per_sync*(g_bg_block_size+g_bg_gapsize),
-    g_cnt_sop_w          => c_word_w,--ceil_log2(g_bg_blocks_per_sync+1),
-    g_cnt_valid_w        => c_word_w,--ceil_log2(g_bg_blocks_per_sync*g_bg_block_size+1),
-    g_log_first_bsn      => TRUE
-  )
-  PORT MAP (
-    mm_rst      => mm_rst,
-    mm_clk      => mm_clk,
-    reg_mosi    => reg_bsn_monitor_mosi,
-    reg_miso    => reg_bsn_monitor_miso,
-
-    dp_rst      => dp_rst,
-    dp_clk      => dp_clk,
-    in_siso_arr => diag_data_buf_snk_out_arr,
-    in_sosi_arr => diag_data_buf_snk_in_arr
-  );
-
-  diag_data_buf_snk_out_arr <= (OTHERS=>c_dp_siso_rdy);
-
-  u_diag_data_buffer : ENTITY diag_lib.mms_diag_data_buffer
-  GENERIC MAP (
-    g_nof_streams  => g_nof_streams,
-    g_data_w       => 32, --g_data_w, --FIXME
-    g_buf_nof_data => 1024,
-    g_buf_use_sync => FALSE, -- sync by reading last address of data buffer
-    g_use_rx_seq   => TRUE
-  )
-  PORT MAP (
-    mm_rst            => mm_rst,
-    mm_clk            => mm_clk,
-    dp_rst            => dp_rst,
-    dp_clk            => dp_clk,
-
-    ram_data_buf_mosi => ram_diag_data_buf_mosi,
-    ram_data_buf_miso => ram_diag_data_buf_miso,
-    reg_data_buf_mosi => reg_diag_data_buf_mosi,
-    reg_data_buf_miso => reg_diag_data_buf_miso,
-    reg_rx_seq_mosi   => reg_diag_rx_seq_mosi,
-    reg_rx_seq_miso   => reg_diag_rx_seq_miso,
-
-    in_sync           => diag_data_buf_snk_in_arr(0).sync,
-    in_sosi_arr       => diag_data_buf_snk_in_arr
-  );
-
-
-  u_transpose: ENTITY reorder_lib.reorder_transpose
-  GENERIC MAP(
-    g_nof_streams    => g_nof_streams,
-    g_in_dat_w       => g_data_w,
-    g_frame_size_in  => g_reorder_seq.wr_chunksize,
-    g_frame_size_out => g_reorder_seq.wr_chunksize,
-    g_use_complex    => FALSE,
-    g_ena_pre_transp => g_ena_pre_transp,
-    g_reorder_seq    => g_reorder_seq
-  )
-  PORT MAP (
-    mm_rst                => mm_rst,
-    mm_clk                => mm_clk,
-
-    dp_rst                => ddr_out_rst_i,
-    dp_clk                => ddr_out_clk_i,
-
-    -- ST sink                      
-    snk_out_arr           => block_gen_src_in_arr,
-    snk_in_arr            => block_gen_src_out_arr,
-
-    -- ST source          
-    src_in_arr            => (OTHERS => c_dp_siso_rdy),
-    src_out_arr           => diag_data_buf_snk_in_arr,
+  CONSTANT c_wr_data_w              : NATURAL  := g_st_dat_w;
+  CONSTANT c_rd_data_w              : NATURAL  := g_st_dat_w;
+  CONSTANT c_data_w                 : NATURAL  := g_st_dat_w;
 
-    ram_ss_ss_transp_mosi => ram_ss_ss_transp_mosi,
-    ram_ss_ss_transp_miso => ram_ss_ss_transp_miso,
+  CONSTANT c_wr_fifo_depth          : NATURAL  := 1024;     -- >=16                             , defined at DDR side of the FIFO.
+  CONSTANT c_rd_fifo_depth          : NATURAL  := 1024;     -- >=16 AND >g_tech_ddr.maxburstsize, defined at DDR side of the FIFO.
 
-    -- Control interface to the external memory
-    dvr_miso              => ctlr_dvr_miso,
-    dvr_mosi              => ctlr_dvr_mosi,
+  CONSTANT c_use_bg                 : BOOLEAN  := FALSE;
+  CONSTANT c_use_tx_seq             : BOOLEAN  := TRUE;
+  CONSTANT c_use_db                 : BOOLEAN  := FALSE;
+  CONSTANT c_use_rx_seq             : BOOLEAN  := TRUE;
+  CONSTANT c_buf_nof_data           : NATURAL  := 1024;
+  CONSTANT c_nof_streams            : NATURAL  := 1;
+  CONSTANT c_seq_dat_w              : NATURAL  := 16;
 
-    -- Data interface to the external memory
-    to_mem_src_out        => to_mem_sosi,
-    to_mem_src_in         => to_mem_siso,
+  SIGNAL en_sync                    : STD_LOGIC;
 
-    from_mem_snk_in       => from_mem_sosi,
-    from_mem_snk_out      => from_mem_siso
+  SIGNAL out_siso_arr               : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0) := (OTHERS=>c_dp_siso_rdy);  -- Default xon='1'
+  SIGNAL out_sosi_arr               : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0);  -- Output SOSI that contains the waveform data
+  SIGNAL in_siso_arr                : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0) := (OTHERS=>c_dp_siso_rdy);  -- Default xon='1'
+  SIGNAL in_sosi_arr                : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0);
 
-  );
+BEGIN
 
-  u_areset_ddr_ref_rst : ENTITY common_lib.common_areset
-  GENERIC MAP(
-    g_rst_level => '1',
-    g_delay_len => 40
-  )
-  PORT MAP(
-    clk     => dp_clk,
-    in_rst  => '0',
-    out_rst => ddr_ref_rst
-  );
+  u_mms_io_ddr_diag : ENTITY io_ddr_lib.mms_io_ddr_diag
+    GENERIC MAP(
+      -- System
+      g_technology       => g_technology,
+      g_dp_data_w        => g_st_dat_w,
+      g_dp_seq_dat_w     => c_seq_dat_w,
+      g_dp_wr_fifo_depth => c_wr_fifo_depth,
+      g_dp_rd_fifo_depth => c_rd_fifo_depth,
+      -- IO_DDR
+      g_io_tech_ddr      => g_tech_ddr,
+      -- DIAG data buffer
+      g_db_use_db        => c_use_db,
+      g_db_buf_nof_data  => c_buf_nof_data
+    )
+    PORT MAP(
+      ---------------------------------------------------------------------------
+      -- System
+      ---------------------------------------------------------------------------
+      mm_rst              => mm_rst,
+      mm_clk              => mm_clk,
+      dp_rst              => dp_rst,
+      dp_clk              => dp_clk,
+
+      ---------------------------------------------------------------------------
+      -- IO_DDR
+      ---------------------------------------------------------------------------
+      -- DDR reference clock
+      ctlr_ref_clk        => ddr_ref_clk,
+      ctlr_ref_rst        => ddr_ref_rst,
+
+      -- DDR controller clock domain
+      ctlr_clk_out        => ddr_out_clk,
+      ctlr_rst_out        => ddr_out_rst,
+
+      ctlr_clk_in         => dp_clk,
+      ctlr_rst_in         => dp_rst,
+
+      -- MM interface
+      reg_io_ddr_mosi     => reg_io_ddr_mosi,
+      reg_io_ddr_miso     => reg_io_ddr_miso,
+
+      -- Write / read FIFO status for monitoring purposes (in dp_clk domain)
+      wr_fifo_usedw       => OPEN,
+      rd_fifo_usedw       => OPEN,
+
+      -- DDR3 pass on termination control from master to slave controller
+      term_ctrl_out       => term_ctrl_out,
+      term_ctrl_in        => term_ctrl_in,
+
+      -- DDR3 PHY external interface
+      phy3_in             => phy_3_in,
+      phy3_io             => phy_3_io,
+      phy3_ou             => phy_3_ou,
+
+      ---------------------------------------------------------------------------
+      -- DIAG Tx seq
+      ---------------------------------------------------------------------------
+      -- MM interface
+      reg_tx_seq_mosi     => reg_diag_tx_seq_mosi,
+      reg_tx_seq_miso     => reg_diag_tx_seq_miso,
+
+      ---------------------------------------------------------------------------
+      -- DIAG rx seq with optional data buffer
+      ---------------------------------------------------------------------------
+      -- MM interface
+      reg_data_buf_mosi   => reg_diag_data_buf_mosi,
+      reg_data_buf_miso   => reg_diag_data_buf_miso,
+
+      ram_data_buf_mosi   => ram_diag_data_buf_mosi,
+      ram_data_buf_miso   => ram_diag_data_buf_miso,
+
+      reg_rx_seq_mosi     => reg_diag_rx_seq_mosi,
+      reg_rx_seq_miso     => reg_diag_rx_seq_miso
+    );
 
-  ------------------------------------------------------------------------------
-  -- DDR3 MODULE 0, MB_I
-  ------------------------------------------------------------------------------
-  u_ddr_mem_ctrl : ENTITY io_ddr_lib.io_ddr
-  GENERIC MAP(
-    g_technology             => g_technology,
-    g_tech_ddr               => g_tech_ddr,
-    g_cross_domain_dvr_ctlr  => FALSE,
-    g_wr_data_w              => g_data_w,
-    g_wr_fifo_depth          => c_wr_fifo_depth,
-    g_rd_fifo_depth          => c_rd_fifo_depth,
-    g_rd_data_w              => g_data_w,
-    g_wr_flush_mode          => "SYN",
-    g_wr_flush_use_channel   => FALSE,
-    g_wr_flush_start_channel => 0,
-    g_wr_flush_nof_channels  => 1
-  )
-  PORT MAP (
-    mm_rst          => mm_rst,
-    mm_clk          => mm_clk,
-
-    -- MM register map for DDR controller status info
-    reg_io_ddr_mosi => reg_io_ddr_mosi,
-    reg_io_ddr_miso => reg_io_ddr_miso,
-
-    -- DDR reference clock
-    ctlr_ref_clk    => dp_clk,
-    ctlr_ref_rst    => ddr_ref_rst,
-
-    -- DDR controller clock domain
-    ctlr_clk_out    => ddr_out_clk_i,
-    ctlr_rst_out    => ddr_out_rst_i,
-
-    ctlr_clk_in     => ddr_out_clk_i,
-    ctlr_rst_in     => ddr_out_rst_i,
-
-
-    -- Driver clock domain
-    dvr_clk         => ddr_out_clk_i,
-    dvr_rst         => ddr_out_rst_i,
-
-    dvr_miso        => ctlr_dvr_miso,
-    dvr_mosi        => ctlr_dvr_mosi,
-
-    -- Write FIFO clock domain
-    wr_clk          => ddr_out_clk_i,
-    wr_rst          => ddr_out_rst_i,
-
-    wr_fifo_usedw   => OPEN,
-    wr_sosi         => to_mem_sosi,
-    wr_siso         => to_mem_siso,
-
-    -- Read FIFO clock domain
-    rd_clk          => ddr_out_clk_i,
-    rd_rst          => ddr_out_rst_i,
-
-    rd_fifo_usedw   => OPEN,
-    rd_sosi         => from_mem_sosi,
-    rd_siso         => from_mem_siso,
-
-    term_ctrl_out   => OPEN,
-    term_ctrl_in    => OPEN,
-
-    phy3_in         => MB_I_IN,
-    phy3_io         => MB_I_IO,
-    phy3_ou         => MB_I_OU
-  );
 END str;
 
diff --git a/boards/uniboard1/designs/unb1_test/src/vhdl/mmm_unb1_test.vhd b/boards/uniboard1/designs/unb1_test/src/vhdl/mmm_unb1_test.vhd
index 47e798d226..91c8309633 100644
--- a/boards/uniboard1/designs/unb1_test/src/vhdl/mmm_unb1_test.vhd
+++ b/boards/uniboard1/designs/unb1_test/src/vhdl/mmm_unb1_test.vhd
@@ -53,80 +53,73 @@ ENTITY mmm_unb1_test IS
     g_bg_block_size     : NATURAL
   );
   PORT (
-    mm_rst                         : IN  STD_LOGIC;
-    mm_clk                         : IN  STD_LOGIC;
+    mm_rst                               : IN  STD_LOGIC;
+    mm_clk                               : IN  STD_LOGIC;
+
+    pout_wdi                             : OUT STD_LOGIC;
 
-    pout_wdi                       : OUT STD_LOGIC;
-                             
     -- Manual WDI override
-    reg_wdi_mosi                   : OUT t_mem_mosi;
-    reg_wdi_miso                   : IN  t_mem_miso;
-                             
+    reg_wdi_mosi                         : OUT t_mem_mosi;
+    reg_wdi_miso                         : IN  t_mem_miso;
+
     -- system_info
-    reg_unb_system_info_mosi       : OUT t_mem_mosi;
-    reg_unb_system_info_miso       : IN  t_mem_miso;
-    rom_unb_system_info_mosi       : OUT t_mem_mosi;
-    rom_unb_system_info_miso       : IN  t_mem_miso;
-                             
+    reg_unb_system_info_mosi             : OUT t_mem_mosi;
+    reg_unb_system_info_miso             : IN  t_mem_miso;
+    rom_unb_system_info_mosi             : OUT t_mem_mosi;
+    rom_unb_system_info_miso             : IN  t_mem_miso;
+
     -- UniBoard I2C sensors
-    reg_unb_sens_mosi              : OUT t_mem_mosi; 
-    reg_unb_sens_miso              : IN  t_mem_miso; 
-                             
+    reg_unb_sens_mosi                    : OUT t_mem_mosi;
+    reg_unb_sens_miso                    : IN  t_mem_miso;
+
     -- PPSH
-    reg_ppsh_mosi                  : OUT t_mem_mosi; 
-    reg_ppsh_miso                  : IN  t_mem_miso; 
-                             
+    reg_ppsh_mosi                        : OUT t_mem_mosi;
+    reg_ppsh_miso                        : IN  t_mem_miso;
+
     -- eth1g
-    eth1g_mm_rst                   : OUT STD_LOGIC;
-    eth1g_tse_mosi                 : OUT t_mem_mosi;  
-    eth1g_tse_miso                 : IN  t_mem_miso;  
-    eth1g_reg_mosi                 : OUT t_mem_mosi;  
-    eth1g_reg_miso                 : IN  t_mem_miso;  
-    eth1g_reg_interrupt            : IN  STD_LOGIC; 
-    eth1g_ram_mosi                 : OUT t_mem_mosi;  
-    eth1g_ram_miso                 : IN  t_mem_miso;
+    eth1g_mm_rst                         : OUT STD_LOGIC;
+    eth1g_tse_mosi                       : OUT t_mem_mosi;
+    eth1g_tse_miso                       : IN  t_mem_miso;
+    eth1g_reg_mosi                       : OUT t_mem_mosi;
+    eth1g_reg_miso                       : IN  t_mem_miso;
+    eth1g_reg_interrupt                  : IN  STD_LOGIC;
+    eth1g_ram_mosi                       : OUT t_mem_mosi;
+    eth1g_ram_miso                       : IN  t_mem_miso;
 
     -- EPCS read
-    reg_dpmm_data_mosi             : OUT t_mem_mosi;
-    reg_dpmm_data_miso             : IN  t_mem_miso;
-    reg_dpmm_ctrl_mosi             : OUT t_mem_mosi;
-    reg_dpmm_ctrl_miso             : IN  t_mem_miso;
+    reg_dpmm_data_mosi                   : OUT t_mem_mosi;
+    reg_dpmm_data_miso                   : IN  t_mem_miso;
+    reg_dpmm_ctrl_mosi                   : OUT t_mem_mosi;
+    reg_dpmm_ctrl_miso                   : IN  t_mem_miso;
 
     -- EPCS write
-    reg_mmdp_data_mosi             : OUT t_mem_mosi;
-    reg_mmdp_data_miso             : IN  t_mem_miso;
-    reg_mmdp_ctrl_mosi             : OUT t_mem_mosi;
-    reg_mmdp_ctrl_miso             : IN  t_mem_miso;
+    reg_mmdp_data_mosi                   : OUT t_mem_mosi;
+    reg_mmdp_data_miso                   : IN  t_mem_miso;
+    reg_mmdp_ctrl_mosi                   : OUT t_mem_mosi;
+    reg_mmdp_ctrl_miso                   : IN  t_mem_miso;
 
     -- EPCS status/control
-    reg_epcs_mosi                  : OUT t_mem_mosi;
-    reg_epcs_miso                  : IN  t_mem_miso;
+    reg_epcs_mosi                        : OUT t_mem_mosi;
+    reg_epcs_miso                        : IN  t_mem_miso;
 
     -- Remote Update
-    reg_remu_mosi                  : OUT t_mem_mosi;
-    reg_remu_miso                  : IN  t_mem_miso;
+    reg_remu_mosi                        : OUT t_mem_mosi;
+    reg_remu_miso                        : IN  t_mem_miso;
 
     -- block gen
-    ram_diag_bg_1GbE_mosi          : OUT t_mem_mosi;
-    ram_diag_bg_1GbE_miso          : IN  t_mem_miso;
-    reg_diag_bg_1GbE_mosi          : OUT t_mem_mosi;
-    reg_diag_bg_1GbE_miso          : IN  t_mem_miso;
-    reg_diag_tx_seq_1GbE_mosi      : OUT t_mem_mosi;
-    reg_diag_tx_seq_1GbE_miso      : IN  t_mem_miso;
-
-    ram_diag_bg_10GbE_mosi         : OUT t_mem_mosi;
-    ram_diag_bg_10GbE_miso         : IN  t_mem_miso;
-    reg_diag_bg_10GbE_mosi         : OUT t_mem_mosi;
-    reg_diag_bg_10GbE_miso         : IN  t_mem_miso;
-    reg_diag_tx_seq_10GbE_mosi     : OUT t_mem_mosi;
-    reg_diag_tx_seq_10GbE_miso     : IN  t_mem_miso;
-
-    ram_diag_bg_ddr_mosi           : OUT t_mem_mosi;
-    ram_diag_bg_ddr_miso           : IN  t_mem_miso;
-    reg_diag_bg_ddr_mosi           : OUT t_mem_mosi;
-    reg_diag_bg_ddr_miso           : IN  t_mem_miso;
-    reg_diag_tx_seq_ddr_mosi       : OUT t_mem_mosi;
-    reg_diag_tx_seq_ddr_miso       : IN  t_mem_miso;
+    ram_diag_bg_1GbE_mosi                : OUT t_mem_mosi;
+    ram_diag_bg_1GbE_miso                : IN  t_mem_miso;
+    reg_diag_bg_1GbE_mosi                : OUT t_mem_mosi;
+    reg_diag_bg_1GbE_miso                : IN  t_mem_miso;
+    reg_diag_tx_seq_1GbE_mosi            : OUT t_mem_mosi;
+    reg_diag_tx_seq_1GbE_miso            : IN  t_mem_miso;
+
+    ram_diag_bg_10GbE_mosi               : OUT t_mem_mosi;
+    ram_diag_bg_10GbE_miso               : IN  t_mem_miso;
+    reg_diag_bg_10GbE_mosi               : OUT t_mem_mosi;
+    reg_diag_bg_10GbE_miso               : IN  t_mem_miso;
+    reg_diag_tx_seq_10GbE_mosi           : OUT t_mem_mosi;
+    reg_diag_tx_seq_10GbE_miso           : IN  t_mem_miso;
 
     -- dp_offload_tx
     reg_dp_offload_tx_1GbE_mosi          : OUT t_mem_mosi;
@@ -150,8 +143,6 @@ ENTITY mmm_unb1_test IS
     reg_bsn_monitor_1GbE_miso            : IN  t_mem_miso;
     reg_bsn_monitor_10GbE_mosi           : OUT t_mem_mosi;
     reg_bsn_monitor_10GbE_miso           : IN  t_mem_miso;
-    reg_bsn_monitor_ddr_mosi             : OUT t_mem_mosi;
-    reg_bsn_monitor_ddr_miso             : IN  t_mem_miso;
 
     -- databuffer
     ram_diag_data_buf_1GbE_mosi          : OUT t_mem_mosi;
@@ -160,7 +151,7 @@ ENTITY mmm_unb1_test IS
     reg_diag_data_buf_1GbE_miso          : IN  t_mem_miso;
     reg_diag_rx_seq_1GbE_mosi            : OUT t_mem_mosi;
     reg_diag_rx_seq_1GbE_miso            : IN  t_mem_miso;
- 
+
     ram_diag_data_buf_10GbE_mosi         : OUT t_mem_mosi;
     ram_diag_data_buf_10GbE_miso         : IN  t_mem_miso;
     reg_diag_data_buf_10GbE_mosi         : OUT t_mem_mosi;
@@ -168,24 +159,41 @@ ENTITY mmm_unb1_test IS
     reg_diag_rx_seq_10GbE_mosi           : OUT t_mem_mosi;
     reg_diag_rx_seq_10GbE_miso           : IN  t_mem_miso;
 
-    ram_diag_data_buf_ddr_mosi           : OUT t_mem_mosi;
-    ram_diag_data_buf_ddr_miso           : IN  t_mem_miso;
-    reg_diag_data_buf_ddr_mosi           : OUT t_mem_mosi;
-    reg_diag_data_buf_ddr_miso           : IN  t_mem_miso;
-    reg_diag_rx_seq_ddr_mosi             : OUT t_mem_mosi;
-    reg_diag_rx_seq_ddr_miso             : IN  t_mem_miso;
-
     -- tr_10GbE
-    reg_tr_10GbE_mosi              : OUT t_mem_mosi;
-    reg_tr_10GbE_miso              : IN  t_mem_miso;
-    reg_tr_xaui_mosi               : OUT t_mem_mosi;
-    reg_tr_xaui_miso               : IN  t_mem_miso;
+    reg_tr_10GbE_mosi                    : OUT t_mem_mosi;
+    reg_tr_10GbE_miso                    : IN  t_mem_miso;
+    reg_tr_xaui_mosi                     : OUT t_mem_mosi;
+    reg_tr_xaui_miso                     : IN  t_mem_miso;
+
+    -- DDR3 : MB I
+    reg_io_ddr_MB_I_mosi                 : OUT t_mem_mosi;
+    reg_io_ddr_MB_I_miso                 : IN  t_mem_miso;
+
+    reg_diag_tx_seq_ddr_MB_I_mosi        : OUT t_mem_mosi;
+    reg_diag_tx_seq_ddr_MB_I_miso        : IN  t_mem_miso;
+
+    reg_diag_rx_seq_ddr_MB_I_mosi        : OUT t_mem_mosi;
+    reg_diag_rx_seq_ddr_MB_I_miso        : IN  t_mem_miso;
+
+    reg_diag_data_buf_ddr_MB_I_mosi      : OUT t_mem_mosi;
+    reg_diag_data_buf_ddr_MB_I_miso      : IN  t_mem_miso;
+    ram_diag_data_buf_ddr_MB_I_mosi      : OUT t_mem_mosi;
+    ram_diag_data_buf_ddr_MB_I_miso      : IN  t_mem_miso;
 
-    ram_ss_ss_transp_mosi          : OUT t_mem_mosi;
-    ram_ss_ss_transp_miso          : IN  t_mem_miso;
+    -- DDR3 : MB II
+    reg_io_ddr_MB_II_mosi                : OUT t_mem_mosi;
+    reg_io_ddr_MB_II_miso                : IN  t_mem_miso;
 
-    reg_io_ddr_mosi                : OUT t_mem_mosi;
-    reg_io_ddr_miso                : IN  t_mem_miso
+    reg_diag_tx_seq_ddr_MB_II_mosi       : OUT t_mem_mosi;
+    reg_diag_tx_seq_ddr_MB_II_miso       : IN  t_mem_miso;
+
+    reg_diag_rx_seq_ddr_MB_II_mosi       : OUT t_mem_mosi;
+    reg_diag_rx_seq_ddr_MB_II_miso       : IN  t_mem_miso;
+
+    reg_diag_data_buf_ddr_MB_II_mosi     : OUT t_mem_mosi;
+    reg_diag_data_buf_ddr_MB_II_miso     : IN  t_mem_miso;
+    ram_diag_data_buf_ddr_MB_II_mosi     : OUT t_mem_mosi;
+    ram_diag_data_buf_ddr_MB_II_miso     : IN  t_mem_miso
   );
 END mmm_unb1_test;
 
@@ -194,7 +202,7 @@ ARCHITECTURE str OF mmm_unb1_test IS
   -- Block generator
   CONSTANT c_ram_diag_bg_1GbE_addr_w                     : NATURAL := ceil_log2(g_nof_streams_1GbE * pow2(ceil_log2(g_bg_block_size)));
   CONSTANT c_ram_diag_bg_10GbE_addr_w                    : NATURAL := ceil_log2(g_nof_streams_10GbE * pow2(ceil_log2(g_bg_block_size)));
-  CONSTANT c_ram_diag_bg_ddr_addr_w                      : NATURAL := ceil_log2(g_nof_streams_ddr * pow2(ceil_log2(g_bg_block_size)));
+  CONSTANT c_ram_diag_databuffer_ddr_addr_w              : NATURAL := ceil_log2(2                   * pow2(ceil_log2(g_bg_block_size)));
 
   -- dp_offload
   CONSTANT c_reg_dp_offload_tx_adr_w                     : NATURAL := 1; -- Dev note: add to c_unb1_board_peripherals_mm_reg_default
@@ -217,46 +225,36 @@ ARCHITECTURE str OF mmm_unb1_test IS
   CONSTANT c_reg_dp_offload_rx_10GbE_hdr_dat_adr_w       : NATURAL := ceil_log2(c_reg_dp_offload_rx_10GbE_hdr_dat_nof_words);
   CONSTANT c_reg_dp_offload_rx_10GbE_hdr_dat_multi_adr_w : NATURAL := ceil_log2(g_nof_streams_10GbE * pow2(c_reg_dp_offload_rx_10GbE_hdr_dat_adr_w));
 
-  -- reorder
-  --                                                                       v--- FIXME: g_frame_size_in
-  CONSTANT c_ram_ss_ss_transp_adr_w                : NATURAL := ceil_log2(256 * c_reorder_seq_same.rd_chunksize); -- 14
-
   -- tr_10GbE
-  CONSTANT c_reg_tr_10GbE_adr_w                    : NATURAL := 13;
-  CONSTANT c_reg_tr_10GbE_multi_adr_w              : NATURAL := ceil_log2(g_nof_streams_10GbE * pow2(c_reg_tr_10GbE_adr_w));
+  CONSTANT c_reg_tr_10GbE_adr_w                          : NATURAL := 13;
+  CONSTANT c_reg_tr_10GbE_multi_adr_w                    : NATURAL := ceil_log2(g_nof_streams_10GbE * pow2(c_reg_tr_10GbE_adr_w));
 
   -- tr_xaui
-  CONSTANT c_reg_tr_xaui_adr_w                     : NATURAL := 9;
-  CONSTANT c_reg_tr_xaui_multi_adr_w               : NATURAL := ceil_log2(g_nof_streams_10GbE * pow2(c_reg_tr_xaui_adr_w));
+  CONSTANT c_reg_tr_xaui_adr_w                           : NATURAL := 9;
+  CONSTANT c_reg_tr_xaui_multi_adr_w                     : NATURAL := ceil_log2(g_nof_streams_10GbE * pow2(c_reg_tr_xaui_adr_w));
 
   -- BSN monitors
-  CONSTANT c_reg_rsp_bsn_monitor_1GbE_adr_w        : NATURAL := ceil_log2(g_nof_streams_1GbE * pow2(c_unb1_board_peripherals_mm_reg_default.reg_bsn_monitor_adr_w));
-  CONSTANT c_reg_rsp_bsn_monitor_10GbE_adr_w       : NATURAL := ceil_log2(g_nof_streams_10GbE * pow2(c_unb1_board_peripherals_mm_reg_default.reg_bsn_monitor_adr_w));
-  CONSTANT c_reg_rsp_bsn_monitor_ddr_adr_w         : NATURAL := ceil_log2(g_nof_streams_ddr * pow2(c_unb1_board_peripherals_mm_reg_default.reg_bsn_monitor_adr_w));
+  CONSTANT c_reg_rsp_bsn_monitor_1GbE_adr_w              : NATURAL := ceil_log2(g_nof_streams_1GbE * pow2(c_unb1_board_peripherals_mm_reg_default.reg_bsn_monitor_adr_w));
+  CONSTANT c_reg_rsp_bsn_monitor_10GbE_adr_w             : NATURAL := ceil_log2(g_nof_streams_10GbE * pow2(c_unb1_board_peripherals_mm_reg_default.reg_bsn_monitor_adr_w));
 
-
-  CONSTANT c_dp_reg_mm_nof_words       : NATURAL := 1;
-  CONSTANT c_dp_reg_mm_adr_w           : NATURAL := ceil_log2(c_eth_nof_udp_ports * pow2(ceil_log2(c_dp_reg_mm_nof_words)));
+  CONSTANT c_dp_reg_mm_nof_words                         : NATURAL := 1;
+  CONSTANT c_dp_reg_mm_adr_w                             : NATURAL := ceil_log2(c_eth_nof_udp_ports * pow2(ceil_log2(c_dp_reg_mm_nof_words)));
 
   -- Simulation
-  CONSTANT c_sim_node_type : STRING(1 TO 2):= sel_a_b(g_sim_node_nr<4, "FN", "BN");
-  CONSTANT c_sim_node_nr   : NATURAL := sel_a_b(c_sim_node_type="BN", g_sim_node_nr-4, g_sim_node_nr);
-
+  CONSTANT c_sim_node_type                               : STRING(1 TO 2):= sel_a_b(g_sim_node_nr<4, "FN", "BN");
+  CONSTANT c_sim_node_nr                                 : NATURAL := sel_a_b(c_sim_node_type="BN", g_sim_node_nr-4, g_sim_node_nr);
 
+  CONSTANT c_sim_eth_src_mac                             : STD_LOGIC_VECTOR(c_network_eth_mac_slv'RANGE) := X"00228608" & TO_UVEC(g_sim_unb_nr, c_byte_w) & TO_UVEC(g_sim_node_nr, c_byte_w);
+  CONSTANT c_sim_eth_control_rx_en                       : NATURAL := 2**c_eth_mm_reg_control_bi.rx_en;
 
-  CONSTANT c_sim_eth_src_mac                       : STD_LOGIC_VECTOR(c_network_eth_mac_slv'RANGE) := X"00228608" & TO_UVEC(g_sim_unb_nr, c_byte_w) & TO_UVEC(g_sim_node_nr, c_byte_w);
-  CONSTANT c_sim_eth_control_rx_en                 : NATURAL := 2**c_eth_mm_reg_control_bi.rx_en;
+  SIGNAL sim_eth_mm_bus_switch                           : STD_LOGIC;
+  SIGNAL sim_eth_psc_access                              : STD_LOGIC;
+  SIGNAL i_eth1g_reg_mosi                                : t_mem_mosi;
+  SIGNAL i_eth1g_reg_miso                                : t_mem_miso;
+  SIGNAL sim_eth1g_reg_mosi                              : t_mem_mosi;
 
-  SIGNAL sim_eth_mm_bus_switch                     : STD_LOGIC;
-  SIGNAL sim_eth_psc_access                        : STD_LOGIC;
-  SIGNAL i_eth1g_reg_mosi                          : t_mem_mosi;
-  SIGNAL i_eth1g_reg_miso                          : t_mem_miso;
-  SIGNAL sim_eth1g_reg_mosi                        : t_mem_mosi;
+  SIGNAL i_reset_n                                       : STD_LOGIC;
 
-  SIGNAL i_reset_n                                 : STD_LOGIC;
-
-
-  
   ----------------------------------------------------------------------------
   -- mm_file component
   ----------------------------------------------------------------------------
@@ -270,7 +268,7 @@ ARCHITECTURE str OF mmm_unb1_test IS
     mm_rst        : IN  STD_LOGIC;
     mm_clk        : IN  STD_LOGIC;
     mm_master_out : OUT t_mem_mosi;
-    mm_master_in  : IN  t_mem_miso 
+    mm_master_in  : IN  t_mem_miso
   );
   END COMPONENT;
 
@@ -283,46 +281,39 @@ BEGIN
 
     eth1g_mm_rst <= mm_rst;
 
-    u_mm_file_reg_unb_system_info : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "PIO_SYSTEM_INFO")
-                                               PORT MAP(mm_rst, mm_clk, reg_unb_system_info_mosi, reg_unb_system_info_miso);
-
-    u_mm_file_rom_unb_system_info : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "ROM_SYSTEM_INFO")
-                                               PORT MAP(mm_rst, mm_clk, rom_unb_system_info_mosi, rom_unb_system_info_miso);
+    u_mm_file_reg_unb_system_info             : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "PIO_SYSTEM_INFO")
+                                                           PORT MAP(mm_rst, mm_clk, reg_unb_system_info_mosi, reg_unb_system_info_miso);
 
-    u_mm_file_reg_wdi             : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_WDI")
-                                               PORT MAP(mm_rst, mm_clk, reg_wdi_mosi, reg_wdi_miso);
+    u_mm_file_rom_unb_system_info             : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "ROM_SYSTEM_INFO")
+                                                           PORT MAP(mm_rst, mm_clk, rom_unb_system_info_mosi, rom_unb_system_info_miso);
 
-    u_mm_file_reg_unb_sens        : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_UNB_SENS")
-                                               PORT MAP(mm_rst, mm_clk, reg_unb_sens_mosi, reg_unb_sens_miso);
+    u_mm_file_reg_wdi                         : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_WDI")
+                                                           PORT MAP(mm_rst, mm_clk, reg_wdi_mosi, reg_wdi_miso);
 
-    u_mm_file_reg_ppsh            : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "PIO_PPS")
-                                               PORT MAP(mm_rst, mm_clk, reg_ppsh_mosi, reg_ppsh_miso);
+    u_mm_file_reg_unb_sens                    : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_UNB_SENS")
+                                                           PORT MAP(mm_rst, mm_clk, reg_unb_sens_mosi, reg_unb_sens_miso);
 
-    u_mm_file_reg_diag_bg_1GbE    : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_BG_1GBE")
-                                               PORT MAP(mm_rst, mm_clk, reg_diag_bg_1GbE_mosi, reg_diag_bg_1GbE_miso);
-    u_mm_file_ram_diag_bg_1GbE    : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DIAG_BG_1GBE")
-                                               PORT MAP(mm_rst, mm_clk, ram_diag_bg_1GbE_mosi, ram_diag_bg_1GbE_miso);
-    u_mm_file_reg_diag_tx_seq_1GbE  : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_TX_SEQ_1GBE")
-                                                 PORT MAP(mm_rst, mm_clk, reg_diag_tx_seq_1GbE_mosi, reg_diag_tx_seq_1GbE_miso);
+    u_mm_file_reg_ppsh                        : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "PIO_PPS")
+                                                           PORT MAP(mm_rst, mm_clk, reg_ppsh_mosi, reg_ppsh_miso);
 
-    u_mm_file_reg_diag_bg_10GbE   : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_BG_10GBE")
-                                               PORT MAP(mm_rst, mm_clk, reg_diag_bg_10GbE_mosi, reg_diag_bg_10GbE_miso);
-    u_mm_file_ram_diag_bg_10GbE   : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DIAG_BG_10GBE")
-                                               PORT MAP(mm_rst, mm_clk, ram_diag_bg_10GbE_mosi, ram_diag_bg_10GbE_miso);
-    u_mm_file_reg_diag_tx_seq_10GbE : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_TX_SEQ_10GBE")
-                                                 PORT MAP(mm_rst, mm_clk, reg_diag_tx_seq_10GbE_mosi, reg_diag_tx_seq_10GbE_miso);
+    u_mm_file_reg_diag_bg_1GbE                : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_BG_1GBE")
+                                                           PORT MAP(mm_rst, mm_clk, reg_diag_bg_1GbE_mosi, reg_diag_bg_1GbE_miso);
+    u_mm_file_ram_diag_bg_1GbE                : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DIAG_BG_1GBE")
+                                                           PORT MAP(mm_rst, mm_clk, ram_diag_bg_1GbE_mosi, ram_diag_bg_1GbE_miso);
+    u_mm_file_reg_diag_tx_seq_1GbE            : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_TX_SEQ_1GBE")
+                                                           PORT MAP(mm_rst, mm_clk, reg_diag_tx_seq_1GbE_mosi, reg_diag_tx_seq_1GbE_miso);
 
-    u_mm_file_reg_diag_bg_ddr     : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_BG_DDR")
-                                               PORT MAP(mm_rst, mm_clk, reg_diag_bg_ddr_mosi, reg_diag_bg_ddr_miso);
-    u_mm_file_ram_diag_bg_ddr     : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DIAG_BG_DDR")
-                                               PORT MAP(mm_rst, mm_clk, ram_diag_bg_ddr_mosi, ram_diag_bg_ddr_miso);
-    u_mm_file_reg_diag_tx_seq_ddr   : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_TX_SEQ_DDR")
-                                                 PORT MAP(mm_rst, mm_clk, reg_diag_tx_seq_ddr_mosi, reg_diag_tx_seq_ddr_miso);
+    u_mm_file_reg_diag_bg_10GbE               : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_BG_10GBE")
+                                                           PORT MAP(mm_rst, mm_clk, reg_diag_bg_10GbE_mosi, reg_diag_bg_10GbE_miso);
+    u_mm_file_ram_diag_bg_10GbE               : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DIAG_BG_10GBE")
+                                                           PORT MAP(mm_rst, mm_clk, ram_diag_bg_10GbE_mosi, ram_diag_bg_10GbE_miso);
+    u_mm_file_reg_diag_tx_seq_10GbE           : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_TX_SEQ_10GBE")
+                                                           PORT MAP(mm_rst, mm_clk, reg_diag_tx_seq_10GbE_mosi, reg_diag_tx_seq_10GbE_miso);
 
-    u_mm_file_reg_dp_offload_tx_1GbE  : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DP_OFFLOAD_TX_1GBE")
-                                                   PORT MAP(mm_rst, mm_clk, reg_dp_offload_tx_1GbE_mosi, reg_dp_offload_tx_1GbE_miso);
-    u_mm_file_reg_dp_offload_tx_10GbE : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DP_OFFLOAD_TX_10GBE")
-                                                   PORT MAP(mm_rst, mm_clk, reg_dp_offload_tx_10GbE_mosi, reg_dp_offload_tx_10GbE_miso);
+    u_mm_file_reg_dp_offload_tx_1GbE          : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DP_OFFLOAD_TX_1GBE")
+                                                           PORT MAP(mm_rst, mm_clk, reg_dp_offload_tx_1GbE_mosi, reg_dp_offload_tx_1GbE_miso);
+    u_mm_file_reg_dp_offload_tx_10GbE         : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DP_OFFLOAD_TX_10GBE")
+                                                           PORT MAP(mm_rst, mm_clk, reg_dp_offload_tx_10GbE_mosi, reg_dp_offload_tx_10GbE_miso);
 
     u_mm_file_reg_dp_offload_tx_1GbE_hdr_dat  : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DP_OFFLOAD_TX_1GBE_HDR_DAT")
                                                            PORT MAP(mm_rst, mm_clk, reg_dp_offload_tx_1GbE_hdr_dat_mosi, reg_dp_offload_tx_1GbE_hdr_dat_miso);
@@ -338,9 +329,6 @@ BEGIN
                                                            PORT MAP(mm_rst, mm_clk, reg_bsn_monitor_1GbE_mosi, reg_bsn_monitor_1GbE_miso);
     u_mm_file_reg_bsn_monitor_10GbE           : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_BSN_MONITOR_10GBE")
                                                            PORT MAP(mm_rst, mm_clk, reg_bsn_monitor_10GbE_mosi, reg_bsn_monitor_10GbE_miso);
-    u_mm_file_reg_bsn_monitor_ddr             : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_BSN_MONITOR_DDR")
-                                                           PORT MAP(mm_rst, mm_clk, reg_bsn_monitor_ddr_mosi, reg_bsn_monitor_ddr_miso);
-
 
     u_mm_file_reg_diag_data_buffer_1GbE       : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_DATA_BUFFER_1GBE")
                                                            PORT MAP(mm_rst, mm_clk, reg_diag_data_buf_1GbE_mosi, reg_diag_data_buf_1GbE_miso);
@@ -356,28 +344,36 @@ BEGIN
     u_mm_file_reg_diag_rx_seq_10GbE           : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_RX_SEQ_10GBE")
                                                            PORT MAP(mm_rst, mm_clk, reg_diag_rx_seq_10GbE_mosi, reg_diag_rx_seq_10GbE_miso);
 
-    u_mm_file_reg_diag_data_buffer_ddr        : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_DATA_BUFFER_DDR")
-                                                           PORT MAP(mm_rst, mm_clk, reg_diag_data_buf_ddr_mosi, reg_diag_data_buf_ddr_miso);
-    u_mm_file_ram_diag_data_buffer_ddr        : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DIAG_DATA_BUFFER_DDR")
-                                                           PORT MAP(mm_rst, mm_clk, ram_diag_data_buf_ddr_mosi, ram_diag_data_buf_ddr_miso);
-    u_mm_file_reg_diag_rx_seq_ddr             : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_RX_SEQ_DDR")
-                                                           PORT MAP(mm_rst, mm_clk, reg_diag_rx_seq_ddr_mosi, reg_diag_rx_seq_ddr_miso);
-
-    u_mm_file_ram_ss_ss_transp    : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_SS_SS_WIDE")
-                                               PORT MAP(mm_rst, mm_clk, ram_ss_ss_transp_mosi, ram_ss_ss_transp_miso);
-
-    u_mm_file_reg_io_ddr          : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_IO_DDR")
-                                               PORT MAP(mm_rst, mm_clk, reg_io_ddr_mosi, reg_io_ddr_miso);
-
-    -- Note: the eth1g RAM and TSE buses are only required by unb_osy on the NIOS as they provide the ethernet<->MM gateway.
-    u_mm_file_reg_eth             : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "AVS_ETH_0_MMS_REG")
-                                               PORT MAP(mm_rst, mm_clk, eth1g_reg_mosi, eth1g_reg_miso);
-
-    u_mm_file_reg_tr_10GbE        : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_TR_10GBE")--, c_mm_clk_period, FALSE, 0)
-                                               PORT MAP(mm_rst, mm_clk, reg_tr_10GbE_mosi, reg_tr_10GbE_miso);
-
-    u_mm_file_reg_tr_xaui         : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_TR_XAUI")--, c_mm_clk_period, FALSE, 0)
-                                               PORT MAP(mm_rst, mm_clk, reg_tr_xaui_mosi, reg_tr_xaui_miso);
+    u_mm_file_reg_io_ddr_MB_I                 : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_IO_DDR_MB_I")
+                                                           PORT MAP(mm_rst, mm_clk, reg_io_ddr_MB_I_mosi, reg_io_ddr_MB_I_miso);
+    u_mm_file_reg_diag_tx_seq_ddr_MB_I        : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_TX_SEQ_DDR_MB_I")
+                                                           PORT MAP(mm_rst, mm_clk, reg_diag_tx_seq_ddr_MB_I_mosi, reg_diag_tx_seq_ddr_MB_I_miso);
+    u_mm_file_reg_diag_rx_seq_ddr_MB_I        : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_RX_SEQ_DDR_MB_I")
+                                                           PORT MAP(mm_rst, mm_clk, reg_diag_rx_seq_ddr_MB_I_mosi, reg_diag_rx_seq_ddr_MB_I_miso);
+    u_mm_file_reg_diag_data_buffer_ddr_MB_I   : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_DATA_BUFFER_DDR_MB_I")
+                                                           PORT MAP(mm_rst, mm_clk, reg_diag_data_buf_ddr_MB_I_mosi, reg_diag_data_buf_ddr_MB_I_miso);
+    u_mm_file_ram_diag_data_buffer_ddr_MB_I   : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DIAG_DATA_BUFFER_DDR_MB_I")
+                                                           PORT MAP(mm_rst, mm_clk, ram_diag_data_buf_ddr_MB_I_mosi, ram_diag_data_buf_ddr_MB_I_miso);
+
+    u_mm_file_reg_io_ddr_MB_II                : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_IO_DDR_MB_II")
+                                                           PORT MAP(mm_rst, mm_clk, reg_io_ddr_MB_II_mosi, reg_io_ddr_MB_II_miso);
+    u_mm_file_reg_diag_tx_seq_ddr_MB_II       : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_TX_SEQ_DDR_MB_II")
+                                                           PORT MAP(mm_rst, mm_clk, reg_diag_tx_seq_ddr_MB_II_mosi, reg_diag_tx_seq_ddr_MB_II_miso);
+    u_mm_file_reg_diag_rx_seq_ddr_MB_II       : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_RX_SEQ_DDR_MB_II")
+                                                           PORT MAP(mm_rst, mm_clk, reg_diag_rx_seq_ddr_MB_II_mosi, reg_diag_rx_seq_ddr_MB_II_miso);
+    u_mm_file_reg_diag_data_buffer_ddr_MB_II  : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_DATA_BUFFER_DDR_MB_II")
+                                                           PORT MAP(mm_rst, mm_clk, reg_diag_data_buf_ddr_MB_II_mosi, reg_diag_data_buf_ddr_MB_II_miso);
+    u_mm_file_ram_diag_data_buffer_ddr_MB_II  : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DIAG_DATA_BUFFER_DDR_MB_II")
+                                                           PORT MAP(mm_rst, mm_clk, ram_diag_data_buf_ddr_MB_II_mosi, ram_diag_data_buf_ddr_MB_II_miso);
+
+    u_mm_file_reg_eth                         : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "AVS_ETH_0_MMS_REG")
+                                                           PORT MAP(mm_rst, mm_clk, eth1g_reg_mosi, eth1g_reg_miso);
+
+    u_mm_file_reg_tr_10GbE                    : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_TR_10GBE")--, c_mm_clk_period, FALSE, 0)
+                                                           PORT MAP(mm_rst, mm_clk, reg_tr_10GbE_mosi, reg_tr_10GbE_miso);
+
+    u_mm_file_reg_tr_xaui                     : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_TR_XAUI")--, c_mm_clk_period, FALSE, 0)
+                                                           PORT MAP(mm_rst, mm_clk, reg_tr_xaui_mosi, reg_tr_xaui_miso);
 
 
     ----------------------------------------------------------------------------
@@ -420,7 +416,7 @@ BEGIN
 
 
   ----------------------------------------------------------------------------
-  -- QSYS 
+  -- QSYS
   ----------------------------------------------------------------------------
   i_reset_n <= NOT mm_rst;
 
@@ -428,9 +424,9 @@ BEGIN
 
     u_qsys : qsys_unb1_test
     PORT MAP (
-      clk_0                                         => mm_clk, 
+      clk_0                                         => mm_clk,
       reset_n                                       => i_reset_n,
-  
+
       -- the_avs_eth_0
       coe_clk_export_from_the_avs_eth_0             => OPEN,
       coe_reset_export_from_the_avs_eth_0           => eth1g_mm_rst,
@@ -451,7 +447,7 @@ BEGIN
       coe_ram_writedata_export_from_the_avs_eth_0   => eth1g_ram_mosi.wrdata(c_word_w-1 DOWNTO 0),
       coe_ram_read_export_from_the_avs_eth_0        => eth1g_ram_mosi.rd,
       coe_ram_readdata_export_to_the_avs_eth_0      => eth1g_ram_miso.rddata(c_word_w-1 DOWNTO 0),
-  
+
       -- the_reg_unb_sens
       coe_clk_export_from_the_reg_unb_sens          => OPEN,
       coe_reset_export_from_the_reg_unb_sens        => OPEN,
@@ -460,7 +456,7 @@ BEGIN
       coe_readdata_export_to_the_reg_unb_sens       => reg_unb_sens_miso.rddata(c_word_w-1 DOWNTO 0),
       coe_write_export_from_the_reg_unb_sens        => reg_unb_sens_mosi.wr,
       coe_writedata_export_from_the_reg_unb_sens    => reg_unb_sens_mosi.wrdata(c_word_w-1 DOWNTO 0),
-  
+
       -- the_reg_dpmm_data
       coe_clk_export_from_the_reg_dpmm_data         => OPEN,
       coe_reset_export_from_the_reg_dpmm_data       => OPEN,
@@ -523,38 +519,38 @@ BEGIN
       coe_readdata_export_to_the_pio_pps            => reg_ppsh_miso.rddata(c_word_w-1 DOWNTO 0),
       coe_write_export_from_the_pio_pps             => reg_ppsh_mosi.wr,
       coe_writedata_export_from_the_pio_pps         => reg_ppsh_mosi.wrdata(c_word_w-1 DOWNTO 0),
-                      
+
       -- the_pio_system_info: actually a avs_common_mm instance
       coe_clk_export_from_the_pio_system_info       => OPEN,
       coe_reset_export_from_the_pio_system_info     => OPEN,
-      coe_address_export_from_the_pio_system_info   => reg_unb_system_info_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_unb_system_info_adr_w-1 DOWNTO 0), 
+      coe_address_export_from_the_pio_system_info   => reg_unb_system_info_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_unb_system_info_adr_w-1 DOWNTO 0),
       coe_read_export_from_the_pio_system_info      => reg_unb_system_info_mosi.rd,
       coe_readdata_export_to_the_pio_system_info    => reg_unb_system_info_miso.rddata(c_word_w-1 DOWNTO 0),
       coe_write_export_from_the_pio_system_info     => reg_unb_system_info_mosi.wr,
       coe_writedata_export_from_the_pio_system_info => reg_unb_system_info_mosi.wrdata(c_word_w-1 DOWNTO 0),
-  
+
       -- the_rom_system_info
       coe_clk_export_from_the_rom_system_info       => OPEN,
       coe_reset_export_from_the_rom_system_info     => OPEN,
-      coe_address_export_from_the_rom_system_info   => rom_unb_system_info_mosi.address(c_unb1_board_peripherals_mm_reg_default.rom_unb_system_info_adr_w-1 DOWNTO 0), 
+      coe_address_export_from_the_rom_system_info   => rom_unb_system_info_mosi.address(c_unb1_board_peripherals_mm_reg_default.rom_unb_system_info_adr_w-1 DOWNTO 0),
       coe_read_export_from_the_rom_system_info      => rom_unb_system_info_mosi.rd,
       coe_readdata_export_to_the_rom_system_info    => rom_unb_system_info_miso.rddata(c_word_w-1 DOWNTO 0),
       coe_write_export_from_the_rom_system_info     => rom_unb_system_info_mosi.wr,
       coe_writedata_export_from_the_rom_system_info => rom_unb_system_info_mosi.wrdata(c_word_w-1 DOWNTO 0),
-  
+
       -- the_pio_wdi: toggled by NIOS II application unb_osy. Connects to WDI via ctrl_unb1_board.
       out_port_from_the_pio_wdi                     => pout_wdi,
-  
+
       -- the_reg_wdi: Manual WDI override; causes FPGA reconfiguration if WDI is enabled (g_use_phy).
       coe_clk_export_from_the_reg_wdi               => OPEN,
       coe_reset_export_from_the_reg_wdi             => OPEN,
-      coe_address_export_from_the_reg_wdi           => reg_wdi_mosi.address(0 DOWNTO 0), 
+      coe_address_export_from_the_reg_wdi           => reg_wdi_mosi.address(0 DOWNTO 0),
       coe_read_export_from_the_reg_wdi              => reg_wdi_mosi.rd,
       coe_readdata_export_to_the_reg_wdi            => reg_wdi_miso.rddata(c_word_w-1 DOWNTO 0),
       coe_write_export_from_the_reg_wdi             => reg_wdi_mosi.wr,
       coe_writedata_export_from_the_reg_wdi         => reg_wdi_mosi.wrdata(c_word_w-1 DOWNTO 0),
 
-      -- the_reg_tr_10GbE 
+      -- the_reg_tr_10GbE
       coe_clk_export_from_the_reg_tr_10GbE          => OPEN,
       coe_reset_export_from_the_reg_tr_10GbE        => OPEN,
       coe_address_export_from_the_reg_tr_10GbE      => reg_tr_10GbE_mosi.address(c_reg_tr_10GbE_multi_adr_w-1 DOWNTO 0),
@@ -564,7 +560,7 @@ BEGIN
       coe_write_export_from_the_reg_tr_10GbE        => reg_tr_10GbE_mosi.wr,
       coe_writedata_export_from_the_reg_tr_10GbE    => reg_tr_10GbE_mosi.wrdata(c_word_w-1 DOWNTO 0),
 
-      -- the_reg_tr_xaui 
+      -- the_reg_tr_xaui
       coe_clk_export_from_the_reg_tr_xaui           => OPEN,
       coe_reset_export_from_the_reg_tr_xaui         => OPEN,
       coe_address_export_from_the_reg_tr_xaui       => reg_tr_xaui_mosi.address(c_reg_tr_xaui_multi_adr_w-1 DOWNTO 0),
@@ -607,23 +603,6 @@ BEGIN
       ram_diag_bg_10GbE_reset_export                => OPEN,
       ram_diag_bg_10GbE_write_export                => ram_diag_bg_10GbE_mosi.wr,
       ram_diag_bg_10GbE_writedata_export            => ram_diag_bg_10GbE_mosi.wrdata(c_word_w-1 DOWNTO 0),
-      -- the_reg_diag_bg_ddr
-      reg_diag_bg_ddr_address_export                => reg_diag_bg_ddr_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diag_bg_adr_w-1 DOWNTO 0),
-      reg_diag_bg_ddr_clk_export                    => OPEN,
-      reg_diag_bg_ddr_read_export                   => reg_diag_bg_ddr_mosi.rd,
-      reg_diag_bg_ddr_readdata_export               => reg_diag_bg_ddr_miso.rddata(c_word_w-1 DOWNTO 0),
-      reg_diag_bg_ddr_reset_export                  => OPEN,
-      reg_diag_bg_ddr_write_export                  => reg_diag_bg_ddr_mosi.wr,
-      reg_diag_bg_ddr_writedata_export              => reg_diag_bg_ddr_mosi.wrdata(c_word_w-1 DOWNTO 0),
-      -- the_ram_diag_bg_ddr
-      ram_diag_bg_ddr_address_export                => ram_diag_bg_ddr_mosi.address(c_ram_diag_bg_ddr_addr_w-1 DOWNTO 0),
-      ram_diag_bg_ddr_clk_export                    => OPEN,
-      ram_diag_bg_ddr_read_export                   => ram_diag_bg_ddr_mosi.rd,
-      ram_diag_bg_ddr_readdata_export               => ram_diag_bg_ddr_miso.rddata(c_word_w-1 DOWNTO 0),
-      ram_diag_bg_ddr_reset_export                  => OPEN,
-      ram_diag_bg_ddr_write_export                  => ram_diag_bg_ddr_mosi.wr,
-      ram_diag_bg_ddr_writedata_export              => ram_diag_bg_ddr_mosi.wrdata(c_word_w-1 DOWNTO 0),
-
 
       -- the_reg_dp_offload_tx_1GbE
       reg_dp_offload_tx_1GbE_address_export         => reg_dp_offload_tx_1GbE_mosi.address(c_reg_dp_offload_tx_1GbE_multi_adr_w-1 DOWNTO 0),
@@ -642,7 +621,6 @@ BEGIN
       reg_dp_offload_tx_10GbE_write_export          => reg_dp_offload_tx_10GbE_mosi.wr,
       reg_dp_offload_tx_10GbE_writedata_export      => reg_dp_offload_tx_10GbE_mosi.wrdata(c_word_w-1 DOWNTO 0),
 
-
       -- the_reg_dp_offload_tx_1GbE_hdr_dat
       reg_dp_offload_tx_1GbE_hdr_dat_address_export    => reg_dp_offload_tx_1GbE_hdr_dat_mosi.address(c_reg_dp_offload_tx_1GbE_hdr_dat_multi_adr_w-1 DOWNTO 0),
       reg_dp_offload_tx_1GbE_hdr_dat_clk_export        => OPEN,
@@ -660,8 +638,6 @@ BEGIN
       reg_dp_offload_tx_10GbE_hdr_dat_write_export     => reg_dp_offload_tx_10GbE_hdr_dat_mosi.wr,
       reg_dp_offload_tx_10GbE_hdr_dat_writedata_export => reg_dp_offload_tx_10GbE_hdr_dat_mosi.wrdata(c_word_w-1 DOWNTO 0),
 
-
-
       -- the_reg_dp_offload_rx_1GbE_hdr_dat
       reg_dp_offload_rx_1GbE_hdr_dat_address_export    => reg_dp_offload_rx_1GbE_hdr_dat_mosi.address(c_reg_dp_offload_rx_1GbE_hdr_dat_multi_adr_w-1 DOWNTO 0),
       reg_dp_offload_rx_1GbE_hdr_dat_clk_export        => OPEN,
@@ -696,15 +672,6 @@ BEGIN
       reg_bsn_monitor_10GbE_reset_export               => OPEN,
       reg_bsn_monitor_10GbE_write_export               => reg_bsn_monitor_10GbE_mosi.wr,
       reg_bsn_monitor_10GbE_writedata_export           => reg_bsn_monitor_10GbE_mosi.wrdata(c_word_w-1 DOWNTO 0),
-      -- the_reg_bsn_monitor_ddr
-      reg_bsn_monitor_ddr_address_export               => reg_bsn_monitor_ddr_mosi.address(c_reg_rsp_bsn_monitor_ddr_adr_w-1 DOWNTO 0),
-      reg_bsn_monitor_ddr_clk_export                   => OPEN,
-      reg_bsn_monitor_ddr_read_export                  => reg_bsn_monitor_ddr_mosi.rd,
-      reg_bsn_monitor_ddr_readdata_export              => reg_bsn_monitor_ddr_miso.rddata(c_word_w-1 DOWNTO 0),
-      reg_bsn_monitor_ddr_reset_export                 => OPEN,
-      reg_bsn_monitor_ddr_write_export                 => reg_bsn_monitor_ddr_mosi.wr,
-      reg_bsn_monitor_ddr_writedata_export             => reg_bsn_monitor_ddr_mosi.wrdata(c_word_w-1 DOWNTO 0),
-
 
       -- the_ram_diag_data_buffer_1GbE
       ram_diag_data_buffer_1GbE_address_export         => ram_diag_data_buf_1GbE_mosi.address(c_unb1_board_peripherals_mm_reg_default.ram_diag_db_adr_w-1 DOWNTO 0),
@@ -722,15 +689,6 @@ BEGIN
       ram_diag_data_buffer_10GbE_reset_export          => OPEN,
       ram_diag_data_buffer_10GbE_write_export          => ram_diag_data_buf_10GbE_mosi.wr,
       ram_diag_data_buffer_10GbE_writedata_export      => ram_diag_data_buf_10GbE_mosi.wrdata(c_word_w-1 DOWNTO 0),
-      -- the_ram_diag_data_buffer_ddr
-      ram_diag_data_buffer_ddr_address_export          => ram_diag_data_buf_ddr_mosi.address(c_unb1_board_peripherals_mm_reg_default.ram_diag_db_adr_w-1 DOWNTO 0),
-      ram_diag_data_buffer_ddr_clk_export              => OPEN,
-      ram_diag_data_buffer_ddr_read_export             => ram_diag_data_buf_ddr_mosi.rd,
-      ram_diag_data_buffer_ddr_readdata_export         => ram_diag_data_buf_ddr_miso.rddata(c_word_w-1 DOWNTO 0),
-      ram_diag_data_buffer_ddr_reset_export            => OPEN,
-      ram_diag_data_buffer_ddr_write_export            => ram_diag_data_buf_ddr_mosi.wr,
-      ram_diag_data_buffer_ddr_writedata_export        => ram_diag_data_buf_ddr_mosi.wrdata(c_word_w-1 DOWNTO 0),
-
 
       -- the_reg_diag_data_buffer_1GbE
       reg_diag_data_buffer_1GbE_address_export         => reg_diag_data_buf_1GbE_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diag_db_adr_w-1 DOWNTO 0),
@@ -748,15 +706,6 @@ BEGIN
       reg_diag_data_buffer_10GbE_reset_export          => OPEN,
       reg_diag_data_buffer_10GbE_write_export          => reg_diag_data_buf_10GbE_mosi.wr,
       reg_diag_data_buffer_10GbE_writedata_export      => reg_diag_data_buf_10GbE_mosi.wrdata(c_word_w-1 DOWNTO 0),
-      -- the_reg_diag_data_buffer_ddr
-      reg_diag_data_buffer_ddr_address_export          => reg_diag_data_buf_ddr_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diag_db_adr_w-1 DOWNTO 0),
-      reg_diag_data_buffer_ddr_clk_export              => OPEN,
-      reg_diag_data_buffer_ddr_read_export             => reg_diag_data_buf_ddr_mosi.rd,
-      reg_diag_data_buffer_ddr_readdata_export         => reg_diag_data_buf_ddr_miso.rddata(c_word_w-1 DOWNTO 0),
-      reg_diag_data_buffer_ddr_reset_export            => OPEN,
-      reg_diag_data_buffer_ddr_write_export            => reg_diag_data_buf_ddr_mosi.wr,
-      reg_diag_data_buffer_ddr_writedata_export        => reg_diag_data_buf_ddr_mosi.wrdata(c_word_w-1 DOWNTO 0),
-
 
       -- reg_diag_tx_seq_10GbE
       reg_diag_tx_seq_10GbE_address_export             => reg_diag_tx_seq_10GbE_mosi.address(4-1 DOWNTO 0),
@@ -794,45 +743,85 @@ BEGIN
       reg_diag_rx_seq_1GbE_reset_export                => OPEN,
       reg_diag_rx_seq_1GbE_write_export                => reg_diag_rx_seq_1GbE_mosi.wr,
       reg_diag_rx_seq_1GbE_writedata_export            => reg_diag_rx_seq_1GbE_mosi.wrdata(c_word_w-1 DOWNTO 0),
-
-
-      -- reg_diag_tx_seq_ddr
-      reg_diag_tx_seq_ddr_address_export               => reg_diag_tx_seq_ddr_mosi.address(2-1 DOWNTO 0),
-      reg_diag_tx_seq_ddr_clk_export                   => OPEN,
-      reg_diag_tx_seq_ddr_read_export                  => reg_diag_tx_seq_ddr_mosi.rd,
-      reg_diag_tx_seq_ddr_readdata_export              => reg_diag_tx_seq_ddr_miso.rddata(c_word_w-1 DOWNTO 0),
-      reg_diag_tx_seq_ddr_reset_export                 => OPEN,
-      reg_diag_tx_seq_ddr_write_export                 => reg_diag_tx_seq_ddr_mosi.wr,
-      reg_diag_tx_seq_ddr_writedata_export             => reg_diag_tx_seq_ddr_mosi.wrdata(c_word_w-1 DOWNTO 0),
-
-      -- reg_diag_rx_seq_ddr
-      reg_diag_rx_seq_ddr_address_export               => reg_diag_rx_seq_ddr_mosi.address(3-1 DOWNTO 0),
-      reg_diag_rx_seq_ddr_clk_export                   => OPEN,
-      reg_diag_rx_seq_ddr_read_export                  => reg_diag_rx_seq_ddr_mosi.rd,
-      reg_diag_rx_seq_ddr_readdata_export              => reg_diag_rx_seq_ddr_miso.rddata(c_word_w-1 DOWNTO 0),
-      reg_diag_rx_seq_ddr_reset_export                 => OPEN,
-      reg_diag_rx_seq_ddr_write_export                 => reg_diag_rx_seq_ddr_mosi.wr,
-      reg_diag_rx_seq_ddr_writedata_export             => reg_diag_rx_seq_ddr_mosi.wrdata(c_word_w-1 DOWNTO 0),
-
-
-
-      -- ram_ss_ss_wide
-      ram_ss_ss_wide_address_export                    => ram_ss_ss_transp_mosi.address(c_ram_ss_ss_transp_adr_w-1 DOWNTO 0),
-      ram_ss_ss_wide_clk_export                        => OPEN,
-      ram_ss_ss_wide_read_export                       => ram_ss_ss_transp_mosi.rd,
-      ram_ss_ss_wide_readdata_export                   => ram_ss_ss_transp_miso.rddata(c_word_w-1 DOWNTO 0),
-      ram_ss_ss_wide_reset_export                      => OPEN,
-      ram_ss_ss_wide_write_export                      => ram_ss_ss_transp_mosi.wr,
-      ram_ss_ss_wide_writedata_export                  => ram_ss_ss_transp_mosi.wrdata(c_word_w-1 DOWNTO 0),
-
-      -- reg_io_ddr
-      reg_io_ddr_address_export                        => reg_io_ddr_mosi.address(1 DOWNTO 0),
-      reg_io_ddr_clk_export                            => OPEN,
-      reg_io_ddr_read_export                           => reg_io_ddr_mosi.rd,
-      reg_io_ddr_readdata_export                       => reg_io_ddr_miso.rddata(c_word_w-1 DOWNTO 0),
-      reg_io_ddr_reset_export                          => OPEN,
-      reg_io_ddr_write_export                          => reg_io_ddr_mosi.wr,
-      reg_io_ddr_writedata_export                      => reg_io_ddr_mosi.wrdata(c_word_w-1 DOWNTO 0)
+      reg_io_ddr_MB_I_address_export                   => reg_io_ddr_MB_I_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_io_ddr_adr_w-1 DOWNTO 0),
+      reg_io_ddr_MB_I_clk_export                       => OPEN,
+      reg_io_ddr_MB_I_read_export                      => reg_io_ddr_MB_I_mosi.rd,
+      reg_io_ddr_MB_I_readdata_export                  => reg_io_ddr_MB_I_miso.rddata(c_word_w-1 DOWNTO 0),
+      reg_io_ddr_MB_I_reset_export                     => OPEN,
+      reg_io_ddr_MB_I_write_export                     => reg_io_ddr_MB_I_mosi.wr,
+      reg_io_ddr_MB_I_writedata_export                 => reg_io_ddr_MB_I_mosi.wrdata(c_word_w-1 DOWNTO 0),
+
+      reg_io_ddr_MB_II_address_export                  => reg_io_ddr_MB_II_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_io_ddr_adr_w-1 DOWNTO 0),
+      reg_io_ddr_MB_II_clk_export                      => OPEN,
+      reg_io_ddr_MB_II_read_export                     => reg_io_ddr_MB_II_mosi.rd,
+      reg_io_ddr_MB_II_readdata_export                 => reg_io_ddr_MB_II_miso.rddata(c_word_w-1 DOWNTO 0),
+      reg_io_ddr_MB_II_reset_export                    => OPEN,
+      reg_io_ddr_MB_II_write_export                    => reg_io_ddr_MB_II_mosi.wr,
+      reg_io_ddr_MB_II_writedata_export                => reg_io_ddr_MB_II_mosi.wrdata(c_word_w-1 DOWNTO 0),
+
+      reg_diag_tx_seq_ddr_MB_I_reset_export            => OPEN,
+      reg_diag_tx_seq_ddr_MB_I_clk_export              => OPEN,
+      reg_diag_tx_seq_ddr_MB_I_address_export          => reg_diag_tx_seq_ddr_MB_I_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diag_tx_seq_w-1 downto 0),
+      reg_diag_tx_seq_ddr_MB_I_write_export            => reg_diag_tx_seq_ddr_MB_I_mosi.wr,
+      reg_diag_tx_seq_ddr_MB_I_writedata_export        => reg_diag_tx_seq_ddr_MB_I_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_diag_tx_seq_ddr_MB_I_read_export             => reg_diag_tx_seq_ddr_MB_I_mosi.rd,
+      reg_diag_tx_seq_ddr_MB_I_readdata_export         => reg_diag_tx_seq_ddr_MB_I_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      reg_diag_tx_seq_ddr_MB_II_reset_export           => OPEN,
+      reg_diag_tx_seq_ddr_MB_II_clk_export             => OPEN,
+      reg_diag_tx_seq_ddr_MB_II_address_export         => reg_diag_tx_seq_ddr_MB_II_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diag_tx_seq_w-1 downto 0),
+      reg_diag_tx_seq_ddr_MB_II_write_export           => reg_diag_tx_seq_ddr_MB_II_mosi.wr,
+      reg_diag_tx_seq_ddr_MB_II_writedata_export       => reg_diag_tx_seq_ddr_MB_II_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_diag_tx_seq_ddr_MB_II_read_export            => reg_diag_tx_seq_ddr_MB_II_mosi.rd,
+      reg_diag_tx_seq_ddr_MB_II_readdata_export        => reg_diag_tx_seq_ddr_MB_II_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      reg_diag_rx_seq_ddr_MB_I_reset_export            => OPEN,
+      reg_diag_rx_seq_ddr_MB_I_clk_export              => OPEN,
+      reg_diag_rx_seq_ddr_MB_I_address_export          => reg_diag_rx_seq_ddr_MB_I_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diag_rx_seq_w-1 downto 0),
+      reg_diag_rx_seq_ddr_MB_I_write_export            => reg_diag_rx_seq_ddr_MB_I_mosi.wr,
+      reg_diag_rx_seq_ddr_MB_I_writedata_export        => reg_diag_rx_seq_ddr_MB_I_mosi.wrdata(c_word_w-1 downto 0),
+      reg_diag_rx_seq_ddr_MB_I_read_export             => reg_diag_rx_seq_ddr_MB_I_mosi.rd,
+      reg_diag_rx_seq_ddr_MB_I_readdata_export         => reg_diag_rx_seq_ddr_MB_I_miso.rddata(c_word_w-1 downto 0),
+
+      reg_diag_rx_seq_ddr_MB_II_reset_export           => OPEN,
+      reg_diag_rx_seq_ddr_MB_II_clk_export             => OPEN,
+      reg_diag_rx_seq_ddr_MB_II_address_export         => reg_diag_rx_seq_ddr_MB_II_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diag_rx_seq_w-1 downto 0),
+      reg_diag_rx_seq_ddr_MB_II_write_export           => reg_diag_rx_seq_ddr_MB_II_mosi.wr,
+      reg_diag_rx_seq_ddr_MB_II_writedata_export       => reg_diag_rx_seq_ddr_MB_II_mosi.wrdata(c_word_w-1 downto 0),
+      reg_diag_rx_seq_ddr_MB_II_read_export            => reg_diag_rx_seq_ddr_MB_II_mosi.rd,
+      reg_diag_rx_seq_ddr_MB_II_readdata_export        => reg_diag_rx_seq_ddr_MB_II_miso.rddata(c_word_w-1 downto 0),
+
+      reg_diag_data_buffer_ddr_MB_I_reset_export       => OPEN,
+      reg_diag_data_buffer_ddr_MB_I_clk_export         => OPEN,
+      reg_diag_data_buffer_ddr_MB_I_address_export     => reg_diag_data_buf_ddr_MB_I_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diag_db_adr_w-1 DOWNTO 0),
+      reg_diag_data_buffer_ddr_MB_I_write_export       => reg_diag_data_buf_ddr_MB_I_mosi.wr,
+      reg_diag_data_buffer_ddr_MB_I_writedata_export   => reg_diag_data_buf_ddr_MB_I_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_diag_data_buffer_ddr_MB_I_read_export        => reg_diag_data_buf_ddr_MB_I_mosi.rd,
+      reg_diag_data_buffer_ddr_MB_I_readdata_export    => reg_diag_data_buf_ddr_MB_I_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      reg_diag_data_buffer_ddr_MB_II_reset_export      => OPEN,
+      reg_diag_data_buffer_ddr_MB_II_clk_export        => OPEN,
+      reg_diag_data_buffer_ddr_MB_II_address_export    => reg_diag_data_buf_ddr_MB_II_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diag_db_adr_w-1 DOWNTO 0),
+      reg_diag_data_buffer_ddr_MB_II_write_export      => reg_diag_data_buf_ddr_MB_II_mosi.wr,
+      reg_diag_data_buffer_ddr_MB_II_writedata_export  => reg_diag_data_buf_ddr_MB_II_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_diag_data_buffer_ddr_MB_II_read_export       => reg_diag_data_buf_ddr_MB_II_mosi.rd,
+      reg_diag_data_buffer_ddr_MB_II_readdata_export   => reg_diag_data_buf_ddr_MB_II_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      ram_diag_data_buffer_ddr_MB_I_clk_export         => OPEN,
+      ram_diag_data_buffer_ddr_MB_I_reset_export       => OPEN,
+      ram_diag_data_buffer_ddr_MB_I_address_export     => ram_diag_data_buf_ddr_MB_I_mosi.address(c_ram_diag_databuffer_ddr_addr_w-1 DOWNTO 0),
+      ram_diag_data_buffer_ddr_MB_I_write_export       => ram_diag_data_buf_ddr_MB_I_mosi.wr,
+      ram_diag_data_buffer_ddr_MB_I_writedata_export   => ram_diag_data_buf_ddr_MB_I_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      ram_diag_data_buffer_ddr_MB_I_read_export        => ram_diag_data_buf_ddr_MB_I_mosi.rd,
+      ram_diag_data_buffer_ddr_MB_I_readdata_export    => ram_diag_data_buf_ddr_MB_I_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      ram_diag_data_buffer_ddr_MB_II_clk_export        => OPEN,
+      ram_diag_data_buffer_ddr_MB_II_reset_export      => OPEN,
+      ram_diag_data_buffer_ddr_MB_II_address_export    => ram_diag_data_buf_ddr_MB_II_mosi.address(c_ram_diag_databuffer_ddr_addr_w-1 DOWNTO 0),
+      ram_diag_data_buffer_ddr_MB_II_write_export      => ram_diag_data_buf_ddr_MB_II_mosi.wr,
+      ram_diag_data_buffer_ddr_MB_II_writedata_export  => ram_diag_data_buf_ddr_MB_II_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      ram_diag_data_buffer_ddr_MB_II_read_export       => ram_diag_data_buf_ddr_MB_II_mosi.rd,
+      ram_diag_data_buffer_ddr_MB_II_readdata_export   => ram_diag_data_buf_ddr_MB_II_miso.rddata(c_word_w-1 DOWNTO 0)
       );
   END GENERATE;
 
diff --git a/boards/uniboard1/designs/unb1_test/src/vhdl/qsys_unb1_test_pkg.vhd b/boards/uniboard1/designs/unb1_test/src/vhdl/qsys_unb1_test_pkg.vhd
index eb56afedc7..2b89f7c9ce 100644
--- a/boards/uniboard1/designs/unb1_test/src/vhdl/qsys_unb1_test_pkg.vhd
+++ b/boards/uniboard1/designs/unb1_test/src/vhdl/qsys_unb1_test_pkg.vhd
@@ -28,7 +28,6 @@ PACKAGE qsys_unb1_test_pkg IS
     -- this component declaration is copy-pasted from Quartus v11.1 QSYS builder
     -----------------------------------------------------------------------------
     component qsys_unb1_test is
-    
         port (
             coe_ram_write_export_from_the_avs_eth_0          : out std_logic;                                        -- export
             coe_reg_read_export_from_the_avs_eth_0           : out std_logic;                                        -- export
@@ -152,20 +151,6 @@ PACKAGE qsys_unb1_test_pkg IS
             reg_bsn_monitor_1gbe_address_export              : out std_logic_vector(3 downto 0);                     -- export
             reg_bsn_monitor_1gbe_clk_export                  : out std_logic;                                        -- export
             reg_bsn_monitor_1gbe_reset_export                : out std_logic;                                        -- export
-            ram_ss_ss_wide_readdata_export                   : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
-            ram_ss_ss_wide_read_export                       : out std_logic;                                        -- export
-            ram_ss_ss_wide_writedata_export                  : out std_logic_vector(31 downto 0);                    -- export
-            ram_ss_ss_wide_write_export                      : out std_logic;                                        -- export
-            ram_ss_ss_wide_address_export                    : out std_logic_vector(13 downto 0);                    -- export
-            ram_ss_ss_wide_clk_export                        : out std_logic;                                        -- export
-            ram_ss_ss_wide_reset_export                      : out std_logic;                                        -- export
-            reg_io_ddr_readdata_export                       : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
-            reg_io_ddr_read_export                           : out std_logic;                                        -- export
-            reg_io_ddr_writedata_export                      : out std_logic_vector(31 downto 0);                    -- export
-            reg_io_ddr_write_export                          : out std_logic;                                        -- export
-            reg_io_ddr_address_export                        : out std_logic_vector(1 downto 0);                     -- export
-            reg_io_ddr_clk_export                            : out std_logic;                                        -- export
-            reg_io_ddr_reset_export                          : out std_logic;                                        -- export
             reg_diag_data_buffer_10gbe_readdata_export       : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
             reg_diag_data_buffer_10gbe_read_export           : out std_logic;                                        -- export
             reg_diag_data_buffer_10gbe_writedata_export      : out std_logic_vector(31 downto 0);                    -- export
@@ -271,55 +256,6 @@ PACKAGE qsys_unb1_test_pkg IS
             ram_diag_data_buffer_10gbe_writedata_export      : out std_logic_vector(31 downto 0);                    -- export
             ram_diag_data_buffer_10gbe_read_export           : out std_logic;                                        -- export
             ram_diag_data_buffer_10gbe_readdata_export       : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
-            reg_bsn_monitor_ddr_readdata_export              : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
-            reg_bsn_monitor_ddr_read_export                  : out std_logic;                                        -- export
-            reg_bsn_monitor_ddr_writedata_export             : out std_logic_vector(31 downto 0);                    -- export
-            reg_bsn_monitor_ddr_write_export                 : out std_logic;                                        -- export
-            reg_bsn_monitor_ddr_address_export               : out std_logic_vector(3 downto 0);                     -- export
-            reg_bsn_monitor_ddr_clk_export                   : out std_logic;                                        -- export
-            reg_bsn_monitor_ddr_reset_export                 : out std_logic;                                        -- export
-            reg_diag_bg_ddr_readdata_export                  : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
-            reg_diag_bg_ddr_read_export                      : out std_logic;                                        -- export
-            reg_diag_bg_ddr_writedata_export                 : out std_logic_vector(31 downto 0);                    -- export
-            reg_diag_bg_ddr_write_export                     : out std_logic;                                        -- export
-            reg_diag_bg_ddr_address_export                   : out std_logic_vector(2 downto 0);                     -- export
-            reg_diag_bg_ddr_clk_export                       : out std_logic;                                        -- export
-            reg_diag_bg_ddr_reset_export                     : out std_logic;                                        -- export
-            ram_diag_bg_ddr_readdata_export                  : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
-            ram_diag_bg_ddr_read_export                      : out std_logic;                                        -- export
-            ram_diag_bg_ddr_writedata_export                 : out std_logic_vector(31 downto 0);                    -- export
-            ram_diag_bg_ddr_write_export                     : out std_logic;                                        -- export
-            ram_diag_bg_ddr_address_export                   : out std_logic_vector(9 downto 0);                     -- export
-            ram_diag_bg_ddr_clk_export                       : out std_logic;                                        -- export
-            ram_diag_bg_ddr_reset_export                     : out std_logic;                                        -- export
-            reg_diag_data_buffer_ddr_readdata_export         : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
-            reg_diag_data_buffer_ddr_read_export             : out std_logic;                                        -- export
-            reg_diag_data_buffer_ddr_writedata_export        : out std_logic_vector(31 downto 0);                    -- export
-            reg_diag_data_buffer_ddr_write_export            : out std_logic;                                        -- export
-            reg_diag_data_buffer_ddr_address_export          : out std_logic_vector(4 downto 0);                     -- export
-            reg_diag_data_buffer_ddr_clk_export              : out std_logic;                                        -- export
-            reg_diag_data_buffer_ddr_reset_export            : out std_logic;                                        -- export
-            ram_diag_data_buffer_ddr_readdata_export         : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
-            ram_diag_data_buffer_ddr_read_export             : out std_logic;                                        -- export
-            ram_diag_data_buffer_ddr_writedata_export        : out std_logic_vector(31 downto 0);                    -- export
-            ram_diag_data_buffer_ddr_write_export            : out std_logic;                                        -- export
-            ram_diag_data_buffer_ddr_address_export          : out std_logic_vector(13 downto 0);                    -- export
-            ram_diag_data_buffer_ddr_clk_export              : out std_logic;                                        -- export
-            ram_diag_data_buffer_ddr_reset_export            : out std_logic;                                        -- export
-            reg_diag_rx_seq_ddr_readdata_export              : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
-            reg_diag_rx_seq_ddr_read_export                  : out std_logic;                                        -- export
-            reg_diag_rx_seq_ddr_writedata_export             : out std_logic_vector(31 downto 0);                    -- export
-            reg_diag_rx_seq_ddr_write_export                 : out std_logic;                                        -- export
-            reg_diag_rx_seq_ddr_address_export               : out std_logic_vector(2 downto 0);                     -- export
-            reg_diag_rx_seq_ddr_clk_export                   : out std_logic;                                        -- export
-            reg_diag_rx_seq_ddr_reset_export                 : out std_logic;                                        -- export
-            reg_diag_tx_seq_ddr_readdata_export              : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
-            reg_diag_tx_seq_ddr_read_export                  : out std_logic;                                        -- export
-            reg_diag_tx_seq_ddr_writedata_export             : out std_logic_vector(31 downto 0);                    -- export
-            reg_diag_tx_seq_ddr_write_export                 : out std_logic;                                        -- export
-            reg_diag_tx_seq_ddr_address_export               : out std_logic_vector(1 downto 0);                     -- export
-            reg_diag_tx_seq_ddr_clk_export                   : out std_logic;                                        -- export
-            reg_diag_tx_seq_ddr_reset_export                 : out std_logic;                                        -- export
             reg_diag_rx_seq_1gbe_readdata_export             : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
             reg_diag_rx_seq_1gbe_read_export                 : out std_logic;                                        -- export
             reg_diag_rx_seq_1gbe_writedata_export            : out std_logic_vector(31 downto 0);                    -- export
@@ -347,9 +283,78 @@ PACKAGE qsys_unb1_test_pkg IS
             reg_diag_tx_seq_10gbe_write_export               : out std_logic;                                        -- export
             reg_diag_tx_seq_10gbe_address_export             : out std_logic_vector(3 downto 0);                     -- export
             reg_diag_tx_seq_10gbe_clk_export                 : out std_logic;                                        -- export
-            reg_diag_tx_seq_10gbe_reset_export               : out std_logic                                         -- export
+            reg_diag_tx_seq_10gbe_reset_export               : out std_logic;                                        -- export
+            reg_io_ddr_mb_i_reset_export                     : out std_logic;                                        -- export
+            reg_io_ddr_mb_i_clk_export                       : out std_logic;                                        -- export
+            reg_io_ddr_mb_i_address_export                   : out std_logic_vector(15 downto 0);                    -- export
+            reg_io_ddr_mb_i_write_export                     : out std_logic;                                        -- export
+            reg_io_ddr_mb_i_writedata_export                 : out std_logic_vector(31 downto 0);                    -- export
+            reg_io_ddr_mb_i_read_export                      : out std_logic;                                        -- export
+            reg_io_ddr_mb_i_readdata_export                  : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_io_ddr_mb_ii_reset_export                    : out std_logic;                                        -- export
+            reg_io_ddr_mb_ii_clk_export                      : out std_logic;                                        -- export
+            reg_io_ddr_mb_ii_address_export                  : out std_logic_vector(15 downto 0);                    -- export
+            reg_io_ddr_mb_ii_write_export                    : out std_logic;                                        -- export
+            reg_io_ddr_mb_ii_writedata_export                : out std_logic_vector(31 downto 0);                    -- export
+            reg_io_ddr_mb_ii_read_export                     : out std_logic;                                        -- export
+            reg_io_ddr_mb_ii_readdata_export                 : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_diag_tx_seq_ddr_mb_i_reset_export            : out std_logic;                                        -- export
+            reg_diag_tx_seq_ddr_mb_i_clk_export              : out std_logic;                                        -- export
+            reg_diag_tx_seq_ddr_mb_i_address_export          : out std_logic_vector(1 downto 0);                     -- export
+            reg_diag_tx_seq_ddr_mb_i_write_export            : out std_logic;                                        -- export
+            reg_diag_tx_seq_ddr_mb_i_writedata_export        : out std_logic_vector(31 downto 0);                    -- export
+            reg_diag_tx_seq_ddr_mb_i_read_export             : out std_logic;                                        -- export
+            reg_diag_tx_seq_ddr_mb_i_readdata_export         : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_diag_tx_seq_ddr_mb_ii_reset_export           : out std_logic;                                        -- export
+            reg_diag_tx_seq_ddr_mb_ii_clk_export             : out std_logic;                                        -- export
+            reg_diag_tx_seq_ddr_mb_ii_address_export         : out std_logic_vector(1 downto 0);                     -- export
+            reg_diag_tx_seq_ddr_mb_ii_write_export           : out std_logic;                                        -- export
+            reg_diag_tx_seq_ddr_mb_ii_writedata_export       : out std_logic_vector(31 downto 0);                    -- export
+            reg_diag_tx_seq_ddr_mb_ii_read_export            : out std_logic;                                        -- export
+            reg_diag_tx_seq_ddr_mb_ii_readdata_export        : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_diag_rx_seq_ddr_mb_i_reset_export            : out std_logic;                                        -- export
+            reg_diag_rx_seq_ddr_mb_i_clk_export              : out std_logic;                                        -- export
+            reg_diag_rx_seq_ddr_mb_i_address_export          : out std_logic_vector(2 downto 0);                     -- export
+            reg_diag_rx_seq_ddr_mb_i_write_export            : out std_logic;                                        -- export
+            reg_diag_rx_seq_ddr_mb_i_writedata_export        : out std_logic_vector(31 downto 0);                    -- export
+            reg_diag_rx_seq_ddr_mb_i_read_export             : out std_logic;                                        -- export
+            reg_diag_rx_seq_ddr_mb_i_readdata_export         : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_diag_rx_seq_ddr_mb_ii_reset_export           : out std_logic;                                        -- export
+            reg_diag_rx_seq_ddr_mb_ii_clk_export             : out std_logic;                                        -- export
+            reg_diag_rx_seq_ddr_mb_ii_address_export         : out std_logic_vector(2 downto 0);                     -- export
+            reg_diag_rx_seq_ddr_mb_ii_write_export           : out std_logic;                                        -- export
+            reg_diag_rx_seq_ddr_mb_ii_writedata_export       : out std_logic_vector(31 downto 0);                    -- export
+            reg_diag_rx_seq_ddr_mb_ii_read_export            : out std_logic;                                        -- export
+            reg_diag_rx_seq_ddr_mb_ii_readdata_export        : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_diag_data_buffer_ddr_mb_i_reset_export       : out std_logic;                                        -- export
+            reg_diag_data_buffer_ddr_mb_i_clk_export         : out std_logic;                                        -- export
+            reg_diag_data_buffer_ddr_mb_i_address_export     : out std_logic_vector(4 downto 0);                     -- export
+            reg_diag_data_buffer_ddr_mb_i_write_export       : out std_logic;                                        -- export
+            reg_diag_data_buffer_ddr_mb_i_writedata_export   : out std_logic_vector(31 downto 0);                    -- export
+            reg_diag_data_buffer_ddr_mb_i_read_export        : out std_logic;                                        -- export
+            reg_diag_data_buffer_ddr_mb_i_readdata_export    : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_diag_data_buffer_ddr_mb_ii_reset_export      : out std_logic;                                        -- export
+            reg_diag_data_buffer_ddr_mb_ii_clk_export        : out std_logic;                                        -- export
+            reg_diag_data_buffer_ddr_mb_ii_address_export    : out std_logic_vector(4 downto 0);                     -- export
+            reg_diag_data_buffer_ddr_mb_ii_write_export      : out std_logic;                                        -- export
+            reg_diag_data_buffer_ddr_mb_ii_writedata_export  : out std_logic_vector(31 downto 0);                    -- export
+            reg_diag_data_buffer_ddr_mb_ii_read_export       : out std_logic;                                        -- export
+            reg_diag_data_buffer_ddr_mb_ii_readdata_export   : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            ram_diag_data_buffer_ddr_mb_i_reset_export       : out std_logic;                                        -- export
+            ram_diag_data_buffer_ddr_mb_i_clk_export         : out std_logic;                                        -- export
+            ram_diag_data_buffer_ddr_mb_i_address_export     : out std_logic_vector(10 downto 0);                    -- export
+            ram_diag_data_buffer_ddr_mb_i_write_export       : out std_logic;                                        -- export
+            ram_diag_data_buffer_ddr_mb_i_writedata_export   : out std_logic_vector(31 downto 0);                    -- export
+            ram_diag_data_buffer_ddr_mb_i_read_export        : out std_logic;                                        -- export
+            ram_diag_data_buffer_ddr_mb_i_readdata_export    : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            ram_diag_data_buffer_ddr_mb_ii_reset_export      : out std_logic;                                        -- export
+            ram_diag_data_buffer_ddr_mb_ii_clk_export        : out std_logic;                                        -- export
+            ram_diag_data_buffer_ddr_mb_ii_address_export    : out std_logic_vector(10 downto 0);                    -- export
+            ram_diag_data_buffer_ddr_mb_ii_write_export      : out std_logic;                                        -- export
+            ram_diag_data_buffer_ddr_mb_ii_writedata_export  : out std_logic_vector(31 downto 0);                    -- export
+            ram_diag_data_buffer_ddr_mb_ii_read_export       : out std_logic;                                        -- export
+            ram_diag_data_buffer_ddr_mb_ii_readdata_export   : in  std_logic_vector(31 downto 0) := (others => 'X')  -- export
         );
- 
     end component qsys_unb1_test;
 
 END qsys_unb1_test_pkg;
diff --git a/boards/uniboard1/designs/unb1_test/src/vhdl/unb1_test.vhd b/boards/uniboard1/designs/unb1_test/src/vhdl/unb1_test.vhd
index 189af6ce28..4ee6629e28 100644
--- a/boards/uniboard1/designs/unb1_test/src/vhdl/unb1_test.vhd
+++ b/boards/uniboard1/designs/unb1_test/src/vhdl/unb1_test.vhd
@@ -62,11 +62,11 @@ ENTITY unb1_test IS
     VERSION      : IN    STD_LOGIC_VECTOR(c_unb1_board_aux.version_w-1 DOWNTO 0);
     ID           : IN    STD_LOGIC_VECTOR(c_unb1_board_aux.id_w-1 DOWNTO 0);
     TESTIO       : INOUT STD_LOGIC_VECTOR(c_unb1_board_aux.testio_w-1 DOWNTO 0);
-    
+
     -- I2C Interface to Sensors
     SENS_SC      : INOUT STD_LOGIC;
     SENS_SD      : INOUT STD_LOGIC;
-  
+
     -- 1GbE Control Interface
     ETH_CLK      : IN    STD_LOGIC;
     ETH_SGIN     : IN    STD_LOGIC;
@@ -103,12 +103,12 @@ ENTITY unb1_test IS
     -- SO-DIMM Memory Bank I
     MB_I_IN       : IN    t_tech_ddr3_phy_in := c_tech_ddr3_phy_in_x;
     MB_I_IO       : INOUT t_tech_ddr3_phy_io;
-    MB_I_OU       : OUT   t_tech_ddr3_phy_ou
+    MB_I_OU       : OUT   t_tech_ddr3_phy_ou;
 
-    -- SO-DIMM Memory Bank II                                                                    
-    -- MB_II_IN      : IN    t_tech_ddr3_phy_in := c_tech_ddr3_phy_in_x;
-    -- MB_II_IO      : INOUT t_tech_ddr3_phy_io;
-    -- MB_II_OU      : OUT   t_tech_ddr3_phy_ou
+    -- SO-DIMM Memory Bank II
+    MB_II_IN      : IN    t_tech_ddr3_phy_in := c_tech_ddr3_phy_in_x;
+    MB_II_IO      : INOUT t_tech_ddr3_phy_io;
+    MB_II_OU      : OUT   t_tech_ddr3_phy_ou
   );
 END unb1_test;
 
@@ -117,15 +117,17 @@ END unb1_test;
 ARCHITECTURE str OF unb1_test IS
 
   -- Firmware version x.y
-  CONSTANT c_fw_version             : t_unb1_board_fw_version := (1, 2);
+  CONSTANT c_fw_version                       : t_unb1_board_fw_version := (1, 2);
 
-  CONSTANT c_use_front              : BOOLEAN := g_design_name="unb1_test_10GbE" OR g_design_name="unb1_test_all";
-  CONSTANT c_use_back               : BOOLEAN := FALSE; -- however SI_FN_[0..2] do connect to copper connectors of single board unb
+  CONSTANT c_use_front                        : BOOLEAN := g_design_name="unb1_test_10GbE" OR g_design_name="unb1_test_all";
+  CONSTANT c_use_back                         : BOOLEAN := FALSE; -- however SI_FN_[0..2] do connect to copper connectors of single board unb
 
   -- Revision controlled constants
-  CONSTANT c_use_1GbE               : BOOLEAN := g_design_name="unb1_test_1GbE"  OR g_design_name="unb1_test_10GbE" OR g_design_name="unb1_test_all";
-  CONSTANT c_use_10GbE              : BOOLEAN := g_design_name="unb1_test_10GbE" OR g_design_name="unb1_test_all";
-  CONSTANT c_use_ddr                : BOOLEAN := g_design_name="unb1_test_ddr"   OR g_design_name="unb1_test_all";
+  CONSTANT c_use_1GbE                         : BOOLEAN := g_design_name="unb1_test_1GbE"        OR g_design_name="unb1_test_10GbE" OR g_design_name="unb1_test_all";
+  CONSTANT c_use_10GbE                        : BOOLEAN := g_design_name="unb1_test_10GbE"       OR g_design_name="unb1_test_all";
+  CONSTANT c_use_ddr_MB_I                     : BOOLEAN := g_design_name="unb1_test_ddr_MB_I";
+  CONSTANT c_use_ddr_MB_II                    : BOOLEAN := g_design_name="unb1_test_ddr_MB_II";
+  CONSTANT c_use_ddr_MB_I_II                  : BOOLEAN := g_design_name="unb1_test_ddr_MB_I_II" OR g_design_name="unb1_test_all";
 
 
   -- max useful peripherals (FIXME read these constants from board lib)
@@ -133,154 +135,155 @@ ARCHITECTURE str OF unb1_test IS
 
 
   -- ddr
-  CONSTANT c_nof_MB                 : NATURAL := c_unb1_board_nof_ddr3;  -- Fixed control infrastructure for 2 modules per FPGA
-  CONSTANT c_use_MB_I               : NATURAL := sel_a_b(c_use_ddr,1,0); -- 1: use MB_I  0: do not use
-  CONSTANT c_use_MB_II              : NATURAL := 0;
-
-  CONSTANT c_use_phy                : t_c_unb1_board_use_phy  := (sel_a_b(c_use_1GbE, 1, 0), 
-                                                                  sel_a_b(c_use_front,1, 0), 
-                                                                  0, 
-                                                                  sel_a_b(c_use_back, 1, 0), 
-                                                                  sel_a_b(c_use_MB_I, 1, 0), 
-                                                                  sel_a_b(c_use_MB_II,1, 0), 
-                                                                  0, 1);
-
-  CONSTANT c_nof_streams_10GbE          : NATURAL := sel_a_b(c_use_10GbE,3,0);
-  CONSTANT c_nof_streams_1GbE           : NATURAL := sel_a_b(c_use_1GbE,1,0);
-  CONSTANT c_nof_streams_ddr            : NATURAL := sel_a_b(c_use_MB_I,sel_a_b(c_use_MB_II,2,1),0);
-  CONSTANT c_nof_streams                : NATURAL := c_nof_streams_1GbE + c_nof_streams_10GbE + c_nof_streams_ddr;
-  CONSTANT c_nof_streams_eth            : NATURAL := c_nof_streams_1GbE + c_nof_streams_10GbE;
-  CONSTANT c_data_w_32                  : NATURAL := c_eth_data_w;   --  1GbE
-  CONSTANT c_data_w_64                  : NATURAL := c_xgmii_data_w; -- 10GbE
+  CONSTANT c_nof_MB                           : NATURAL := c_unb1_board_nof_ddr3;         -- Fixed control infrastructure for 2 modules per FPGA
+  CONSTANT c_use_MB_I                         : NATURAL := sel_a_b((c_use_ddr_MB_I OR c_use_ddr_MB_I_II),1,0); -- 1: use MB_I  0: do not use
+  CONSTANT c_use_MB_II                        : NATURAL := sel_a_b((c_use_ddr_MB_II OR c_use_ddr_MB_I_II),1,0);  -- 1: use MB_II  0: do not use
+
+  CONSTANT c_use_phy                          : t_c_unb1_board_use_phy  := (sel_a_b(c_use_1GbE, 1, 0),
+                                                                            sel_a_b(c_use_front,1, 0),
+                                                                            0,
+                                                                            sel_a_b(c_use_back, 1, 0),
+                                                                            sel_a_b(c_use_MB_I, 1, 0),
+                                                                            sel_a_b(c_use_MB_II,1, 0),
+                                                                            0, 1);
+
+  CONSTANT c_nof_streams_10GbE                : NATURAL := sel_a_b(c_use_10GbE,3,0);
+  CONSTANT c_nof_streams_1GbE                 : NATURAL := sel_a_b(c_use_1GbE,1,0);
+  CONSTANT c_nof_streams_ddr                  : NATURAL := sel_a_b(c_use_MB_I,sel_a_b(c_use_MB_II,2,1),0);
+  CONSTANT c_nof_streams                      : NATURAL := c_nof_streams_1GbE + c_nof_streams_10GbE + c_nof_streams_ddr;
+  CONSTANT c_nof_streams_eth                  : NATURAL := c_nof_streams_1GbE + c_nof_streams_10GbE;
+  CONSTANT c_data_w_32                        : NATURAL := c_eth_data_w;   --  1GbE
+  CONSTANT c_data_w_64                        : NATURAL := c_xgmii_data_w; -- 10GbE
 
   -- ddr
-  CONSTANT c_ddr_master                 : t_c_tech_ddr := c_tech_ddr3_4g_800m_master;
-  CONSTANT c_ddr_slave                  : t_c_tech_ddr := c_tech_ddr3_4g_800m_slave;
+  CONSTANT c_ddr_master                       : t_c_tech_ddr := c_tech_ddr3_4g_single_rank_800m_master;
+  CONSTANT c_ddr_slave                        : t_c_tech_ddr := c_tech_ddr3_4g_single_rank_800m_slave;
 
   -- Block generator constants
-  CONSTANT c_bg_block_size              : NATURAL := 900;
-  CONSTANT c_bg_gapsize                 : NATURAL := 100;
-  CONSTANT c_bg_blocks_per_sync         : NATURAL := sel_a_b(g_sim, 10, 200000); -- 200000*(900+100) = 200000000 cycles = 1 second
+  CONSTANT c_bg_block_size                    : NATURAL := 900;
+  CONSTANT c_bg_gapsize                       : NATURAL := 100;
+  CONSTANT c_bg_blocks_per_sync               : NATURAL := sel_a_b(g_sim, 10, 200000); -- 200000*(900+100) = 200000000 cycles = 1 second
 
-  CONSTANT c_use_jumbo_frames           : BOOLEAN := FALSE;
-  CONSTANT c_def_1GbE_block_size        : NATURAL := 0;   -- 0 first so we have time to set RX demux reg in dest. node
-  CONSTANT c_def_10GbE_block_size       : NATURAL := 700; -- (700/1000) * 200MHz * 64b = 8.96Gbps user rate (excl. header overhead (16 words/packet) )
+  CONSTANT c_use_jumbo_frames                 : BOOLEAN := FALSE;
+  CONSTANT c_def_1GbE_block_size              : NATURAL := 0;   -- 0 first so we have time to set RX demux reg in dest. node
+  CONSTANT c_def_10GbE_block_size             : NATURAL := 700; -- (700/1000) * 200MHz * 64b = 8.96Gbps user rate (excl. header overhead (16 words/packet) )
 
-  CONSTANT c_max_frame_len              : NATURAL := sel_a_b(c_use_jumbo_frames, 9018, 1518);
-  CONSTANT c_nof_header_bytes           : NATURAL := field_slv_len(c_hdr_field_arr) / c_byte_w;
-  CONSTANT c_max_udp_payload_len        : NATURAL := c_max_frame_len-c_nof_header_bytes-c_network_eth_crc_len;
+  CONSTANT c_max_frame_len                    : NATURAL := sel_a_b(c_use_jumbo_frames, 9018, 1518);
+  CONSTANT c_nof_header_bytes                 : NATURAL := field_slv_len(c_hdr_field_arr) / c_byte_w;
+  CONSTANT c_max_udp_payload_len              : NATURAL := c_max_frame_len-c_nof_header_bytes-c_network_eth_crc_len;
 
-  CONSTANT c_max_udp_payload_nof_words_1GbE  : NATURAL := (c_max_udp_payload_len * c_byte_w) / c_data_w_32;
-  CONSTANT c_max_udp_payload_nof_words_10GbE : NATURAL := (c_max_udp_payload_len * c_byte_w) / c_data_w_64;
-  CONSTANT c_min_nof_words_per_block         : NATURAL := 1;
-  CONSTANT c_max_nof_blocks_per_packet_1GbE  : NATURAL := c_max_udp_payload_nof_words_1GbE/c_min_nof_words_per_block;
-  CONSTANT c_max_nof_blocks_per_packet_10GbE : NATURAL := c_max_udp_payload_nof_words_10GbE/c_min_nof_words_per_block;
+  CONSTANT c_max_udp_payload_nof_words_1GbE   : NATURAL := (c_max_udp_payload_len * c_byte_w) / c_data_w_32;
+  CONSTANT c_max_udp_payload_nof_words_10GbE  : NATURAL := (c_max_udp_payload_len * c_byte_w) / c_data_w_64;
+  CONSTANT c_min_nof_words_per_block          : NATURAL := 1;
+  CONSTANT c_max_nof_blocks_per_packet_1GbE   : NATURAL := c_max_udp_payload_nof_words_1GbE/c_min_nof_words_per_block;
+  CONSTANT c_max_nof_blocks_per_packet_10GbE  : NATURAL := c_max_udp_payload_nof_words_10GbE/c_min_nof_words_per_block;
 
 
   -- System
-  SIGNAL cs_sim                     : STD_LOGIC;
-  SIGNAL xo_clk                     : STD_LOGIC;
-  SIGNAL xo_rst                     : STD_LOGIC;
-  SIGNAL xo_rst_n                   : STD_LOGIC;
-  SIGNAL mm_clk                     : STD_LOGIC;
-  SIGNAL mm_locked                  : STD_LOGIC;
-  SIGNAL mm_rst                     : STD_LOGIC;
-  
-  SIGNAL cal_rec_clk                : STD_LOGIC;
-  SIGNAL epcs_clk                   : STD_LOGIC;
-  SIGNAL sa_rst                     : STD_LOGIC;
-  
-  SIGNAL dp_clk                     : STD_LOGIC;
-  SIGNAL dp_rst                     : STD_LOGIC;
-  
+  SIGNAL cs_sim                               : STD_LOGIC;
+  SIGNAL xo_clk                               : STD_LOGIC;
+  SIGNAL xo_rst                               : STD_LOGIC;
+  SIGNAL xo_rst_n                             : STD_LOGIC;
+  SIGNAL mm_clk                               : STD_LOGIC;
+  SIGNAL mm_locked                            : STD_LOGIC;
+  SIGNAL mm_rst                               : STD_LOGIC;
+
+  SIGNAL ddr_ref_rst                          : STD_LOGIC;
+
+  SIGNAL cal_rec_clk                          : STD_LOGIC;
+  SIGNAL epcs_clk                             : STD_LOGIC;
+  SIGNAL sa_rst                               : STD_LOGIC;
+
+  SIGNAL dp_clk                               : STD_LOGIC;
+  SIGNAL dp_rst                               : STD_LOGIC;
+
   -- PIOs
-  SIGNAL pout_wdi                   : STD_LOGIC;
+  SIGNAL pout_wdi                             : STD_LOGIC;
 
   -- WDI override
-  SIGNAL reg_wdi_mosi               : t_mem_mosi;
-  SIGNAL reg_wdi_miso               : t_mem_miso;
+  SIGNAL reg_wdi_mosi                         : t_mem_mosi;
+  SIGNAL reg_wdi_miso                         : t_mem_miso;
 
   -- PPSH
-  SIGNAL reg_ppsh_mosi              : t_mem_mosi;
-  SIGNAL reg_ppsh_miso              : t_mem_miso;
-  
+  SIGNAL reg_ppsh_mosi                        : t_mem_mosi;
+  SIGNAL reg_ppsh_miso                        : t_mem_miso;
+
   -- UniBoard system info
-  SIGNAL reg_unb_system_info_mosi   : t_mem_mosi;
-  SIGNAL reg_unb_system_info_miso   : t_mem_miso;
-  SIGNAL rom_unb_system_info_mosi   : t_mem_mosi;
-  SIGNAL rom_unb_system_info_miso   : t_mem_miso;
+  SIGNAL reg_unb_system_info_mosi             : t_mem_mosi;
+  SIGNAL reg_unb_system_info_miso             : t_mem_miso;
+  SIGNAL rom_unb_system_info_mosi             : t_mem_mosi;
+  SIGNAL rom_unb_system_info_miso             : t_mem_miso;
 
   -- UniBoard I2C sens
-  SIGNAL reg_unb_sens_mosi          : t_mem_mosi;
-  SIGNAL reg_unb_sens_miso          : t_mem_miso;
+  SIGNAL reg_unb_sens_mosi                    : t_mem_mosi;
+  SIGNAL reg_unb_sens_miso                    : t_mem_miso;
 
   -- eth1g
-  SIGNAL eth1g_tse_clk              : STD_LOGIC;
-  SIGNAL eth1g_mm_rst               : STD_LOGIC;
-  SIGNAL eth1g_tse_mosi             : t_mem_mosi;  -- ETH TSE MAC registers
-  SIGNAL eth1g_tse_miso             : t_mem_miso;
-  SIGNAL eth1g_reg_mosi             : t_mem_mosi;  -- ETH control and status registers
-  SIGNAL eth1g_reg_miso             : t_mem_miso;
-  SIGNAL eth1g_reg_interrupt        : STD_LOGIC;
-  SIGNAL eth1g_ram_mosi             : t_mem_mosi;  -- ETH rx frame and tx frame memory
-  SIGNAL eth1g_ram_miso             : t_mem_miso;
+  SIGNAL eth1g_tse_clk                        : STD_LOGIC;
+  SIGNAL eth1g_mm_rst                         : STD_LOGIC;
+  SIGNAL eth1g_tse_mosi                       : t_mem_mosi;  -- ETH TSE MAC registers
+  SIGNAL eth1g_tse_miso                       : t_mem_miso;
+  SIGNAL eth1g_reg_mosi                       : t_mem_mosi;  -- ETH control and status registers
+  SIGNAL eth1g_reg_miso                       : t_mem_miso;
+  SIGNAL eth1g_reg_interrupt                  : STD_LOGIC;
+  SIGNAL eth1g_ram_mosi                       : t_mem_mosi;  -- ETH rx frame and tx frame memory
+  SIGNAL eth1g_ram_miso                       : t_mem_miso;
 
   -- EPCS read
-  SIGNAL reg_dpmm_data_mosi         : t_mem_mosi;
-  SIGNAL reg_dpmm_data_miso         : t_mem_miso;
-  SIGNAL reg_dpmm_ctrl_mosi         : t_mem_mosi;
-  SIGNAL reg_dpmm_ctrl_miso         : t_mem_miso;
+  SIGNAL reg_dpmm_data_mosi                   : t_mem_mosi;
+  SIGNAL reg_dpmm_data_miso                   : t_mem_miso;
+  SIGNAL reg_dpmm_ctrl_mosi                   : t_mem_mosi;
+  SIGNAL reg_dpmm_ctrl_miso                   : t_mem_miso;
 
   -- EPCS write
-  SIGNAL reg_mmdp_data_mosi         : t_mem_mosi;
-  SIGNAL reg_mmdp_data_miso         : t_mem_miso;
-  SIGNAL reg_mmdp_ctrl_mosi         : t_mem_mosi;
-  SIGNAL reg_mmdp_ctrl_miso         : t_mem_miso;
+  SIGNAL reg_mmdp_data_mosi                   : t_mem_mosi;
+  SIGNAL reg_mmdp_data_miso                   : t_mem_miso;
+  SIGNAL reg_mmdp_ctrl_mosi                   : t_mem_mosi;
+  SIGNAL reg_mmdp_ctrl_miso                   : t_mem_miso;
 
   -- EPCS status/control
-  SIGNAL reg_epcs_mosi              : t_mem_mosi;
-  SIGNAL reg_epcs_miso              : t_mem_miso;
+  SIGNAL reg_epcs_mosi                        : t_mem_mosi;
+  SIGNAL reg_epcs_miso                        : t_mem_miso;
 
   -- Remote Update
-  SIGNAL reg_remu_mosi              : t_mem_mosi;
-  SIGNAL reg_remu_miso              : t_mem_miso;
+  SIGNAL reg_remu_mosi                        : t_mem_mosi;
+  SIGNAL reg_remu_miso                        : t_mem_miso;
 
   -- 10GbE
-  SIGNAL xaui_tx_arr                : t_unb1_board_xaui_sl_2arr(c_nof_streams_10GbE-1 DOWNTO 0);
-  SIGNAL xaui_rx_arr                : t_unb1_board_xaui_sl_2arr(c_nof_streams_10GbE-1 DOWNTO 0);
-  SIGNAL i_xaui_tx_arr              : t_xaui_arr(c_nof_streams_10GbE-1 DOWNTO 0);
-  SIGNAL i_xaui_rx_arr              : t_xaui_arr(c_nof_streams_10GbE-1 DOWNTO 0);
-
-  SIGNAL mdio_mdc_arr               : STD_LOGIC_VECTOR(c_nof_streams_10GbE-1 DOWNTO 0);
-  SIGNAL mdio_mdat_in_arr           : STD_LOGIC_VECTOR(c_nof_streams_10GbE-1 DOWNTO 0);
-  SIGNAL mdio_mdat_oen_arr          : STD_LOGIC_VECTOR(c_nof_streams_10GbE-1 DOWNTO 0);
-
-  SIGNAL reg_tr_10GbE_mosi          : t_mem_mosi;
-  SIGNAL reg_tr_10GbE_miso          : t_mem_miso;
-
-  SIGNAL reg_tr_xaui_mosi           : t_mem_mosi;
-  SIGNAL reg_tr_xaui_miso           : t_mem_miso;
-
-  SIGNAL reg_diag_bg_1GbE_mosi      : t_mem_mosi;
-  SIGNAL reg_diag_bg_1GbE_miso      : t_mem_miso;
-  SIGNAL ram_diag_bg_1GbE_mosi      : t_mem_mosi;
-  SIGNAL ram_diag_bg_1GbE_miso      : t_mem_miso;
-  SIGNAL reg_diag_tx_seq_1GbE_mosi  : t_mem_mosi;
-  SIGNAL reg_diag_tx_seq_1GbE_miso  : t_mem_miso;
-
-  SIGNAL reg_diag_bg_10GbE_mosi     : t_mem_mosi;
-  SIGNAL reg_diag_bg_10GbE_miso     : t_mem_miso;
-  SIGNAL ram_diag_bg_10GbE_mosi     : t_mem_mosi;
-  SIGNAL ram_diag_bg_10GbE_miso     : t_mem_miso;
-  SIGNAL reg_diag_tx_seq_10GbE_mosi : t_mem_mosi;
-  SIGNAL reg_diag_tx_seq_10GbE_miso : t_mem_miso;
-
-  SIGNAL reg_diag_bg_ddr_mosi       : t_mem_mosi;
-  SIGNAL reg_diag_bg_ddr_miso       : t_mem_miso;
-  SIGNAL ram_diag_bg_ddr_mosi       : t_mem_mosi;
-  SIGNAL ram_diag_bg_ddr_miso       : t_mem_miso;
-  SIGNAL reg_diag_tx_seq_ddr_mosi   : t_mem_mosi;
-  SIGNAL reg_diag_tx_seq_ddr_miso   : t_mem_miso;
+  SIGNAL xaui_tx_arr                          : t_unb1_board_xaui_sl_2arr(c_nof_streams_10GbE-1 DOWNTO 0);
+  SIGNAL xaui_rx_arr                          : t_unb1_board_xaui_sl_2arr(c_nof_streams_10GbE-1 DOWNTO 0);
+  SIGNAL i_xaui_tx_arr                        : t_xaui_arr(c_nof_streams_10GbE-1 DOWNTO 0);
+  SIGNAL i_xaui_rx_arr                        : t_xaui_arr(c_nof_streams_10GbE-1 DOWNTO 0);
+
+  SIGNAL mdio_mdc_arr                         : STD_LOGIC_VECTOR(c_nof_streams_10GbE-1 DOWNTO 0);
+  SIGNAL mdio_mdat_in_arr                     : STD_LOGIC_VECTOR(c_nof_streams_10GbE-1 DOWNTO 0);
+  SIGNAL mdio_mdat_oen_arr                    : STD_LOGIC_VECTOR(c_nof_streams_10GbE-1 DOWNTO 0);
+
+  SIGNAL reg_tr_10GbE_mosi                    : t_mem_mosi;
+  SIGNAL reg_tr_10GbE_miso                    : t_mem_miso;
+
+  SIGNAL reg_tr_xaui_mosi                     : t_mem_mosi;
+  SIGNAL reg_tr_xaui_miso                     : t_mem_miso;
+
+  SIGNAL reg_diag_bg_1GbE_mosi                : t_mem_mosi;
+  SIGNAL reg_diag_bg_1GbE_miso                : t_mem_miso;
+  SIGNAL ram_diag_bg_1GbE_mosi                : t_mem_mosi;
+  SIGNAL ram_diag_bg_1GbE_miso                : t_mem_miso;
+  SIGNAL reg_diag_tx_seq_1GbE_mosi            : t_mem_mosi;
+  SIGNAL reg_diag_tx_seq_1GbE_miso            : t_mem_miso;
+
+  SIGNAL reg_diag_bg_10GbE_mosi               : t_mem_mosi;
+  SIGNAL reg_diag_bg_10GbE_miso               : t_mem_miso;
+  SIGNAL ram_diag_bg_10GbE_mosi               : t_mem_mosi;
+  SIGNAL ram_diag_bg_10GbE_miso               : t_mem_miso;
+  SIGNAL reg_diag_tx_seq_10GbE_mosi           : t_mem_mosi;
+  SIGNAL reg_diag_tx_seq_10GbE_miso           : t_mem_miso;
+
+  SIGNAL reg_diag_tx_seq_ddr_MB_I_mosi      : t_mem_mosi;
+  SIGNAL reg_diag_tx_seq_ddr_MB_I_miso      : t_mem_miso;
+
+  SIGNAL reg_diag_tx_seq_ddr_MB_II_mosi       : t_mem_mosi;
+  SIGNAL reg_diag_tx_seq_ddr_MB_II_miso       : t_mem_miso;
 
   SIGNAL reg_dp_offload_tx_1GbE_mosi          : t_mem_mosi;
   SIGNAL reg_dp_offload_tx_1GbE_miso          : t_mem_miso;
@@ -297,61 +300,80 @@ ARCHITECTURE str OF unb1_test IS
   SIGNAL reg_dp_offload_rx_10GbE_hdr_dat_mosi : t_mem_mosi;
   SIGNAL reg_dp_offload_rx_10GbE_hdr_dat_miso : t_mem_miso;
 
-  SIGNAL reg_bsn_monitor_1GbE_mosi       : t_mem_mosi;
-  SIGNAL reg_bsn_monitor_1GbE_miso       : t_mem_miso;
-  SIGNAL reg_bsn_monitor_10GbE_mosi      : t_mem_mosi;
-  SIGNAL reg_bsn_monitor_10GbE_miso      : t_mem_miso;
-  SIGNAL reg_bsn_monitor_ddr_mosi        : t_mem_mosi;
-  SIGNAL reg_bsn_monitor_ddr_miso        : t_mem_miso;
-
-  SIGNAL ram_diag_data_buf_1GbE_mosi     : t_mem_mosi;
-  SIGNAL ram_diag_data_buf_1GbE_miso     : t_mem_miso;
-  SIGNAL reg_diag_data_buf_1GbE_mosi     : t_mem_mosi;
-  SIGNAL reg_diag_data_buf_1GbE_miso     : t_mem_miso;
-  SIGNAL reg_diag_rx_seq_1GbE_mosi       : t_mem_mosi;
-  SIGNAL reg_diag_rx_seq_1GbE_miso       : t_mem_miso;
-
-  SIGNAL ram_diag_data_buf_10GbE_mosi    : t_mem_mosi;
-  SIGNAL ram_diag_data_buf_10GbE_miso    : t_mem_miso;
-  SIGNAL reg_diag_data_buf_10GbE_mosi    : t_mem_mosi;
-  SIGNAL reg_diag_data_buf_10GbE_miso    : t_mem_miso;
-  SIGNAL reg_diag_rx_seq_10GbE_mosi      : t_mem_mosi;
-  SIGNAL reg_diag_rx_seq_10GbE_miso      : t_mem_miso;
-
-  SIGNAL ram_diag_data_buf_ddr_mosi      : t_mem_mosi;
-  SIGNAL ram_diag_data_buf_ddr_miso      : t_mem_miso;
-  SIGNAL reg_diag_data_buf_ddr_mosi      : t_mem_mosi;
-  SIGNAL reg_diag_data_buf_ddr_miso      : t_mem_miso;
-  SIGNAL reg_diag_rx_seq_ddr_mosi        : t_mem_mosi;
-  SIGNAL reg_diag_rx_seq_ddr_miso        : t_mem_miso;
-
-  SIGNAL block_gen_1GbE_src_out_arr      : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL block_gen_10GbE_src_out_arr     : t_dp_sosi_arr(c_nof_streams_10GbE-1 DOWNTO 0);
-
-  SIGNAL dp_offload_tx_1GbE_src_out_arr  : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL dp_offload_tx_1GbE_src_in_arr   : t_dp_siso_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL dp_offload_tx_10GbE_src_out_arr : t_dp_sosi_arr(c_nof_streams_10GbE-1 DOWNTO 0);
-  SIGNAL dp_offload_tx_10GbE_src_in_arr  : t_dp_siso_arr(c_nof_streams_10GbE-1 DOWNTO 0);
-
-  SIGNAL dp_offload_rx_1GbE_snk_in_arr   : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL dp_offload_rx_1GbE_snk_out_arr  : t_dp_siso_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL dp_offload_rx_10GbE_snk_in_arr  : t_dp_sosi_arr(c_nof_streams_10GbE-1 DOWNTO 0);
-  SIGNAL dp_offload_rx_10GbE_snk_out_arr : t_dp_siso_arr(c_nof_streams_10GbE-1 DOWNTO 0);
-
-  SIGNAL ram_ss_ss_transp_mosi           : t_mem_mosi;
-  SIGNAL ram_ss_ss_transp_miso           : t_mem_miso;
-
-  SIGNAL reg_io_ddr_mosi                 : t_mem_mosi;
-  SIGNAL reg_io_ddr_miso                 : t_mem_miso;
+  SIGNAL reg_bsn_monitor_1GbE_mosi            : t_mem_mosi;
+  SIGNAL reg_bsn_monitor_1GbE_miso            : t_mem_miso;
+  SIGNAL reg_bsn_monitor_10GbE_mosi           : t_mem_mosi;
+  SIGNAL reg_bsn_monitor_10GbE_miso           : t_mem_miso;
+
+  SIGNAL ram_diag_data_buf_1GbE_mosi          : t_mem_mosi;
+  SIGNAL ram_diag_data_buf_1GbE_miso          : t_mem_miso;
+  SIGNAL reg_diag_data_buf_1GbE_mosi          : t_mem_mosi;
+  SIGNAL reg_diag_data_buf_1GbE_miso          : t_mem_miso;
+  SIGNAL reg_diag_rx_seq_1GbE_mosi            : t_mem_mosi;
+  SIGNAL reg_diag_rx_seq_1GbE_miso            : t_mem_miso;
+
+  SIGNAL ram_diag_data_buf_10GbE_mosi         : t_mem_mosi;
+  SIGNAL ram_diag_data_buf_10GbE_miso         : t_mem_miso;
+  SIGNAL reg_diag_data_buf_10GbE_mosi         : t_mem_mosi;
+  SIGNAL reg_diag_data_buf_10GbE_miso         : t_mem_miso;
+  SIGNAL reg_diag_rx_seq_10GbE_mosi           : t_mem_mosi;
+  SIGNAL reg_diag_rx_seq_10GbE_miso           : t_mem_miso;
+
+  SIGNAL ram_diag_data_buf_ddr_MB_I_mosi      : t_mem_mosi;
+  SIGNAL ram_diag_data_buf_ddr_MB_I_miso      : t_mem_miso;
+  SIGNAL reg_diag_data_buf_ddr_MB_I_mosi      : t_mem_mosi;
+  SIGNAL reg_diag_data_buf_ddr_MB_I_miso      : t_mem_miso;
+  SIGNAL reg_diag_rx_seq_ddr_MB_I_mosi        : t_mem_mosi;
+  SIGNAL reg_diag_rx_seq_ddr_MB_I_miso        : t_mem_miso;
+
+  SIGNAL ram_diag_data_buf_ddr_MB_II_mosi     : t_mem_mosi;
+  SIGNAL ram_diag_data_buf_ddr_MB_II_miso     : t_mem_miso;
+  SIGNAL reg_diag_data_buf_ddr_MB_II_mosi     : t_mem_mosi;
+  SIGNAL reg_diag_data_buf_ddr_MB_II_miso     : t_mem_miso;
+  SIGNAL reg_diag_rx_seq_ddr_MB_II_mosi       : t_mem_mosi;
+  SIGNAL reg_diag_rx_seq_ddr_MB_II_miso       : t_mem_miso;
+
+  SIGNAL block_gen_1GbE_src_out_arr           : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
+  SIGNAL block_gen_10GbE_src_out_arr          : t_dp_sosi_arr(c_nof_streams_10GbE-1 DOWNTO 0);
+
+  SIGNAL dp_offload_tx_1GbE_src_out_arr       : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
+  SIGNAL dp_offload_tx_1GbE_src_in_arr        : t_dp_siso_arr(c_nof_streams_1GbE-1 DOWNTO 0);
+  SIGNAL dp_offload_tx_10GbE_src_out_arr      : t_dp_sosi_arr(c_nof_streams_10GbE-1 DOWNTO 0);
+  SIGNAL dp_offload_tx_10GbE_src_in_arr       : t_dp_siso_arr(c_nof_streams_10GbE-1 DOWNTO 0);
+
+  SIGNAL dp_offload_rx_1GbE_snk_in_arr        : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
+  SIGNAL dp_offload_rx_1GbE_snk_out_arr       : t_dp_siso_arr(c_nof_streams_1GbE-1 DOWNTO 0);
+  SIGNAL dp_offload_rx_10GbE_snk_in_arr       : t_dp_sosi_arr(c_nof_streams_10GbE-1 DOWNTO 0);
+  SIGNAL dp_offload_rx_10GbE_snk_out_arr      : t_dp_siso_arr(c_nof_streams_10GbE-1 DOWNTO 0);
+
+  SIGNAL reg_io_ddr_MB_I_mosi                 : t_mem_mosi;
+  SIGNAL reg_io_ddr_MB_I_miso                 : t_mem_miso;
+  SIGNAL reg_io_ddr_MB_II_mosi                : t_mem_mosi;
+  SIGNAL reg_io_ddr_MB_II_miso                : t_mem_miso;
 
    -- Interface: 1GbE UDP streaming ports
-  SIGNAL eth1g_udp_tx_sosi_arr           : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL eth1g_udp_tx_siso_arr           : t_dp_siso_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL eth1g_udp_rx_sosi_arr           : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL eth1g_udp_rx_siso_arr           : t_dp_siso_arr(c_nof_streams_1GbE-1 DOWNTO 0);
+  SIGNAL eth1g_udp_tx_sosi_arr                : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
+  SIGNAL eth1g_udp_tx_siso_arr                : t_dp_siso_arr(c_nof_streams_1GbE-1 DOWNTO 0);
+  SIGNAL eth1g_udp_rx_sosi_arr                : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
+  SIGNAL eth1g_udp_rx_siso_arr                : t_dp_siso_arr(c_nof_streams_1GbE-1 DOWNTO 0);
+
+    -- DDR3 pass on termination control from master to slave controller
+  SIGNAL term_ctrl_out                        : t_tech_ddr3_phy_terminationcontrol;
+  SIGNAL term_ctrl_in                         : t_tech_ddr3_phy_terminationcontrol := c_tech_ddr3_phy_terminationcontrol_rst;
+
 
 BEGIN
 
+  u_areset_ddr_ref_rst : ENTITY common_lib.common_areset
+  GENERIC MAP(
+    g_rst_level => '1',
+    g_delay_len => 40
+  )
+  PORT MAP(
+    clk     => CLK,
+    in_rst  => mm_rst,
+    out_rst => ddr_ref_rst
+  );
   -----------------------------------------------------------------------------
   -- General control function
   -----------------------------------------------------------------------------
@@ -361,15 +383,15 @@ BEGIN
     g_design_name             => g_design_name,
     g_design_note             => g_design_note,
     g_stamp_date              => g_stamp_date,
-    g_stamp_time              => g_stamp_time, 
-    g_stamp_svn               => g_stamp_svn, 
+    g_stamp_time              => g_stamp_time,
+    g_stamp_svn               => g_stamp_svn,
     g_fw_version              => c_fw_version,
     g_mm_clk_freq             => c_unb1_board_mm_clk_freq_125M,
     g_use_phy                 => c_use_phy,
     g_aux                     => c_unb1_board_aux,
     g_udp_offload             => c_use_1GbE,
     g_udp_offload_nof_streams => c_nof_streams_1GbE,
-    g_dp_clk_use_pll          => TRUE,
+    g_dp_clk_use_pll          => FALSE,
     g_xo_clk_use_pll          => TRUE
   )
   PORT MAP (
@@ -389,14 +411,14 @@ BEGIN
     epcs_clk                 => epcs_clk,
     epcs_clk_out             => epcs_clk,
 
-    dp_rst                   => dp_rst,
-    dp_clk                   => dp_clk,
+    dp_rst                   => OPEN,
+    dp_clk                   => OPEN,
     dp_pps                   => OPEN,
     dp_rst_in                => dp_rst,
     dp_clk_in                => dp_clk,
 
     cal_rec_clk              => cal_rec_clk,
-    
+
     -- Toggle WDI
     pout_wdi                 => pout_wdi,
 
@@ -424,21 +446,21 @@ BEGIN
     -- EPCS status/control
     reg_epcs_mosi            => reg_epcs_mosi,
     reg_epcs_miso            => reg_epcs_miso,
-    
+
     -- . System_info
     reg_unb_system_info_mosi => reg_unb_system_info_mosi,
-    reg_unb_system_info_miso => reg_unb_system_info_miso, 
+    reg_unb_system_info_miso => reg_unb_system_info_miso,
     rom_unb_system_info_mosi => rom_unb_system_info_mosi,
-    rom_unb_system_info_miso => rom_unb_system_info_miso, 
-    
+    rom_unb_system_info_miso => rom_unb_system_info_miso,
+
     -- . UniBoard I2C sensors
     reg_unb_sens_mosi        => reg_unb_sens_mosi,
-    reg_unb_sens_miso        => reg_unb_sens_miso,    
-    
+    reg_unb_sens_miso        => reg_unb_sens_miso,
+
     -- . PPSH
     reg_ppsh_mosi            => reg_ppsh_mosi,
     reg_ppsh_miso            => reg_ppsh_miso,
-    
+
     -- eth1g
     eth1g_tse_clk_out        => eth1g_tse_clk,
     eth1g_tse_clk            => eth1g_tse_clk,
@@ -450,7 +472,7 @@ BEGIN
     eth1g_reg_interrupt      => eth1g_reg_interrupt,
     eth1g_ram_mosi           => eth1g_ram_mosi,
     eth1g_ram_miso           => eth1g_ram_miso,
-        
+
     -- eth1g UDP streaming ports
     udp_tx_sosi_arr          =>  eth1g_udp_tx_sosi_arr,
     udp_tx_siso_arr          =>  eth1g_udp_tx_siso_arr,
@@ -470,7 +492,7 @@ BEGIN
     TESTIO                   => TESTIO,
     -- . I2C Interface to Sensors
     SENS_SC                  => SENS_SC,
-    SENS_SD                  => SENS_SD,        
+    SENS_SD                  => SENS_SD,
     -- . 1GbE Control Interface
     ETH_CLK                  => ETH_CLK,
     ETH_SGIN                 => ETH_SGIN,
@@ -493,80 +515,73 @@ BEGIN
     g_nof_streams_ddr   => 1,--c_nof_streams_ddr,
     g_bg_block_size     => c_bg_block_size
    )
-  PORT MAP(  
-    mm_rst                         => mm_rst,
-    mm_clk                         => mm_clk,       
+  PORT MAP(
+    mm_rst                               => mm_rst,
+    mm_clk                               => mm_clk,
 
     -- PIOs
-    pout_wdi                       => pout_wdi,
+    pout_wdi                             => pout_wdi,
 
     -- Manual WDI override
-    reg_wdi_mosi                   => reg_wdi_mosi,
-    reg_wdi_miso                   => reg_wdi_miso,
+    reg_wdi_mosi                         => reg_wdi_mosi,
+    reg_wdi_miso                         => reg_wdi_miso,
 
     -- system_info
-    reg_unb_system_info_mosi       => reg_unb_system_info_mosi,
-    reg_unb_system_info_miso       => reg_unb_system_info_miso,
-    rom_unb_system_info_mosi       => rom_unb_system_info_mosi,
-    rom_unb_system_info_miso       => rom_unb_system_info_miso, 
+    reg_unb_system_info_mosi             => reg_unb_system_info_mosi,
+    reg_unb_system_info_miso             => reg_unb_system_info_miso,
+    rom_unb_system_info_mosi             => rom_unb_system_info_mosi,
+    rom_unb_system_info_miso             => rom_unb_system_info_miso,
 
     -- UniBoard I2C sensors
-    reg_unb_sens_mosi              => reg_unb_sens_mosi,
-    reg_unb_sens_miso              => reg_unb_sens_miso, 
- 
+    reg_unb_sens_mosi                    => reg_unb_sens_mosi,
+    reg_unb_sens_miso                    => reg_unb_sens_miso,
+
     -- PPSH
-    reg_ppsh_mosi                  => reg_ppsh_mosi,
-    reg_ppsh_miso                  => reg_ppsh_miso, 
-  
+    reg_ppsh_mosi                        => reg_ppsh_mosi,
+    reg_ppsh_miso                        => reg_ppsh_miso,
+
     -- eth1g
-    eth1g_mm_rst                   => eth1g_mm_rst,
-    eth1g_tse_mosi                 => eth1g_tse_mosi,
-    eth1g_tse_miso                 => eth1g_tse_miso,
-    eth1g_reg_mosi                 => eth1g_reg_mosi,
-    eth1g_reg_miso                 => eth1g_reg_miso,
-    eth1g_reg_interrupt            => eth1g_reg_interrupt,
-    eth1g_ram_mosi                 => eth1g_ram_mosi,
-    eth1g_ram_miso                 => eth1g_ram_miso,
+    eth1g_mm_rst                         => eth1g_mm_rst,
+    eth1g_tse_mosi                       => eth1g_tse_mosi,
+    eth1g_tse_miso                       => eth1g_tse_miso,
+    eth1g_reg_mosi                       => eth1g_reg_mosi,
+    eth1g_reg_miso                       => eth1g_reg_miso,
+    eth1g_reg_interrupt                  => eth1g_reg_interrupt,
+    eth1g_ram_mosi                       => eth1g_ram_mosi,
+    eth1g_ram_miso                       => eth1g_ram_miso,
 
     -- EPCS read
-    reg_dpmm_data_mosi             => reg_dpmm_data_mosi,
-    reg_dpmm_data_miso             => reg_dpmm_data_miso,
-    reg_dpmm_ctrl_mosi             => reg_dpmm_ctrl_mosi,
-    reg_dpmm_ctrl_miso             => reg_dpmm_ctrl_miso,
+    reg_dpmm_data_mosi                   => reg_dpmm_data_mosi,
+    reg_dpmm_data_miso                   => reg_dpmm_data_miso,
+    reg_dpmm_ctrl_mosi                   => reg_dpmm_ctrl_mosi,
+    reg_dpmm_ctrl_miso                   => reg_dpmm_ctrl_miso,
 
     -- EPCS write
-    reg_mmdp_data_mosi             => reg_mmdp_data_mosi,
-    reg_mmdp_data_miso             => reg_mmdp_data_miso,
-    reg_mmdp_ctrl_mosi             => reg_mmdp_ctrl_mosi,
-    reg_mmdp_ctrl_miso             => reg_mmdp_ctrl_miso,
+    reg_mmdp_data_mosi                   => reg_mmdp_data_mosi,
+    reg_mmdp_data_miso                   => reg_mmdp_data_miso,
+    reg_mmdp_ctrl_mosi                   => reg_mmdp_ctrl_mosi,
+    reg_mmdp_ctrl_miso                   => reg_mmdp_ctrl_miso,
 
-    reg_epcs_mosi                  => reg_epcs_mosi,
-    reg_epcs_miso                  => reg_epcs_miso,
+    reg_epcs_mosi                        => reg_epcs_mosi,
+    reg_epcs_miso                        => reg_epcs_miso,
 
-    reg_remu_mosi                  => reg_remu_mosi,
-    reg_remu_miso                  => reg_remu_miso,
+    reg_remu_mosi                        => reg_remu_mosi,
+    reg_remu_miso                        => reg_remu_miso,
 
     -- block gen
-    ram_diag_bg_1GbE_mosi          => ram_diag_bg_1GbE_mosi,
-    ram_diag_bg_1GbE_miso          => ram_diag_bg_1GbE_miso,
-    reg_diag_bg_1GbE_mosi          => reg_diag_bg_1GbE_mosi,
-    reg_diag_bg_1GbE_miso          => reg_diag_bg_1GbE_miso,
-    reg_diag_tx_seq_1GbE_mosi      => reg_diag_tx_seq_1GbE_mosi,
-    reg_diag_tx_seq_1GbE_miso      => reg_diag_tx_seq_1GbE_miso,
-
-    ram_diag_bg_10GbE_mosi         => ram_diag_bg_10GbE_mosi,
-    ram_diag_bg_10GbE_miso         => ram_diag_bg_10GbE_miso,
-    reg_diag_bg_10GbE_mosi         => reg_diag_bg_10GbE_mosi,
-    reg_diag_bg_10GbE_miso         => reg_diag_bg_10GbE_miso,
-    reg_diag_tx_seq_10GbE_mosi     => reg_diag_tx_seq_10GbE_mosi,
-    reg_diag_tx_seq_10GbE_miso     => reg_diag_tx_seq_10GbE_miso,
-
-    ram_diag_bg_ddr_mosi           => ram_diag_bg_ddr_mosi,
-    ram_diag_bg_ddr_miso           => ram_diag_bg_ddr_miso,
-    reg_diag_bg_ddr_mosi           => reg_diag_bg_ddr_mosi,
-    reg_diag_bg_ddr_miso           => reg_diag_bg_ddr_miso,
-    reg_diag_tx_seq_ddr_mosi       => reg_diag_tx_seq_ddr_mosi,
-    reg_diag_tx_seq_ddr_miso       => reg_diag_tx_seq_ddr_miso,
+    ram_diag_bg_1GbE_mosi                => ram_diag_bg_1GbE_mosi,
+    ram_diag_bg_1GbE_miso                => ram_diag_bg_1GbE_miso,
+    reg_diag_bg_1GbE_mosi                => reg_diag_bg_1GbE_mosi,
+    reg_diag_bg_1GbE_miso                => reg_diag_bg_1GbE_miso,
+    reg_diag_tx_seq_1GbE_mosi            => reg_diag_tx_seq_1GbE_mosi,
+    reg_diag_tx_seq_1GbE_miso            => reg_diag_tx_seq_1GbE_miso,
+
+    ram_diag_bg_10GbE_mosi               => ram_diag_bg_10GbE_mosi,
+    ram_diag_bg_10GbE_miso               => ram_diag_bg_10GbE_miso,
+    reg_diag_bg_10GbE_mosi               => reg_diag_bg_10GbE_mosi,
+    reg_diag_bg_10GbE_miso               => reg_diag_bg_10GbE_miso,
+    reg_diag_tx_seq_10GbE_mosi           => reg_diag_tx_seq_10GbE_mosi,
+    reg_diag_tx_seq_10GbE_miso           => reg_diag_tx_seq_10GbE_miso,
 
     -- dp_offload_tx
     reg_dp_offload_tx_1GbE_mosi          => reg_dp_offload_tx_1GbE_mosi,
@@ -591,8 +606,6 @@ BEGIN
     reg_bsn_monitor_1GbE_miso            => reg_bsn_monitor_1GbE_miso,
     reg_bsn_monitor_10GbE_mosi           => reg_bsn_monitor_10GbE_mosi,
     reg_bsn_monitor_10GbE_miso           => reg_bsn_monitor_10GbE_miso,
-    reg_bsn_monitor_ddr_mosi             => reg_bsn_monitor_ddr_mosi,
-    reg_bsn_monitor_ddr_miso             => reg_bsn_monitor_ddr_miso,
 
     -- databuffer
     ram_diag_data_buf_1GbE_mosi          => ram_diag_data_buf_1GbE_mosi,
@@ -609,24 +622,41 @@ BEGIN
     reg_diag_rx_seq_10GbE_mosi           => reg_diag_rx_seq_10GbE_mosi,
     reg_diag_rx_seq_10GbE_miso           => reg_diag_rx_seq_10GbE_miso,
 
-    ram_diag_data_buf_ddr_mosi           => ram_diag_data_buf_ddr_mosi,
-    ram_diag_data_buf_ddr_miso           => ram_diag_data_buf_ddr_miso,
-    reg_diag_data_buf_ddr_mosi           => reg_diag_data_buf_ddr_mosi,
-    reg_diag_data_buf_ddr_miso           => reg_diag_data_buf_ddr_miso,
-    reg_diag_rx_seq_ddr_mosi             => reg_diag_rx_seq_ddr_mosi,
-    reg_diag_rx_seq_ddr_miso             => reg_diag_rx_seq_ddr_miso,
-
     -- tr_10GbE
-    reg_tr_10GbE_mosi              => reg_tr_10GbE_mosi,
-    reg_tr_10GbE_miso              => reg_tr_10GbE_miso,
-    reg_tr_xaui_mosi               => reg_tr_xaui_mosi,
-    reg_tr_xaui_miso               => reg_tr_xaui_miso,
+    reg_tr_10GbE_mosi                    => reg_tr_10GbE_mosi,
+    reg_tr_10GbE_miso                    => reg_tr_10GbE_miso,
+    reg_tr_xaui_mosi                     => reg_tr_xaui_mosi,
+    reg_tr_xaui_miso                     => reg_tr_xaui_miso,
 
-    ram_ss_ss_transp_mosi          => ram_ss_ss_transp_mosi,
-    ram_ss_ss_transp_miso          => ram_ss_ss_transp_miso,
+    -- DDR3 : MB I
+    reg_io_ddr_MB_I_mosi                 => reg_io_ddr_MB_I_mosi,
+    reg_io_ddr_MB_I_miso                 => reg_io_ddr_MB_I_miso,
 
-    reg_io_ddr_mosi                => reg_io_ddr_mosi,
-    reg_io_ddr_miso                => reg_io_ddr_miso
+    reg_diag_tx_seq_ddr_MB_I_mosi        => reg_diag_tx_seq_ddr_MB_I_mosi,
+    reg_diag_tx_seq_ddr_MB_I_miso        => reg_diag_tx_seq_ddr_MB_I_miso,
+
+    reg_diag_rx_seq_ddr_MB_I_mosi        => reg_diag_rx_seq_ddr_MB_I_mosi,
+    reg_diag_rx_seq_ddr_MB_I_miso        => reg_diag_rx_seq_ddr_MB_I_miso,
+
+    reg_diag_data_buf_ddr_MB_I_mosi      => reg_diag_data_buf_ddr_MB_I_mosi,
+    reg_diag_data_buf_ddr_MB_I_miso      => reg_diag_data_buf_ddr_MB_I_miso,
+    ram_diag_data_buf_ddr_MB_I_mosi      => ram_diag_data_buf_ddr_MB_I_mosi,
+    ram_diag_data_buf_ddr_MB_I_miso      => ram_diag_data_buf_ddr_MB_I_miso,
+
+    -- DDR3 : MB II
+    reg_io_ddr_MB_II_mosi                => reg_io_ddr_MB_II_mosi,
+    reg_io_ddr_MB_II_miso                => reg_io_ddr_MB_II_miso,
+
+    reg_diag_tx_seq_ddr_MB_II_mosi       => reg_diag_tx_seq_ddr_MB_II_mosi,
+    reg_diag_tx_seq_ddr_MB_II_miso       => reg_diag_tx_seq_ddr_MB_II_miso,
+
+    reg_diag_rx_seq_ddr_MB_II_mosi       => reg_diag_rx_seq_ddr_MB_II_mosi,
+    reg_diag_rx_seq_ddr_MB_II_miso       => reg_diag_rx_seq_ddr_MB_II_miso,
+
+    reg_diag_data_buf_ddr_MB_II_mosi     => reg_diag_data_buf_ddr_MB_II_mosi,
+    reg_diag_data_buf_ddr_MB_II_miso     => reg_diag_data_buf_ddr_MB_II_miso,
+    ram_diag_data_buf_ddr_MB_II_mosi     => ram_diag_data_buf_ddr_MB_II_mosi,
+    ram_diag_data_buf_ddr_MB_II_miso     => ram_diag_data_buf_ddr_MB_II_miso
   );
 
 
@@ -646,12 +676,12 @@ BEGIN
     PORT MAP (
       mm_rst                         => mm_rst,
       mm_clk                         => mm_clk,
-  
+
       dp_rst                         => dp_rst,
       dp_clk                         => dp_clk,
-  
+
       ID                             => ID,
-  
+
       -- blockgen MM
       reg_diag_bg_mosi               => reg_diag_bg_1GbE_mosi,
       reg_diag_bg_miso               => reg_diag_bg_1GbE_miso,
@@ -659,7 +689,7 @@ BEGIN
       ram_diag_bg_miso               => ram_diag_bg_1GbE_miso,
       reg_diag_tx_seq_mosi           => reg_diag_tx_seq_1GbE_mosi,
       reg_diag_tx_seq_miso           => reg_diag_tx_seq_1GbE_miso,
-  
+
       -- dp_offload_tx
       reg_dp_offload_tx_mosi         => reg_dp_offload_tx_1GbE_mosi,
       reg_dp_offload_tx_miso         => reg_dp_offload_tx_1GbE_miso,
@@ -667,17 +697,17 @@ BEGIN
       reg_dp_offload_tx_hdr_dat_miso => reg_dp_offload_tx_1GbE_hdr_dat_miso,
       dp_offload_tx_src_out_arr      => dp_offload_tx_1GbE_src_out_arr,
       dp_offload_tx_src_in_arr       => dp_offload_tx_1GbE_src_in_arr,
-  
+
       -- dp_offload_rx
       reg_dp_offload_rx_hdr_dat_mosi => reg_dp_offload_rx_1GbE_hdr_dat_mosi,
       reg_dp_offload_rx_hdr_dat_miso => reg_dp_offload_rx_1GbE_hdr_dat_miso,
       dp_offload_rx_snk_in_arr       => dp_offload_rx_1GbE_snk_in_arr,
       dp_offload_rx_snk_out_arr      => dp_offload_rx_1GbE_snk_out_arr,
-  
+
       -- bsn
       reg_bsn_monitor_mosi           => reg_bsn_monitor_1GbE_mosi,
       reg_bsn_monitor_miso           => reg_bsn_monitor_1GbE_miso,
-  
+
       -- databuffer
       reg_diag_data_buf_mosi         => reg_diag_data_buf_1GbE_mosi,
       reg_diag_data_buf_miso         => reg_diag_data_buf_1GbE_miso,
@@ -705,12 +735,12 @@ BEGIN
     PORT MAP (
       mm_rst                         => mm_rst,
       mm_clk                         => mm_clk,
-  
+
       dp_rst                         => dp_rst,
       dp_clk                         => dp_clk,
-  
+
       ID                             => ID,
-  
+
       -- blockgen mm
       reg_diag_bg_mosi               => reg_diag_bg_10GbE_mosi,
       reg_diag_bg_miso               => reg_diag_bg_10GbE_miso,
@@ -718,7 +748,7 @@ BEGIN
       ram_diag_bg_miso               => ram_diag_bg_10GbE_miso,
       reg_diag_tx_seq_mosi           => reg_diag_tx_seq_10GbE_mosi,
       reg_diag_tx_seq_miso           => reg_diag_tx_seq_10GbE_miso,
-  
+
       -- dp_offload_tx
       reg_dp_offload_tx_mosi         => reg_dp_offload_tx_10GbE_mosi,
       reg_dp_offload_tx_miso         => reg_dp_offload_tx_10GbE_miso,
@@ -726,17 +756,17 @@ BEGIN
       reg_dp_offload_tx_hdr_dat_miso => reg_dp_offload_tx_10GbE_hdr_dat_miso,
       dp_offload_tx_src_out_arr      => dp_offload_tx_10GbE_src_out_arr,
       dp_offload_tx_src_in_arr       => dp_offload_tx_10GbE_src_in_arr,
-  
+
       -- dp_offload_rx
       reg_dp_offload_rx_hdr_dat_mosi => reg_dp_offload_rx_10GbE_hdr_dat_mosi,
       reg_dp_offload_rx_hdr_dat_miso => reg_dp_offload_rx_10GbE_hdr_dat_miso,
       dp_offload_rx_snk_in_arr       => dp_offload_rx_10GbE_snk_in_arr,
       dp_offload_rx_snk_out_arr      => dp_offload_rx_10GbE_snk_out_arr,
-  
+
       -- bsn
       reg_bsn_monitor_mosi           => reg_bsn_monitor_10GbE_mosi,
       reg_bsn_monitor_miso           => reg_bsn_monitor_10GbE_miso,
-  
+
       -- databuffer
       reg_diag_data_buf_mosi         => reg_diag_data_buf_10GbE_mosi,
       reg_diag_data_buf_miso         => reg_diag_data_buf_10GbE_miso,
@@ -773,7 +803,7 @@ BEGIN
     clk     => SA_CLK,
     in_rst  => '0',
     out_rst => sa_rst
-  );    
+  );
 
   gen_tr_10GbE : IF c_use_10GbE=TRUE GENERATE
     u_tr_10GbE: ENTITY tr_10GbE_lib.tr_10GbE
@@ -794,7 +824,7 @@ BEGIN
       -- MM interface
       mm_rst              => mm_rst,
       mm_clk              => mm_clk,
-      
+
       reg_mac_mosi        => reg_tr_10GbE_mosi,
       reg_mac_miso        => reg_tr_10GbE_miso,
 
@@ -807,7 +837,7 @@ BEGIN
 
       src_out_arr         => dp_offload_rx_10GbE_snk_in_arr,
       src_in_arr          => dp_offload_rx_10GbE_snk_out_arr,
-  
+
       snk_out_arr         => dp_offload_tx_10GbE_src_in_arr,
       snk_in_arr          => dp_offload_tx_10GbE_src_out_arr,
 
@@ -858,60 +888,202 @@ BEGIN
   END GENERATE;
 
 
-  gen_ddr_stream : IF c_use_ddr = TRUE GENERATE
-    u_ddr_stream : ENTITY work.ddr_stream
+  gen_ddr_stream_MB_I : IF c_use_ddr_MB_I = TRUE  GENERATE
+    u_ddr_stream_MB_I : ENTITY work.ddr_stream
     GENERIC MAP (
       g_sim                       => g_sim,
       g_technology                => g_technology,
-      g_nof_streams               => c_nof_streams_ddr,
-      g_data_w                    => c_data_w_32,
-      --g_bg_block_size             => c_bg_block_size,
-      --g_bg_gapsize                => c_bg_gapsize,
-      g_bg_blocks_per_sync        => c_bg_blocks_per_sync,
       g_tech_ddr                  => c_ddr_master,
-      g_reorder_seq               => c_reorder_seq_same,
-      g_ena_pre_transp            => FALSE
+      g_st_dat_w                  => c_data_w_64
     )
     PORT MAP (
       mm_rst                      => mm_rst,
       mm_clk                      => mm_clk,
-  
+
       dp_rst                      => dp_rst,
       dp_clk                      => dp_clk,
-  
+
+      ddr_ref_clk                 => CLK,
+      ddr_ref_rst                 => ddr_ref_rst,
+
+    -- Clock outputs
+      ddr_out_clk                 => dp_clk,
+      ddr_out_rst                 => dp_rst,
+
       -- blockgen mm
-      reg_diag_bg_mosi            => reg_diag_bg_ddr_mosi,
-      reg_diag_bg_miso            => reg_diag_bg_ddr_miso,
-      ram_diag_bg_mosi            => ram_diag_bg_ddr_mosi,
-      ram_diag_bg_miso            => ram_diag_bg_ddr_miso,
-      reg_diag_tx_seq_mosi        => reg_diag_tx_seq_ddr_mosi,
-      reg_diag_tx_seq_miso        => reg_diag_tx_seq_ddr_miso,
-  
-      -- bsn
-      reg_bsn_monitor_mosi        => reg_bsn_monitor_ddr_mosi,
-      reg_bsn_monitor_miso        => reg_bsn_monitor_ddr_miso,
-  
+      reg_diag_tx_seq_mosi        => reg_diag_tx_seq_ddr_MB_I_mosi,
+      reg_diag_tx_seq_miso        => reg_diag_tx_seq_ddr_MB_I_miso,
+
       -- databuffer
-      reg_diag_data_buf_mosi      => reg_diag_data_buf_ddr_mosi,
-      reg_diag_data_buf_miso      => reg_diag_data_buf_ddr_miso,
-      ram_diag_data_buf_mosi      => ram_diag_data_buf_ddr_mosi,
-      ram_diag_data_buf_miso      => ram_diag_data_buf_ddr_miso,
-      reg_diag_rx_seq_mosi        => reg_diag_rx_seq_ddr_mosi,
-      reg_diag_rx_seq_miso        => reg_diag_rx_seq_ddr_miso,
-  
-      -- IO DDR register map      
-      reg_io_ddr_mosi             => reg_io_ddr_mosi,
-      reg_io_ddr_miso             => reg_io_ddr_miso,
-  
-      -- Reorder transpose        
-      ram_ss_ss_transp_mosi       => ram_ss_ss_transp_mosi,
-      ram_ss_ss_transp_miso       => ram_ss_ss_transp_miso,
-  
-      -- SO-DIMM Memory Bank I
-      MB_I_IN                     => MB_I_IN,
-      MB_I_IO                     => MB_I_IO,
-      MB_I_OU                     => MB_I_OU
+      reg_diag_data_buf_mosi      => reg_diag_data_buf_ddr_MB_I_mosi,
+      reg_diag_data_buf_miso      => reg_diag_data_buf_ddr_MB_I_miso,
+      ram_diag_data_buf_mosi      => ram_diag_data_buf_ddr_MB_I_mosi,
+      ram_diag_data_buf_miso      => ram_diag_data_buf_ddr_MB_I_miso,
+      reg_diag_rx_seq_mosi        => reg_diag_rx_seq_ddr_MB_I_mosi,
+      reg_diag_rx_seq_miso        => reg_diag_rx_seq_ddr_MB_I_miso,
+
+      -- IO DDR register map
+      reg_io_ddr_mosi             => reg_io_ddr_MB_I_mosi,
+      reg_io_ddr_miso             => reg_io_ddr_MB_I_miso,
+
+      -- DDR3 pass on termination control from master to slave controller
+      term_ctrl_out               => OPEN,
+      term_ctrl_in                => OPEN,
+
+      -- SO-DIMM Memory Bank
+      phy_3_in                    => MB_I_IN,
+      phy_3_io                    => MB_I_IO,
+      phy_3_ou                    => MB_I_OU
     );
   END GENERATE;
+
+  gen_ddr_stream_MB_II : IF c_use_ddr_MB_II = TRUE GENERATE
+    u_ddr_stream_MB_II : ENTITY work.ddr_stream
+    GENERIC MAP (
+      g_sim                       => g_sim,
+      g_technology                => g_technology,
+      g_tech_ddr                  => c_ddr_master,
+      g_st_dat_w                  => c_data_w_64
+    )
+    PORT MAP (
+      mm_rst                      => mm_rst,
+      mm_clk                      => mm_clk,
+
+      dp_rst                      => dp_rst,
+      dp_clk                      => dp_clk,
+
+      ddr_ref_clk                 => CLK,
+      ddr_ref_rst                 => ddr_ref_rst,
+
+    -- Clock outputs
+      ddr_out_clk                 => dp_clk,
+      ddr_out_rst                 => dp_rst,
+
+      -- blockgen mm
+      reg_diag_tx_seq_mosi        => reg_diag_tx_seq_ddr_MB_II_mosi,
+      reg_diag_tx_seq_miso        => reg_diag_tx_seq_ddr_MB_II_miso,
+
+      -- databuffer
+      reg_diag_data_buf_mosi      => reg_diag_data_buf_ddr_MB_II_mosi,
+      reg_diag_data_buf_miso      => reg_diag_data_buf_ddr_MB_II_miso,
+      ram_diag_data_buf_mosi      => ram_diag_data_buf_ddr_MB_II_mosi,
+      ram_diag_data_buf_miso      => ram_diag_data_buf_ddr_MB_II_miso,
+      reg_diag_rx_seq_mosi        => reg_diag_rx_seq_ddr_MB_II_mosi,
+      reg_diag_rx_seq_miso        => reg_diag_rx_seq_ddr_MB_II_miso,
+
+      -- IO DDR register map
+      reg_io_ddr_mosi             => reg_io_ddr_MB_II_mosi,
+      reg_io_ddr_miso             => reg_io_ddr_MB_II_miso,
+
+      -- DDR3 pass on termination control from master to slave controller
+      term_ctrl_out               => OPEN,
+      term_ctrl_in                => OPEN,
+
+      -- SO-DIMM Memory Bank
+      phy_3_in                    => MB_II_IN,
+      phy_3_io                    => MB_II_IO,
+      phy_3_ou                    => MB_II_OU
+    );
+  END GENERATE;
+
+  gen_ddr_dual_stream_MB_I : IF c_use_ddr_MB_I_II = TRUE GENERATE
+    u_ddr_stream_MB_I : ENTITY work.ddr_stream
+    GENERIC MAP (
+      g_sim                       => g_sim,
+      g_technology                => g_technology,
+      g_tech_ddr                  => c_ddr_master,
+      g_st_dat_w                  => c_data_w_64
+    )
+    PORT MAP (
+      mm_rst                      => mm_rst,
+      mm_clk                      => mm_clk,
+
+      dp_rst                      => dp_rst,
+      dp_clk                      => dp_clk,
+
+      ddr_ref_clk                 => CLK,
+      ddr_ref_rst                 => ddr_ref_rst,
+
+    -- Clock outputs
+      ddr_out_clk                 => dp_clk,
+      ddr_out_rst                 => dp_rst,
+
+      -- blockgen mm
+      reg_diag_tx_seq_mosi        => reg_diag_tx_seq_ddr_MB_I_mosi,
+      reg_diag_tx_seq_miso        => reg_diag_tx_seq_ddr_MB_I_miso,
+
+      -- databuffer
+      reg_diag_data_buf_mosi      => reg_diag_data_buf_ddr_MB_I_mosi,
+      reg_diag_data_buf_miso      => reg_diag_data_buf_ddr_MB_I_miso,
+      ram_diag_data_buf_mosi      => ram_diag_data_buf_ddr_MB_I_mosi,
+      ram_diag_data_buf_miso      => ram_diag_data_buf_ddr_MB_I_miso,
+      reg_diag_rx_seq_mosi        => reg_diag_rx_seq_ddr_MB_I_mosi,
+      reg_diag_rx_seq_miso        => reg_diag_rx_seq_ddr_MB_I_miso,
+
+      -- IO DDR register map
+      reg_io_ddr_mosi             => reg_io_ddr_MB_I_mosi,
+      reg_io_ddr_miso             => reg_io_ddr_MB_I_miso,
+
+      -- DDR3 pass on termination control from master to slave controller
+      term_ctrl_out               => OPEN,
+      term_ctrl_in                => OPEN,
+
+      -- SO-DIMM Memory Bank
+      phy_3_in                    => MB_I_IN,
+      phy_3_io                    => MB_I_IO,
+      phy_3_ou                    => MB_I_OU
+    );
+  END GENERATE;
+
+  gen_ddr_dual_stream_MB_II : IF c_use_ddr_MB_I_II = TRUE GENERATE
+    u_ddr_stream_MB_II : ENTITY work.ddr_stream
+    GENERIC MAP (
+      g_sim                       => g_sim,
+      g_technology                => g_technology,
+      g_tech_ddr                  => c_ddr_master,
+      g_st_dat_w                  => c_data_w_64
+    )
+    PORT MAP (
+      mm_rst                      => mm_rst,
+      mm_clk                      => mm_clk,
+
+      dp_rst                      => dp_rst,
+      dp_clk                      => dp_clk,
+
+      ddr_ref_clk                 => CLK,
+      ddr_ref_rst                 => ddr_ref_rst,
+
+    -- Clock outputs
+      ddr_out_clk                 => OPEN,
+      ddr_out_rst                 => OPEN,
+
+      -- blockgen mm
+      reg_diag_tx_seq_mosi        => reg_diag_tx_seq_ddr_MB_II_mosi,
+      reg_diag_tx_seq_miso        => reg_diag_tx_seq_ddr_MB_II_miso,
+
+      -- databuffer
+      reg_diag_data_buf_mosi      => reg_diag_data_buf_ddr_MB_II_mosi,
+      reg_diag_data_buf_miso      => reg_diag_data_buf_ddr_MB_II_miso,
+      ram_diag_data_buf_mosi      => ram_diag_data_buf_ddr_MB_II_mosi,
+      ram_diag_data_buf_miso      => ram_diag_data_buf_ddr_MB_II_miso,
+      reg_diag_rx_seq_mosi        => reg_diag_rx_seq_ddr_MB_II_mosi,
+      reg_diag_rx_seq_miso        => reg_diag_rx_seq_ddr_MB_II_miso,
+
+      -- IO DDR register map
+      reg_io_ddr_mosi             => reg_io_ddr_MB_II_mosi,
+      reg_io_ddr_miso             => reg_io_ddr_MB_II_miso,
+
+      -- DDR3 pass on termination control from master to slave controller
+      term_ctrl_out               => OPEN,
+      term_ctrl_in                => OPEN,
+
+      -- SO-DIMM Memory Bank
+      phy_3_in                    => MB_II_IN,
+      phy_3_io                    => MB_II_IO,
+      phy_3_ou                    => MB_II_OU
+    );
+  END GENERATE;
+
+
 END str;
 
-- 
GitLab