Skip to content
Snippets Groups Projects
Commit 195f6b43 authored by Eric Kooistra's avatar Eric Kooistra
Browse files

Updated fft_r2_parameter_asserts() because use_fft_shift is now part of t_fft record.

parent 3992f805
Branches
No related tags found
No related merge requests found
...@@ -47,7 +47,7 @@ package fft_pkg is ...@@ -47,7 +47,7 @@ package fft_pkg is
constant c_fft : t_fft := (true, false, true, 0, 4, 0, 1024, 8, 14, 0, c_dsp_mult_w, 2, true, 56, 2); constant c_fft : t_fft := (true, false, true, 0, 4, 0, 1024, 8, 14, 0, c_dsp_mult_w, 2, true, 56, 2);
-- Check consistancy of the FFT parameters -- Check consistancy of the FFT parameters
function fft_r2_parameter_asserts(g_fft : t_fft; use_fft_shift : boolean) return boolean; -- the return value is void function fft_r2_parameter_asserts(g_fft : t_fft) return boolean; -- the return value is void
-- Definitions for fft slv array (an array can not have unconstraint elements, so choose sufficiently wide 32 bit slv elements) -- Definitions for fft slv array (an array can not have unconstraint elements, so choose sufficiently wide 32 bit slv elements)
subtype t_fft_slv_arr is t_slv_32_arr; -- use subtype to ease interfacing to existing types and to have central definition for rtwo components subtype t_fft_slv_arr is t_slv_32_arr; -- use subtype to ease interfacing to existing types and to have central definition for rtwo components
...@@ -64,17 +64,18 @@ end package fft_pkg; ...@@ -64,17 +64,18 @@ end package fft_pkg;
package body fft_pkg is package body fft_pkg is
function fft_r2_parameter_asserts(g_fft : t_fft; use_fft_shift : boolean) return boolean is function fft_r2_parameter_asserts(g_fft : t_fft) return boolean is
begin begin
-- nof_points -- nof_points
assert g_fft.nof_points=2**ceil_log2(g_fft.nof_points) report "fft_r2: nof_points must be a power of 2" severity failure; assert g_fft.nof_points=2**ceil_log2(g_fft.nof_points) report "fft_r2: nof_points must be a power of 2" severity failure;
-- use_reorder -- use_reorder
if g_fft.use_reorder=false then if g_fft.use_reorder=false then
assert g_fft.use_separate=false report "fft_r2 : without use_reorder there cannot be use_separate for two real inputs" severity failure; assert g_fft.use_separate=false report "fft_r2 : without use_reorder there cannot be use_separate for two real inputs" severity failure;
assert use_fft_shift=false report "fft_r2 : without use_reorder there cannot be use_fft_shift for complex input" severity failure; assert g_fft.use_fft_shift=false report "fft_r2 : without use_reorder there cannot be use_fft_shift for complex input" severity failure;
end if; end if;
-- use_separate
if g_fft.use_separate=true then if g_fft.use_separate=true then
assert use_fft_shift=false report "fft_r2 : with use_separate there cannot be use_fft_shift for real input" severity failure; assert g_fft.use_fft_shift=false report "fft_r2 : with use_separate there cannot be use_fft_shift for real input" severity failure;
end if; end if;
return true; return true;
end; end;
......
...@@ -139,7 +139,7 @@ architecture tb of tb_fft_r2_par is ...@@ -139,7 +139,7 @@ architecture tb of tb_fft_r2_par is
constant c_in_complex : boolean := not g_fft.use_separate; constant c_in_complex : boolean := not g_fft.use_separate;
constant c_use_fft_shift : boolean := false; constant c_use_fft_shift : boolean := false;
constant c_fft_r2_check : boolean := fft_r2_parameter_asserts(g_fft, c_use_fft_shift); constant c_fft_r2_check : boolean := fft_r2_parameter_asserts(g_fft);
constant c_nof_channels : natural := 1; -- fixed g_fft.nof_chan=0, because the concept of channels is void for the parallel FFT constant c_nof_channels : natural := 1; -- fixed g_fft.nof_chan=0, because the concept of channels is void for the parallel FFT
......
...@@ -173,7 +173,7 @@ architecture tb of tb_fft_r2_pipe is ...@@ -173,7 +173,7 @@ architecture tb of tb_fft_r2_pipe is
constant c_in_complex : boolean := not g_fft.use_separate; constant c_in_complex : boolean := not g_fft.use_separate;
constant c_use_fft_shift : boolean := false; constant c_use_fft_shift : boolean := false;
constant c_fft_r2_check : boolean := fft_r2_parameter_asserts(g_fft, c_use_fft_shift); constant c_fft_r2_check : boolean := fft_r2_parameter_asserts(g_fft);
constant c_nof_channels : natural := 2**g_fft.nof_chan; constant c_nof_channels : natural := 2**g_fft.nof_chan;
constant c_nof_data_per_block : natural := g_fft.nof_points * c_nof_channels; constant c_nof_data_per_block : natural := g_fft.nof_points * c_nof_channels;
......
...@@ -145,7 +145,7 @@ architecture tb of tb_fft_r2_wide is ...@@ -145,7 +145,7 @@ architecture tb of tb_fft_r2_wide is
constant c_in_complex : boolean := not g_fft.use_separate; constant c_in_complex : boolean := not g_fft.use_separate;
constant c_use_fft_shift : boolean := false; constant c_use_fft_shift : boolean := false;
constant c_fft_r2_check : boolean := fft_r2_parameter_asserts(g_fft, c_use_fft_shift); constant c_fft_r2_check : boolean := fft_r2_parameter_asserts(g_fft);
constant c_nof_channels : natural := 1; -- fixed g_fft.nof_chan=0, because the concept of channels is void when wb_factor > 1 constant c_nof_channels : natural := 1; -- fixed g_fft.nof_chan=0, because the concept of channels is void when wb_factor > 1
constant c_nof_data_per_block : natural := g_fft.nof_points * c_nof_channels; constant c_nof_data_per_block : natural := g_fft.nof_points * c_nof_channels;
......
...@@ -174,7 +174,7 @@ architecture tb of tb_wpfb_unit_wide is ...@@ -174,7 +174,7 @@ architecture tb of tb_wpfb_unit_wide is
g_wpfb.stat_data_w, g_wpfb.stat_data_w,
g_wpfb.stat_data_sz); g_wpfb.stat_data_sz);
constant c_use_fft_shift : boolean := false; constant c_use_fft_shift : boolean := false;
constant c_fft_r2_check : boolean := fft_r2_parameter_asserts(c_wfft, c_use_fft_shift); constant c_fft_r2_check : boolean := fft_r2_parameter_asserts(c_wfft);
constant c_nof_channels : natural := 1; constant c_nof_channels : natural := 1;
constant c_nof_coefs : natural := g_wpfb.nof_taps * g_wpfb.nof_points; -- nof PFIR coef constant c_nof_coefs : natural := g_wpfb.nof_taps * g_wpfb.nof_points; -- nof PFIR coef
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment