From a21894838d71ced4fef24ee6a49c54f4f7f26bdb Mon Sep 17 00:00:00 2001
From: Erik Kooistra <kooistra@astron.nl>
Date: Fri, 26 Jun 2015 09:29:18 +0000
Subject: [PATCH] Default set bg_src_out_arr and mux_src_out_arr to
 c_dp_sosi_rst when they are not used, to avoid X in out_sosi_arr.

---
 .../base/diag/src/vhdl/mms_diag_block_gen.vhd | 31 +++++++++----------
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd b/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd
index 63c6a9ad92..2ad38181d7 100644
--- a/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd
+++ b/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd
@@ -194,6 +194,8 @@ BEGIN
   no_bg : IF g_use_bg=FALSE GENERATE
     reg_bg_ctrl_miso <= c_mem_miso_rst;
     ram_bg_data_miso <= c_mem_miso_rst;
+    
+    bg_src_out_arr <= (OTHERS=>c_dp_sosi_rst);
   END GENERATE;
   
   gen_bg : IF g_use_bg=TRUE GENERATE
@@ -287,28 +289,25 @@ BEGIN
   END GENERATE;
           
   
-  no_dp_mux : IF c_use_mux=FALSE GENERATE
-    ---------------------------------------------------------------------------
-    -- User input only
-    ---------------------------------------------------------------------------
-    gen_usr_input : IF g_use_usr_input=TRUE GENERATE
-      usr_siso_arr    <= mux_src_in_arr;
-      mux_src_out_arr <= usr_sosi_arr;
-    END GENERATE;
-    ---------------------------------------------------------------------------
-    -- BG only
-    ---------------------------------------------------------------------------
-    gen_bg : IF g_use_bg=TRUE GENERATE
-      bg_src_in_arr   <= mux_src_in_arr;
-      mux_src_out_arr <= bg_src_out_arr;
-    END GENERATE;
+  ---------------------------------------------------------------------------
+  -- No multiplexer, so only one input or no input at all
+  ---------------------------------------------------------------------------
+  no_dp_mux : IF c_use_mux=FALSE GENERATE  -- so g_use_usr_input and g_use_bg are not both TRUE
+    -- default pass on flow control
+    usr_siso_arr  <= mux_src_in_arr;
+    bg_src_in_arr <= mux_src_in_arr;
+    
+    -- User input only, BG only or no input
+    mux_src_out_arr <= usr_sosi_arr             WHEN g_use_usr_input=TRUE ELSE
+                       bg_src_out_arr           WHEN g_use_bg=TRUE        ELSE
+                      (OTHERS=>c_dp_sosi_rst);
   END GENERATE;
   
   
   -----------------------------------------------------------------------------
   -- Multiplex user input and BG
   -----------------------------------------------------------------------------
-  gen_dp_mux : IF c_use_mux=TRUE GENERATE
+  gen_dp_mux : IF c_use_mux=TRUE GENERATE  -- so g_use_usr_input and g_use_bg are both TRUE
     gen_streams : FOR I IN 0 TO g_nof_streams-1 GENERATE
       -- Add user xon flow control if the user input does not already support it
       u_dp_xonoff : ENTITY dp_lib.dp_xonoff
-- 
GitLab