From efbab59b60f492bd8e29bd6800dce42cf72f900c Mon Sep 17 00:00:00 2001
From: Pepping <pepping>
Date: Thu, 25 Jun 2015 10:27:52 +0000
Subject: [PATCH] Made exception for frame_size = 1

---
 .../base/reorder/src/vhdl/reorder_row.vhd     | 38 +++++++++++--------
 1 file changed, 22 insertions(+), 16 deletions(-)

diff --git a/libraries/base/reorder/src/vhdl/reorder_row.vhd b/libraries/base/reorder/src/vhdl/reorder_row.vhd
index 3af0609a36..917296eac5 100644
--- a/libraries/base/reorder/src/vhdl/reorder_row.vhd
+++ b/libraries/base/reorder/src/vhdl/reorder_row.vhd
@@ -74,7 +74,7 @@ ARCHITECTURE str OF reorder_row IS
   CONSTANT c_select_w            : NATURAL := ceil_log2(g_nof_inputs);
   CONSTANT c_select_word_w       : NATURAL := c_select_w*g_nof_outputs;
   CONSTANT c_nof_mm_regs_per_sel : NATURAL := ceil_div(c_select_word_w, c_word_w);
-  CONSTANT c_mem_dat_w_mm        : NATURAL := sel_a_b(c_select_word_w <= c_word_w, c_select_word_w, c_word_w);  
+  CONSTANT c_mem_dat_w_mm        : NATURAL := c_word_w; --sel_a_b(c_select_word_w <= c_word_w, c_select_word_w, c_word_w);  
   CONSTANT c_mem_nof_dat_mm      : NATURAL := 2**(true_log2(c_nof_mm_regs_per_sel))*g_frame_size;               
   CONSTANT c_mem_dat_w_dp        : NATURAL := 2**(ceil_log2(c_select_word_w));
 
@@ -180,21 +180,27 @@ BEGIN
   --
   -- Counter that addresses the selection buffer
   ---------------------------------------------------------------
-  u_adr_chn_cnt : ENTITY common_lib.common_counter
-  GENERIC MAP(
-    g_latency   => 1,  
-    g_init      => 0,
-    g_width     => c_select_buf_dp.adr_w,
-    g_max       => g_frame_size
-  )
-  PORT MAP (
-    rst     => dp_rst,
-    clk     => dp_clk,
-    cnt_en  => input_sosi_arr(0).valid,
-    cnt_clr => input_sosi_arr(0).eop,
-    count   => reorder_chan_cnt
-  ); 
-
+  gen_cnt : IF g_frame_size > 1 GENERATE
+    u_adr_chn_cnt : ENTITY common_lib.common_counter
+    GENERIC MAP(
+      g_latency   => 1,  
+      g_init      => 0,
+      g_width     => c_select_buf_dp.adr_w,
+      g_max       => g_frame_size
+    )
+    PORT MAP (
+      rst     => dp_rst,
+      clk     => dp_clk,
+      cnt_en  => input_sosi_arr(0).valid,
+      cnt_clr => input_sosi_arr(0).eop,
+      count   => reorder_chan_cnt
+    ); 
+  END GENERATE;
+  
+  gen_no_cnt : IF g_frame_size = 1 GENERATE
+    reorder_chan_cnt <= (OTHERS => '0');
+  END GENERATE;
+       
   ---------------------------------------------------------------
   -- REGISTERING AND PIPELINING
   --
-- 
GitLab