From a207082efc9357786d9e673743989097a4adee0d Mon Sep 17 00:00:00 2001
From: Zanting <zanting>
Date: Fri, 26 Jun 2015 09:22:09 +0000
Subject: [PATCH] Fixed issue when g_seq_dat_w is bigger than 32 bit.

---
 libraries/base/diag/src/vhdl/mms_diag_rx_seq.vhd | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libraries/base/diag/src/vhdl/mms_diag_rx_seq.vhd b/libraries/base/diag/src/vhdl/mms_diag_rx_seq.vhd
index 0dcf3a6c6e..2c52ecbd94 100644
--- a/libraries/base/diag/src/vhdl/mms_diag_rx_seq.vhd
+++ b/libraries/base/diag/src/vhdl/mms_diag_rx_seq.vhd
@@ -148,6 +148,7 @@ ARCHITECTURE str OF mms_diag_rx_seq IS
                                                                                      ( field_name_pad("control"),   "RW",        2, field_default(0) ));  -- [0] = control[1:0] = diag_sel & diag_en
                                   
   CONSTANT c_reg_slv_w   : NATURAL := c_mm_reg.nof_dat*c_mm_reg.dat_w;
+  CONSTANT c_reg_dat_w   : NATURAL := smallest(c_word_w, g_seq_dat_w);
   
   CONSTANT c_nof_steps_wi     : NATURAL := c_diag_seq_rx_reg_nof_steps_wi;
   
@@ -251,7 +252,7 @@ BEGIN
     diag_sel_arr(I)  <= ctrl_reg_arr(I)(1);  -- address 0, data bit [1]
     
     gen_diag_steps_2arr : FOR J IN 0 TO g_nof_steps-1 GENERATE
-      diag_steps_2arr(I)(J) <= TO_SINT(ctrl_reg_arr(I)(g_seq_dat_w-1 + (c_nof_steps_wi+J)*c_word_w DOWNTO (c_nof_steps_wi+J)*c_word_w));  -- address 4, 5, 6, 7
+      diag_steps_2arr(I)(J) <= TO_SINT(ctrl_reg_arr(I)(c_reg_dat_w-1 + (c_nof_steps_wi+J)*c_word_w DOWNTO (c_nof_steps_wi+J)*c_word_w));  -- address 4, 5, 6, 7
     END GENERATE;
     
     -- . read stat_reg_arr
-- 
GitLab