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

Simulate multiple in_sync intervals to show output out_sync.

parent bd223117
No related branches found
No related tags found
1 merge request!100Removed text for XSub that is now written in Confluence Subband correlator...
...@@ -66,19 +66,21 @@ ENTITY tb_pft2 IS ...@@ -66,19 +66,21 @@ ENTITY tb_pft2 IS
--g_name_x : STRING := "u_noise"; --g_name_x : STRING := "u_noise";
-- Select one input signal for Y (used as imag input to the PFT) -- Select one input signal for Y (used as imag input to the PFT)
--g_name_y : STRING := "cosin_N2" --g_name_y : STRING := "cosin_N2";
--g_name_y : STRING := "cosin_1" --g_name_y : STRING := "cosin_1";
--g_name_y : STRING := "cosin_39" --g_name_y : STRING := "cosin_39";
--g_name_y : STRING := "sinus_1" --g_name_y : STRING := "sinus_1";
--g_name_y : STRING := "sinus_13" --g_name_y : STRING := "sinus_13";
--g_name_y : STRING := "sinus_13s" --g_name_y : STRING := "sinus_13s";
--g_name_y : STRING := "impulse_0" --g_name_y : STRING := "impulse_0";
--g_name_y : STRING := "impulse_1" --g_name_y : STRING := "impulse_1";
g_name_y : STRING := "zeros" -- For PFT_MODE_BITREV and PFT_MODE_COMPLEX select zeros for Y input. g_name_y : STRING := "zeros"; -- For PFT_MODE_BITREV and PFT_MODE_COMPLEX select zeros for Y input.
--g_name_y : STRING := "dc" --g_name_y : STRING := "dc";
--g_name_y : STRING := "block_1" --g_name_y : STRING := "block_1";
--g_name_y : STRING := "block_117" --g_name_y : STRING := "block_117";
--g_name_y : STRING := "u_noise" --g_name_y : STRING := "u_noise";
g_repeat : NATURAL := 2 -- minimal 2 due to PFT latency
--g_repeat : NATURAL := 10 -- > c_nof_block_per_sync to view multiple in_sync and out_sync intervals
); );
END tb_pft2; END tb_pft2;
...@@ -90,12 +92,12 @@ ARCHITECTURE tb OF tb_pft2 IS ...@@ -90,12 +92,12 @@ ARCHITECTURE tb OF tb_pft2 IS
CONSTANT c_in_dat_w : NATURAL := 18; CONSTANT c_in_dat_w : NATURAL := 18;
CONSTANT c_out_dat_w : NATURAL := 18; CONSTANT c_out_dat_w : NATURAL := 18;
CONSTANT c_nof_block_per_sync : NATURAL := 2;
-- The input stimuli signals are located in c_tst_data_dir and have been -- The input stimuli signals are located in c_tst_data_dir and have been
-- generated with TC 5.2 and are used in the PFT continuous test TC 5.19. -- generated with TC 5.2 and are used in the PFT continuous test TC 5.19.
CONSTANT c_tst_data_dir : STRING := "data/"; CONSTANT c_tst_data_dir : STRING := "data/";
CONSTANT c_repeat : NATURAL := 2; -- minimal 2 due to PFT latency
-- Maximum quantization error in PFT output -- Maximum quantization error in PFT output
CONSTANT c_diff_max : NATURAL := 20; -- Maximum quantization error in PFT output, as used in tc.tcl CONSTANT c_diff_max : NATURAL := 20; -- Maximum quantization error in PFT output, as used in tc.tcl
--CONSTANT c_diff_max : NATURAL := 10; -- value per subband --CONSTANT c_diff_max : NATURAL := 10; -- value per subband
...@@ -122,6 +124,7 @@ ARCHITECTURE tb OF tb_pft2 IS ...@@ -122,6 +124,7 @@ ARCHITECTURE tb OF tb_pft2 IS
SIGNAL tb_end : STD_LOGIC := '0'; SIGNAL tb_end : STD_LOGIC := '0';
SIGNAL clk : STD_LOGIC := '1'; SIGNAL clk : STD_LOGIC := '1';
SIGNAL rst : STD_LOGIC := '1'; SIGNAL rst : STD_LOGIC := '1';
SIGNAL rst_sync : STD_LOGIC := '1';
-- PFT input stimuli from file -- PFT input stimuli from file
SIGNAL in_en : STD_LOGIC; SIGNAL in_en : STD_LOGIC;
...@@ -310,10 +313,12 @@ BEGIN ...@@ -310,10 +313,12 @@ BEGIN
clk <= (NOT clk) OR tb_end AFTER c_clk_period / 2; clk <= (NOT clk) OR tb_end AFTER c_clk_period / 2;
in_sync <= '0', '1' AFTER c_clk_period*c_rst_period*2, '0' AFTER c_clk_period*(c_rst_period*2+1);
in_en <= '0', '1' AFTER c_clk_period*c_rst_period*2; in_en <= '0', '1' AFTER c_clk_period*c_rst_period*2;
in_val <= in_val_x; in_val <= in_val_x;
rst_sync <= '1', '0' AFTER c_clk_period*(c_rst_period*2 - 1); -- start in_sync pulse interval 1 clk cycle before first in_val = '1'
proc_common_gen_pulse(1, c_nof_block_per_sync*c_fft_size, '1', rst_sync, clk, in_sync);
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Input X, Y data -- Input X, Y data
...@@ -322,7 +327,7 @@ BEGIN ...@@ -322,7 +327,7 @@ BEGIN
u_in_x: ENTITY tst_lib.tst_input u_in_x: ENTITY tst_lib.tst_input
GENERIC MAP ( GENERIC MAP (
g_file_name => c_file_pft_in_x, g_file_name => c_file_pft_in_x,
g_file_repeat => c_repeat, g_file_repeat => g_repeat,
g_nof_data => 1, g_nof_data => 1,
g_data_width => c_in_dat_w, g_data_width => c_in_dat_w,
g_data_type => "SIGNED" g_data_type => "SIGNED"
...@@ -338,7 +343,7 @@ BEGIN ...@@ -338,7 +343,7 @@ BEGIN
u_in_y: ENTITY tst_lib.tst_input u_in_y: ENTITY tst_lib.tst_input
GENERIC MAP ( GENERIC MAP (
g_file_name => c_file_pft_in_y, g_file_name => c_file_pft_in_y,
g_file_repeat => c_repeat, g_file_repeat => g_repeat,
g_nof_data => 1, g_nof_data => 1,
g_data_width => c_in_dat_w, g_data_width => c_in_dat_w,
g_data_type => "SIGNED" g_data_type => "SIGNED"
......
...@@ -75,26 +75,29 @@ BEGIN ...@@ -75,26 +75,29 @@ BEGIN
--g_name_y : STRING := "block_1" --g_name_y : STRING := "block_1"
--g_name_y : STRING := "block_117" --g_name_y : STRING := "block_117"
--g_name_y : STRING := "u_noise" --g_name_y : STRING := "u_noise"
--
--g_repeat : NATURAL := 2 -- minimal 2 due to PFT latency
--g_repeat : NATURAL := 10 -- > c_nof_block_per_sync to view multiple in_sync and out_sync intervals
u_cosin_N2 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "cosin_N2" , "zeros"); u_cosin_N2 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "cosin_N2" , "zeros", 2);
u_cosin_1 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "cosin_1" , "zeros"); u_cosin_1 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "cosin_1" , "zeros", 2);
u_cosin_39 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "cosin_39" , "zeros"); u_cosin_39 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "cosin_39" , "zeros", 2);
u_sinus_1 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "sinus_1" , "zeros"); u_sinus_1 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "sinus_1" , "zeros", 2);
u_sinus_13 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "sinus_13" , "zeros"); u_sinus_13 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "sinus_13" , "zeros", 2);
u_sinus_13s : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "sinus_13s", "zeros"); u_sinus_13s : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "sinus_13s", "zeros", 2);
u_impulse_0 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "impulse_0", "zeros"); u_impulse_0 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "impulse_0", "zeros", 2);
u_impulse_1 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "impulse_1", "zeros"); u_impulse_1 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "impulse_1", "zeros", 2);
u_zeros : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "zeros" , "zeros"); u_zeros : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "zeros" , "zeros", 2);
--u_dc : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "dc" , "zeros"); u_dc : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "dc" , "zeros", 2);
u_block_1 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "block_1" , "zeros"); u_block_1 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "block_1" , "zeros", 2);
u_block_117 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "block_117", "zeros"); u_block_117 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "block_117", "zeros", 2);
u_u_noise : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "u_noise" , "zeros"); u_u_noise : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "u_noise" , "zeros", 2);
u_impulse_0_impulse_1 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "impulse_0", "impulse_1"); u_impulse_0_impulse_1 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "impulse_0", "impulse_1", 2);
--u_dc_cosin_N2 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "dc" , "cosin_N2"); u_dc_cosin_N2 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "dc", "cosin_N2", 2);
--u_dc_sinus_13 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "dc" , "sinus_13"); u_dc_sinus_13 : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "dc", "sinus_13", 2);
u_block_117_u_noise : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "block_117", "u_noise"); u_block_117_u_noise : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "block_117", "u_noise", 2);
u_u_noise_u_noise : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "u_noise" , "u_noise"); u_u_noise_u_noise : ENTITY work.tb_pft2 GENERIC MAP(PFT_MODE_REAL2, "u_noise", "u_noise", 2);
END tb; END tb;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment