Line 62... |
Line 62... |
-- fft_sepa_wide instance.
|
-- fft_sepa_wide instance.
|
-- . The reorder memory in the pipeline FFT, parallel FFT and in the
|
-- . The reorder memory in the pipeline FFT, parallel FFT and in the
|
-- fft_sepa_wide could make reuse of a reorder component from the reorder
|
-- fft_sepa_wide could make reuse of a reorder component from the reorder
|
-- library instead of using a dedicated local solution.
|
-- library instead of using a dedicated local solution.
|
|
|
library ieee, common_pkg_lib, common_components_lib, common_requantize_lib, rTwoSDF_lib;
|
library ieee, common_pkg_lib, common_components_lib, astron_requantize_lib, astron_r2sdf_fft_lib;
|
use IEEE.std_logic_1164.all;
|
use IEEE.std_logic_1164.all;
|
use common_pkg_lib.common_pkg.all;
|
use common_pkg_lib.common_pkg.all;
|
use rTwoSDF_lib.rTwoSDFPkg.all;
|
use astron_r2sdf_fft_lib.rTwoSDFPkg.all;
|
use work.fft_pkg.all;
|
use work.fft_pkg.all;
|
|
|
entity fft_r2_wide is
|
entity fft_r2_wide is
|
generic (
|
generic (
|
g_fft : t_fft := c_fft; -- generics for the FFT
|
g_fft : t_fft := c_fft; -- generics for the FFT
|
g_pft_pipeline : t_fft_pipeline := c_fft_pipeline; -- For the pipelined part, from rTwoSDF_lib.rTwoSDFPkg
|
g_pft_pipeline : t_fft_pipeline := c_fft_pipeline; -- For the pipelined part, from astron_r2sdf_fft_lib.rTwoSDFPkg
|
g_fft_pipeline : t_fft_pipeline := c_fft_pipeline -- For the parallel part, from rTwoSDF_lib.rTwoSDFPkg
|
g_fft_pipeline : t_fft_pipeline := c_fft_pipeline -- For the parallel part, from astron_r2sdf_fft_lib.rTwoSDFPkg
|
);
|
);
|
port (
|
port (
|
clk : in std_logic;
|
clk : in std_logic;
|
rst : in std_logic := '0';
|
rst : in std_logic := '0';
|
in_re_arr : in t_fft_slv_arr(g_fft.wb_factor-1 downto 0); -- = time samples t3, t2, t1, t0
|
in_re_arr : in t_fft_slv_arr(g_fft.wb_factor-1 downto 0); -- = time samples t3, t2, t1, t0
|
Line 309... |
Line 309... |
|
|
---------------------------------------------------------------
|
---------------------------------------------------------------
|
-- OUTPUT QUANTIZER
|
-- OUTPUT QUANTIZER
|
---------------------------------------------------------------
|
---------------------------------------------------------------
|
gen_output_requantizers : for I in g_fft.wb_factor-1 downto 0 generate
|
gen_output_requantizers : for I in g_fft.wb_factor-1 downto 0 generate
|
u_requantize_output_re : entity common_requantize_lib.common_requantize
|
u_requantize_output_re : entity astron_requantize_lib.common_requantize
|
generic map (
|
generic map (
|
g_representation => "SIGNED",
|
g_representation => "SIGNED",
|
g_lsb_w => c_out_scale_w,
|
g_lsb_w => c_out_scale_w,
|
g_lsb_round => TRUE,
|
g_lsb_round => TRUE,
|
g_lsb_round_clip => FALSE,
|
g_lsb_round_clip => FALSE,
|
Line 329... |
Line 329... |
in_dat => sep_out_re_arr(I),
|
in_dat => sep_out_re_arr(I),
|
out_dat => out_re_arr(I),
|
out_dat => out_re_arr(I),
|
out_ovr => open
|
out_ovr => open
|
);
|
);
|
|
|
u_requantize_output_im : entity common_requantize_lib.common_requantize
|
u_requantize_output_im : entity astron_requantize_lib.common_requantize
|
generic map (
|
generic map (
|
g_representation => "SIGNED",
|
g_representation => "SIGNED",
|
g_lsb_w => c_out_scale_w,
|
g_lsb_w => c_out_scale_w,
|
g_lsb_round => TRUE,
|
g_lsb_round => TRUE,
|
g_lsb_round_clip => FALSE,
|
g_lsb_round_clip => FALSE,
|