From bcac19a541b3b1a67a57a4f5e7fcffaccc3ad577 Mon Sep 17 00:00:00 2001
From: Pepping <pepping>
Date: Mon, 9 Mar 2015 13:48:29 +0000
Subject: [PATCH] Added generic for loopback enable -set nof_streams to 1 -
 changed fofo-size definition

---
 .../src/vhdl/compaan_unb1_dp_offload.vhd      | 32 ++++++++++---------
 1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/applications/compaan/designs/compaan_unb1_dp_offload/src/vhdl/compaan_unb1_dp_offload.vhd b/applications/compaan/designs/compaan_unb1_dp_offload/src/vhdl/compaan_unb1_dp_offload.vhd
index 4b3e61dc67..e0f70ec12f 100644
--- a/applications/compaan/designs/compaan_unb1_dp_offload/src/vhdl/compaan_unb1_dp_offload.vhd
+++ b/applications/compaan/designs/compaan_unb1_dp_offload/src/vhdl/compaan_unb1_dp_offload.vhd
@@ -43,12 +43,13 @@ USE common_lib.common_field_pkg.ALL;
 
 ENTITY compaan_unb1_dp_offload IS
   GENERIC (
-    g_sim         : BOOLEAN := FALSE;                 -- set by     ModelSim
-    g_sim_unb_nr  : NATURAL := 0;                     -- set by     ModelSim
-    g_sim_node_nr : NATURAL := 0;                     -- set by     ModelSim
-    g_stamp_date  : NATURAL := 0;  -- Date (YYYYMMDD) -- set by QSF
-    g_stamp_time  : NATURAL := 0;  -- Time (HHMMSS)   -- set by QSF
-    g_stamp_svn   : NATURAL := 0   -- SVN revision    -- set by QSF
+    g_use_loopback : BOOLEAN := TRUE;
+    g_sim          : BOOLEAN := FALSE;                 -- set by     ModelSim
+    g_sim_unb_nr   : NATURAL := 0;                     -- set by     ModelSim
+    g_sim_node_nr  : NATURAL := 0;                     -- set by     ModelSim
+    g_stamp_date   : NATURAL := 0;  -- Date (YYYYMMDD) -- set by QSF
+    g_stamp_time   : NATURAL := 0;  -- Time (HHMMSS)   -- set by QSF
+    g_stamp_svn    : NATURAL := 0   -- SVN revision    -- set by QSF
   );
   PORT (
     -- GENERAL
@@ -57,7 +58,7 @@ ENTITY compaan_unb1_dp_offload IS
     WDI           : OUT   STD_LOGIC; 
     INTA          : INOUT STD_LOGIC; 
     INTB          : INOUT STD_LOGIC; 
-
+                                                                                 
     -- Others
     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);
@@ -83,8 +84,7 @@ ARCHITECTURE str OF compaan_unb1_dp_offload IS
 
   -- Revision controlled constants
   CONSTANT c_use_1GbE                   : BOOLEAN := TRUE;
-  CONSTANT c_dp_loopback                : BOOLEAN := sel_a_b(g_sim_node_nr=0, TRUE, FALSE);
-  CONSTANT c_nof_streams                : NATURAL := 3;
+  CONSTANT c_nof_streams                : NATURAL := 1;
 
   CONSTANT c_data_w                     : NATURAL := c_tech_tse_data_w; 
 
@@ -134,6 +134,8 @@ ARCHITECTURE str OF compaan_unb1_dp_offload IS
                                                                                    ( field_name_pad("usr_hdr_field_6"    ), "  ", 27, field_default(0) ) );
 
   CONSTANT c_hdr_field_ovr_init         : STD_LOGIC_VECTOR(c_nof_hdr_fields-1 DOWNTO 0) := "1001"&"111011111100"&"0001"&"101111111";
