Line 41... |
Line 41... |
-- > Run python script in separate terminal: "python tc_mmf_fft_r2.py --unb 0 --bn 0 --sim"
|
-- > Run python script in separate terminal: "python tc_mmf_fft_r2.py --unb 0 --bn 0 --sim"
|
-- > Check the results of the python script.
|
-- > Check the results of the python script.
|
-- > Stop the simulation manually in Modelsim by pressing the stop-button.
|
-- > Stop the simulation manually in Modelsim by pressing the stop-button.
|
|
|
|
|
LIBRARY IEEE, common_pkg_lib, mm_lib, diag_lib, dp_pkg_lib, rTwoSDF_lib, common_ram_lib, mm_lib, other_lib;
|
LIBRARY IEEE, common_pkg_lib, astron_mm_lib, astron_diagnostics_lib, dp_pkg_lib, astron_r2sdf_fft_lib, astron_ram_lib, astron_mm_lib, astron_sim_tools_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 common_ram_lib.common_ram_pkg.ALL;
|
USE astron_ram_lib.common_ram_pkg.ALL;
|
USE common_pkg_lib.common_str_pkg.ALL;
|
USE common_pkg_lib.common_str_pkg.ALL;
|
USE common_pkg_lib.tb_common_pkg.ALL;
|
USE common_pkg_lib.tb_common_pkg.ALL;
|
USE mm_lib.tb_common_mem_pkg.ALL;
|
USE astron_mm_lib.tb_common_mem_pkg.ALL;
|
USE mm_lib.mm_file_unb_pkg.ALL;
|
USE astron_mm_lib.mm_file_unb_pkg.ALL;
|
USE mm_lib.mm_file_pkg.ALL;
|
USE astron_mm_lib.mm_file_pkg.ALL;
|
USE dp_pkg_lib.dp_stream_pkg.ALL;
|
USE dp_pkg_lib.dp_stream_pkg.ALL;
|
USE diag_lib.diag_pkg.ALL;
|
USE astron_diagnostics_lib.diag_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 tb_mmf_fft_r2 IS
|
ENTITY tb_mmf_fft_r2 IS
|
GENERIC(
|
GENERIC(
|
g_fft_type : string := "wide"; -- = default "wide", 3 fft types possible: pipe, wide or par
|
g_fft_type : string := "wide"; -- = default "wide", 3 fft types possible: pipe, wide or par
|
Line 203... |
Line 203... |
PORT MAP(mm_rst, mm_clk, reg_diag_data_buf_im_mosi, reg_diag_data_buf_im_miso);
|
PORT MAP(mm_rst, mm_clk, reg_diag_data_buf_im_mosi, reg_diag_data_buf_im_miso);
|
|
|
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
-- Source: block generator
|
-- Source: block generator
|
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
u_bg : ENTITY diag_lib.mms_diag_block_gen
|
u_bg : ENTITY astron_diagnostics_lib.mms_diag_block_gen
|
GENERIC MAP(
|
GENERIC MAP(
|
g_nof_streams => c_nof_streams,
|
g_nof_streams => c_nof_streams,
|
g_buf_dat_w => c_nof_complex*c_fft.in_dat_w,
|
g_buf_dat_w => c_nof_complex*c_fft.in_dat_w,
|
g_buf_addr_w => c_bg_buf_adr_w, -- Waveform buffer size 2**g_buf_addr_w nof samples
|
g_buf_addr_w => c_bg_buf_adr_w, -- Waveform buffer size 2**g_buf_addr_w nof samples
|
g_file_index_arr => c_bg_data_file_index_arr,
|
g_file_index_arr => c_bg_data_file_index_arr,
|
Line 228... |
Line 228... |
-- ST interface
|
-- ST interface
|
out_siso_arr => bg_siso_arr,
|
out_siso_arr => bg_siso_arr,
|
out_sosi_arr => bg_sosi_arr
|
out_sosi_arr => bg_sosi_arr
|
);
|
);
|
|
|
u_in_scope : ENTITY other_lib.dp_wideband_wb_arr_scope
|
u_in_scope : ENTITY astron_sim_tools_lib.dp_wideband_wb_arr_scope
|
GENERIC MAP (
|
GENERIC MAP (
|
g_sim => TRUE,
|
g_sim => TRUE,
|
g_wideband_factor => c_fft.wb_factor,
|
g_wideband_factor => c_fft.wb_factor,
|
g_wideband_big_endian => FALSE,
|
g_wideband_big_endian => FALSE,
|
g_dat_w => c_fft.in_dat_w
|
g_dat_w => c_fft.in_dat_w
|
Line 308... |
Line 308... |
out_sosi_arr(I).re <= RESIZE_DP_DSP_DATA(out_re_arr(I));
|
out_sosi_arr(I).re <= RESIZE_DP_DSP_DATA(out_re_arr(I));
|
out_sosi_arr(I).im <= RESIZE_DP_DSP_DATA(out_im_arr(I));
|
out_sosi_arr(I).im <= RESIZE_DP_DSP_DATA(out_im_arr(I));
|
out_sosi_arr(I).valid <= out_val;
|
out_sosi_arr(I).valid <= out_val;
|
END GENERATE;
|
END GENERATE;
|
|
|
u_out_scope : ENTITY other_lib.dp_wideband_wb_arr_scope
|
u_out_scope : ENTITY astron_sim_tools_lib.dp_wideband_wb_arr_scope
|
GENERIC MAP (
|
GENERIC MAP (
|
g_sim => TRUE,
|
g_sim => TRUE,
|
g_wideband_factor => c_fft.wb_factor,
|
g_wideband_factor => c_fft.wb_factor,
|
g_wideband_big_endian => FALSE,
|
g_wideband_big_endian => FALSE,
|
g_dat_w => c_fft.out_dat_w
|
g_dat_w => c_fft.out_dat_w
|
Line 324... |
Line 324... |
);
|
);
|
|
|
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
-- Sink: data buffer real
|
-- Sink: data buffer real
|
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
u_data_buf_re : ENTITY diag_lib.mms_diag_data_buffer
|
u_data_buf_re : ENTITY astron_diagnostics_lib.mms_diag_data_buffer
|
GENERIC MAP (
|
GENERIC MAP (
|
g_nof_streams => c_nof_streams,
|
g_nof_streams => c_nof_streams,
|
g_data_type => e_real,
|
g_data_type => e_real,
|
g_data_w => c_fft.out_dat_w,
|
g_data_w => c_fft.out_dat_w,
|
g_buf_nof_data => c_bg_block_len,
|
g_buf_nof_data => c_bg_block_len,
|
Line 354... |
Line 354... |
);
|
);
|
|
|
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
-- Sink: data buffer imag
|
-- Sink: data buffer imag
|
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
u_data_buf_im : ENTITY diag_lib.mms_diag_data_buffer
|
u_data_buf_im : ENTITY astron_diagnostics_lib.mms_diag_data_buffer
|
GENERIC MAP (
|
GENERIC MAP (
|
g_nof_streams => c_nof_streams,
|
g_nof_streams => c_nof_streams,
|
g_data_type => e_imag,
|
g_data_type => e_imag,
|
g_data_w => c_fft.out_dat_w,
|
g_data_w => c_fft.out_dat_w,
|
g_buf_nof_data => c_bg_block_len,
|
g_buf_nof_data => c_bg_block_len,
|