diff --git a/libraries/io/ddr/tb/vhdl/tb_io_ddr.vhd b/libraries/io/ddr/tb/vhdl/tb_io_ddr.vhd
index 6b1bec8ba6a243392899fb1f3c7515676f3f4c09..a807bd6fbd49a7b339d764f3f348be3621e90591 100644
--- a/libraries/io/ddr/tb/vhdl/tb_io_ddr.vhd
+++ b/libraries/io/ddr/tb/vhdl/tb_io_ddr.vhd
@@ -71,12 +71,12 @@ ARCHITECTURE str of tb_io_ddr IS
   CONSTANT c_sim_ddr                  : t_c_tech_ddr := func_tech_sel_ddr(g_technology, c_tech_ddr3_sim_16k, c_tech_ddr4_sim_16k);
   CONSTANT c_tech_ddr                 : t_c_tech_ddr := func_tech_sel_ddr(g_sim_model, c_sim_ddr, c_mem_ddr);
   
-  CONSTANT c_ctlr_ref_clk_period      : TIME := sel_a_b(c_tech_ddr.name="DDR3", 5 ns, 40 ns);   -- 200 MHz for DDR3 on UniBoard and 25 MHz for DDR4 on UniBoard2
+  CONSTANT c_dp_clk_period            : TIME := 5 ns;   -- 200 MHz
+  CONSTANT c_mm_clk_period            : TIME := 8 ns;   -- 125 MHz
+  CONSTANT c_ctlr_ref_clk_period      : TIME := sel_a_b(g_sim_model, c_dp_clk_period, sel_a_b(c_tech_ddr.name="DDR3", 5 ns, 40 ns));   -- 200 MHz for DDR3 on UniBoard and 25 MHz for DDR4 on UniBoard2, use dp clock for sim_model
   CONSTANT c_ctlr_clk_freq            : NATURAL := c_tech_ddr.mts/c_tech_ddr.rsl;    -- 200 MHz
   CONSTANT c_ctlr_clk_period          : TIME := (1000000 / c_ctlr_clk_freq) * 1 ps;  -- 5000 ps
   CONSTANT c_cross_domain_dvr_ctlr    : BOOLEAN := g_cross_domain_dvr_ctlr OR g_dvr_clk_period/=c_ctlr_clk_period;
-  CONSTANT c_dp_clk_period            : TIME := 5 ns;   -- 200 MHz
-  CONSTANT c_mm_clk_period            : TIME := 8 ns;   -- 125 MHz
 
   CONSTANT c_ctlr_address_w           : NATURAL := func_tech_ddr_ctlr_address_w(c_tech_ddr);
   CONSTANT c_ctlr_data_w              : NATURAL := func_tech_ddr_ctlr_data_w(c_tech_ddr);
diff --git a/libraries/io/ddr/tb/vhdl/tb_tb_io_ddr.vhd b/libraries/io/ddr/tb/vhdl/tb_tb_io_ddr.vhd
index 3126457be980a5d76ad0887c5c0be18b1f6f6827..cf5de76ced2b7badb4743db1796cba5784797ca9 100644
--- a/libraries/io/ddr/tb/vhdl/tb_tb_io_ddr.vhd
+++ b/libraries/io/ddr/tb/vhdl/tb_tb_io_ddr.vhd
@@ -65,12 +65,9 @@ BEGIN
   -- g_nof_repeat            : NATURAL := 1;      -- number of stimuli repeats with write flush after each repeat
   -- g_wr_flush_mode         : STRING := "SYN"    -- "VAL", "SOP", "SYN"
 
- -- FIXME: Sim model does not work for UNB2B, it causes the testbench to timeout. Temporarly placed under gen_ddr3.
- -- u_sim_model : ENTITY work.tb_io_ddr GENERIC MAP ( TRUE, c_technology, c_tech_ddr3, c_tech_ddr4, FALSE, FALSE,  5 ns,  4,  2500, 2, 1, 1,   1, "VAL") PORT MAP (tb_end_vec(0));
+  u_sim_model : ENTITY work.tb_io_ddr GENERIC MAP ( TRUE, c_technology, c_tech_ddr3, c_tech_ddr4, FALSE, FALSE,  5 ns,  4,  2500, 2, 1, 1,   1, "VAL") PORT MAP (tb_end_vec(0));
   
   gen_ddr3 : IF c_tech_ddr.name="DDR3" GENERATE
-    u_sim_model : ENTITY work.tb_io_ddr GENERIC MAP ( TRUE, c_technology, c_tech_ddr3, c_tech_ddr4, FALSE, FALSE,  5 ns,  4,  2500, 2, 1, 1,   1, "VAL") PORT MAP (tb_end_vec(0));
-    
     u_default                   : ENTITY work.tb_io_ddr GENERIC MAP (FALSE, c_technology, c_tech_ddr3, c_tech_ddr4, FALSE, FALSE,  5 ns,  4,  2500, 2, 1, 1,   1, "VAL") PORT MAP (tb_end_vec(1));
                                                                                                                                         
     u_fill_wrfifo_on_next_valid : ENTITY work.tb_io_ddr GENERIC MAP (FALSE, c_technology, c_tech_ddr3, c_tech_ddr4, FALSE, FALSE,  5 ns,  1,  1000, 2, 1, 4,   2, "VAL") PORT MAP (tb_end_vec(2));