+  
+  CONSTANT c_fifo_size                  : NATURAL := 2*c_bg_block_size;
 
   CONSTANT c_use_jumbo_frames           : BOOLEAN := TRUE;
   CONSTANT c_def_1GbE_block_size        : NATURAL := 0;   -- 0 first so we have time to set RX demux reg in dest. node
@@ -339,7 +341,7 @@ BEGIN
   -----------------------------------------------------------------------------
   -- Connect BG and DB to dp_offload
   -----------------------------------------------------------------------------
-  no_loopback : IF c_dp_loopback=FALSE GENERATE
+  no_loopback : IF g_use_loopback=FALSE GENERATE
     -- BG --> Tx
     dp_offload_tx_snk_in_arr <= block_gen_src_out_arr;
     block_gen_src_in_arr     <= dp_offload_tx_snk_out_arr;
@@ -352,7 +354,7 @@ BEGIN
   -----------------------------------------------------------------------------
   -- DP loopback dp_offload_rx to dp_offload_tx
   -----------------------------------------------------------------------------
-  gen_loopback : IF c_dp_loopback=TRUE GENERATE
+  gen_loopback : IF g_use_loopback=TRUE GENERATE
     -- Rx --> Tx
     -- dp_offload_tx_snk_in_arr <= dp_offload_rx_src_out_arr;
     -- dp_offload_rx_src_in_arr <= dp_offload_tx_snk_out_arr;
@@ -380,7 +382,7 @@ BEGIN
 		-- Loop FIFO in              
 	  g_fifo_in : ENTITY dp_lib.dp_fifo_sc
 	  GENERIC MAP (  
-	    g_data_w         => 576, -- Should be 2 times the c_complex_w if g_use_complex = TRUE
+	    g_data_w         => 32, -- Should be 2 times the c_complex_w if g_use_complex = TRUE
 	    g_bsn_w          => 1,
 	    g_empty_w        => 1,
 	    g_channel_w      => 1,
@@ -392,7 +394,7 @@ BEGIN
 	    g_use_sync       => FALSE,
 	    g_use_ctrl       => TRUE,  -- sop & eop
 	    g_use_complex    => FALSE, -- TRUE feeds the concatenated complex fields (im & re) through the FIFO instead of the data field.
-	    g_fifo_size      => c_bg_blocks_per_sync,   -- (16+2) * 512 = 1 M9K, g_data_w+2 for sop and eop
+	    g_fifo_size      => c_fifo_size,   -- (16+2) * 512 = 1 M9K, g_data_w+2 for sop and eop
 	    g_fifo_af_margin => 4,     -- >=4, Nof words below max (full) at which fifo is considered almost full
 	    g_fifo_rl        => 0      
 	  )
@@ -414,7 +416,7 @@ BEGIN
 		-- Loop FIFO out                  
 	  g_fifo_out : ENTITY dp_lib.dp_fifo_sc
 	  GENERIC MAP (  
-	    g_data_w         => 576, -- Should be 2 times the c_complex_w if g_use_complex = TRUE
+	    g_data_w         => 32, -- Should be 2 times the c_complex_w if g_use_complex = TRUE
 	    g_bsn_w          => 1,
 	    g_empty_w        => 1,
 	    g_channel_w      => 1,
@@ -426,7 +428,7 @@ BEGIN
 	    g_use_sync       => FALSE,
 	    g_use_ctrl       => TRUE,  -- sop & eop
 	    g_use_complex    => FALSE, -- TRUE feeds the concatenated complex fields (im & re) through the FIFO instead of the data field.
-	    g_fifo_size      => c_bg_blocks_per_sync,   -- (16+2) * 512 = 1 M9K, g_data_w+2 for sop and eop
+	    g_fifo_size      => c_fifo_size,   -- (16+2) * 512 = 1 M9K, g_data_w+2 for sop and eop
 	    g_fifo_af_margin => 4,     -- >=4, Nof words below max (full) at which fifo is considered almost full
 	    g_fifo_rl        => 0      
 	  )
-- 
GitLab