diff --git a/libraries/dsp/fft/tb/vhdl/tb_fft_pkg.vhd b/libraries/dsp/fft/tb/vhdl/tb_fft_pkg.vhd index 1b26c17686738fa84a2da8ed165f432e8ee3c9e2..0921436678fbde876794236a6f2c6b74edada853 100644 --- a/libraries/dsp/fft/tb/vhdl/tb_fft_pkg.vhd +++ b/libraries/dsp/fft/tb/vhdl/tb_fft_pkg.vhd @@ -427,10 +427,11 @@ PACKAGE BODY tb_fft_pkg IS end if; else -- Complex input data - v_blk_index := out_val_cnt / nof_points / nof_channels; -- each block has nof_channels*nof_points - out_channel <= out_val_cnt mod nof_channels; -- the nof_channels are interleaved per sample + v_blk_index := out_val_cnt / nof_points / nof_channels; -- each block has nof_channels*nof_points + out_channel <= (out_val_cnt / wb_factor) mod nof_channels; -- the nof_channels are interleaved per wb_factor number of samples - v_index := (out_val_cnt / nof_channels) mod nof_points; -- index within a block independent of nof_channels + v_index := ((out_val_cnt / wb_factor / nof_channels) * wb_factor + + (out_val_cnt MOD wb_factor)) mod nof_points; -- index within a block independent of nof_channels v_bin := fft_index_to_bin_frequency(wb_factor, nof_points, v_index, use_reorder, use_fft_shift, use_separate);