diff --git a/libraries/dsp/rTwoSDF/src/vhdl/rTwoOrder.vhd b/libraries/dsp/rTwoSDF/src/vhdl/rTwoOrder.vhd index ddb717ffd0116b1541c1397663b88e6bf79c9031..2254f24cc93e6a6aa7a36013716c12015262c506 100644 --- a/libraries/dsp/rTwoSDF/src/vhdl/rTwoOrder.vhd +++ b/libraries/dsp/rTwoSDF/src/vhdl/rTwoOrder.vhd @@ -95,6 +95,8 @@ begin next_page <= '1' when unsigned(adr_tot_cnt) = c_page_size-1 and wr_en='1' else '0'; + adr_tot_cnt <= adr_chan_cnt & adr_points_cnt; + gen_bit_flip : if g_bit_flip=true generate wr_adr <= adr_chan_cnt & flip(adr_points_cnt); -- flip the addresses to perform the reorder end generate; @@ -117,7 +119,13 @@ begin count => adr_points_cnt ); - cnt_ena <= '1' when in_val = '1' and TO_UINT(adr_chan_cnt) = c_nof_channels-1 else '0'; + -- Generate on c_nof_channels to avoid simulation warnings on TO_UINT(adr_chan_cnt) when adr_chan_cnt is a NULL array + one_chan : if c_nof_channels=1 generate + cnt_ena <= '1' when in_val = '1' else '0'; + end generate; + more_chan : if c_nof_channels>1 generate + cnt_ena <= '1' when in_val = '1' and TO_UINT(adr_chan_cnt) = c_nof_channels-1 else '0'; + end generate; u_adr_chan_cnt : entity common_lib.common_counter generic map( @@ -132,8 +140,6 @@ begin count => adr_chan_cnt ); - adr_tot_cnt <= adr_chan_cnt & adr_points_cnt; - u_buff : ENTITY common_lib.common_paged_ram_r_w GENERIC MAP ( g_str => "use_adr",