From 38b0a3d5b08bd6ca41b73a6efb79d54c423634cb Mon Sep 17 00:00:00 2001
From: Daniel van der Schuur <schuur@astron.nl>
Date: Fri, 29 May 2015 12:25:27 +0000
Subject: [PATCH] -Added block generators.

---
 .../src/vhdl/apertif_unb1_fn_bf_emu.vhd       | 39 ++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)

diff --git a/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/vhdl/apertif_unb1_fn_bf_emu.vhd b/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/vhdl/apertif_unb1_fn_bf_emu.vhd
index 168edf1c17..dcde96cc62 100644
--- a/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/vhdl/apertif_unb1_fn_bf_emu.vhd
+++ b/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/vhdl/apertif_unb1_fn_bf_emu.vhd
@@ -18,7 +18,7 @@
 -- along with this program.  If not, see <http://www.gnu.org/licenses/>.
 --
 -------------------------------------------------------------------------------
-LIBRARY IEEE, common_lib, unb1_board_lib, dp_lib, technology_lib, io_ddr_lib, eth_lib, tech_tse_lib, bf_lib, tech_ddr_lib, tr_10GbE_lib, reorder_lib;
+LIBRARY IEEE, common_lib, unb1_board_lib, dp_lib, technology_lib, io_ddr_lib, eth_lib, tech_tse_lib, bf_lib, tech_ddr_lib, tr_10GbE_lib, reorder_lib, diag_lib;
 USE IEEE.STD_LOGIC_1164.ALL;
 USE IEEE.NUMERIC_STD.ALL;
 USE common_lib.common_pkg.ALL;
@@ -37,6 +37,7 @@ USE tech_tse_lib.tech_tse_pkg.ALL;
 USE tech_tse_lib.tb_tech_tse_pkg.ALL;  
 USE reorder_lib.reorder_pkg.ALL;
 USE bf_lib.bf_pkg.ALL;
+USE diag_lib.diag_pkg.ALL;
 
 ENTITY apertif_unb1_fn_bf_emu IS
   GENERIC (
@@ -126,6 +127,18 @@ ARCHITECTURE str OF apertif_unb1_fn_bf_emu IS
   SIGNAL pout_debug_wave            : STD_LOGIC_VECTOR(c_word_w-1 DOWNTO 0);
   SIGNAL pout_wdi                   : STD_LOGIC;
 
+  -- Block generator
+  CONSTANT c_bg_block_size          : NATURAL := 256;
+  CONSTANT c_bg_gapsize             : NATURAL := 0;
+  CONSTANT c_bg_blocks_per_sync     : NATURAL := 781250;
+  CONSTANT c_bg_ctrl                : t_diag_block_gen := (sel_a_b(g_sim, '1', '0'), -- enable: On by default in simulation; MM enable required on hardware.
+                                                           '0',                      -- enable_sync        
+                                                          TO_UVEC(     c_bg_block_size, c_diag_bg_samples_per_packet_w),
+                                                          TO_UVEC(c_bg_blocks_per_sync, c_diag_bg_blocks_per_sync_w),
+                                                          TO_UVEC(        c_bg_gapsize, c_diag_bg_gapsize_w),
+                                                          TO_UVEC(                   0, c_diag_bg_mem_low_adrs_w),
+                                                          TO_UVEC(   c_bg_block_size-1, c_diag_bg_mem_high_adrs_w),
+                                                          TO_UVEC(                   0, c_diag_bg_bsn_init_w));
   -- Interface: 10GbE
   CONSTANT c_nof_10GbE_offload_streams : NATURAL := 1;
   CONSTANT c_pkt_len                   : NATURAL := 176; -- Let tr_10GbE FIFO buffer one full packet before releasing it
@@ -374,6 +387,30 @@ BEGIN
     SI_FN_2_CNTRL     => SI_FN_2_CNTRL,
     SI_FN_3_CNTRL     => SI_FN_3_CNTRL
   );
+
+  -----------------------------------------------------------------------------
+  -- Block generators: one for every BF unit (4)
+  -----------------------------------------------------------------------------
+  u_mms_diag_block_gen : ENTITY diag_lib.mms_diag_block_gen
+  GENERIC MAP (
+    g_nof_streams        => 4,
+    g_buf_dat_w          => 16,
+    g_buf_addr_w         => 256,
+    g_file_name_prefix   => "hex/bg_data",
+    g_diag_block_gen_rst => c_bg_ctrl
+  )
+  PORT MAP (
+    mm_rst           => mm_rst,
+    mm_clk           => mm_clk,
+  
+    dp_rst           => dp_rst,
+    dp_clk           => dp_clk,
+
+    reg_bg_ctrl_mosi => reg_diag_bg_mosi,
+    reg_bg_ctrl_miso => reg_diag_bg_miso,
+  
+    out_sosi_arr     => dp_offload_tx_snk_in_arr
+  );
     
   -----------------------------------------------------------------------------
   -- DP offload TX : BF out -> 10GbE
-- 
GitLab