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