Line 35... |
Line 35... |
-- the separated data in an interleaved stream: A, B, A, B etc (for both real and imaginary part)
|
-- the separated data in an interleaved stream: A, B, A, B etc (for both real and imaginary part)
|
-- The last stage contains pipeline stages that are required for allignment
|
-- The last stage contains pipeline stages that are required for allignment
|
-- and additional pipeling.
|
-- and additional pipeling.
|
--
|
--
|
|
|
library ieee, common_pkg_lib, common_counter_lib, common_components_lib, common_ram_lib, common_multiplexer_lib;
|
library ieee, common_pkg_lib, astron_counter_lib, common_components_lib, astron_ram_lib, astron_multiplexer_lib;
|
use IEEE.std_logic_1164.all;
|
use IEEE.std_logic_1164.all;
|
use IEEE.numeric_std.all;
|
use IEEE.numeric_std.all;
|
use common_pkg_lib.common_pkg.all;
|
use common_pkg_lib.common_pkg.all;
|
use work.fft_pkg.all;
|
use work.fft_pkg.all;
|
|
|
Line 116... |
Line 116... |
-- Prepare the write control signals for the memories.
|
-- Prepare the write control signals for the memories.
|
wr_en <= in_val;
|
wr_en <= in_val;
|
next_page <= '1' when unsigned(wr_adr) = c_page_size-1 and wr_en='1' else '0';
|
next_page <= '1' when unsigned(wr_adr) = c_page_size-1 and wr_en='1' else '0';
|
|
|
-- Counter will generate the write address
|
-- Counter will generate the write address
|
u_wr_adr_cnt : entity common_counter_lib.common_counter
|
u_wr_adr_cnt : entity astron_counter_lib.common_counter
|
generic map(
|
generic map(
|
g_latency => 1,
|
g_latency => 1,
|
g_init => 0,
|
g_init => 0,
|
g_width => c_adr_w
|
g_width => c_adr_w
|
)
|
)
|
Line 131... |
Line 131... |
count => wr_adr
|
count => wr_adr
|
);
|
);
|
|
|
-- Instantiation of the rams.
|
-- Instantiation of the rams.
|
gen_dual_paged_rams : for I in g_fft.wb_factor - 1 downto 0 generate
|
gen_dual_paged_rams : for I in g_fft.wb_factor - 1 downto 0 generate
|
u_buff : entity common_ram_lib.common_paged_ram_r_w
|
u_buff : entity astron_ram_lib.common_paged_ram_r_w
|
generic map (
|
generic map (
|
g_str => "use_adr",
|
g_str => "use_adr",
|
g_data_w => c_dat_w,
|
g_data_w => c_dat_w,
|
g_nof_pages => c_nof_pages,
|
g_nof_pages => c_nof_pages,
|
g_page_sz => c_page_size,
|
g_page_sz => c_page_size,
|
Line 183... |
Line 183... |
|
|
-- The instantiation of the zip units and the separation units.
|
-- The instantiation of the zip units and the separation units.
|
-- The output of the zip units is connected to the input of the
|
-- The output of the zip units is connected to the input of the
|
-- adjacent separate unit.
|
-- adjacent separate unit.
|
gen_separators : for I in g_fft.wb_factor - 1 downto 0 generate
|
gen_separators : for I in g_fft.wb_factor - 1 downto 0 generate
|
u_zipper : entity common_multiplexer_lib.common_zip
|
u_zipper : entity astron_multiplexer_lib.common_zip
|
generic map (
|
generic map (
|
g_nof_streams => c_nof_streams,
|
g_nof_streams => c_nof_streams,
|
g_dat_w => c_dat_w
|
g_dat_w => c_dat_w
|
)
|
)
|
port map (
|
port map (
|