diff --git a/libraries/base/diag/tb/vhdl/tb_diag_block_gen.vhd b/libraries/base/diag/tb/vhdl/tb_diag_block_gen.vhd index c54f89ca2b88ddfb950a84562bf02a26d84009a3..a6ca9a81d00d3153b472c8e995de1ef2f14f86b2 100644 --- a/libraries/base/diag/tb/vhdl/tb_diag_block_gen.vhd +++ b/libraries/base/diag/tb/vhdl/tb_diag_block_gen.vhd @@ -45,6 +45,9 @@ ENTITY tb_diag_block_gen IS -- general g_flow_control_verify : t_dp_flow_control_enum := e_active; -- always active, random or pulse flow control -- specific + g_nof_samples_per_packet : NATURAL := 2; -- >= 2 + g_nof_blocks_per_sync : NATURAL := 10; -- >= 1 + g_gapsize : NATURAL := 32; -- >= 0 g_buf_adr_w : NATURAL := 7; -- Waveform buffer address width (requires corresponding c_buf_file) g_buf_dat_w : NATURAL := 32; -- Waveform buffer stored data width (requires corresponding c_buf_file) g_try_phasor : BOOLEAN := FALSE -- use TRUE to see BG phasor in wave window with out_sosi.re/im in radix @@ -92,17 +95,15 @@ ARCHITECTURE tb OF tb_diag_block_gen IS -- Default BG control CONSTANT c_bg_ctrl : t_diag_block_gen := ( '0', '0', - TO_UVEC(96, c_diag_bg_samples_per_packet_w), - TO_UVEC(10, c_diag_bg_blocks_per_sync_w), - TO_UVEC(32, c_diag_bg_gapsize_w), + TO_UVEC(g_nof_samples_per_packet, c_diag_bg_samples_per_packet_w), + TO_UVEC(g_nof_blocks_per_sync, c_diag_bg_blocks_per_sync_w), + TO_UVEC(g_gapsize, c_diag_bg_gapsize_w), TO_UVEC( 0, c_diag_bg_mem_low_adrs_w), TO_UVEC(95, c_diag_bg_mem_high_adrs_w), TO_UVEC(42, c_diag_bg_bsn_init_w)); CONSTANT c_bg_period : NATURAL := TO_UINT(c_bg_ctrl.samples_per_packet) + TO_UINT(c_bg_ctrl.gapsize); -- Some alternative BG control settings - CONSTANT c_more_samples_per_packet : NATURAL := c_buf.nof_dat; - CONSTANT c_less_samples_per_packet : NATURAL := 5; CONSTANT c_alternative_mem_low_adrs : NATURAL := 1; CONSTANT c_alternative_mem_high_adrs : NATURAL := 64; CONSTANT c_alternative_data_gap : NATURAL := 1+c_alternative_mem_low_adrs; @@ -111,7 +112,7 @@ ARCHITECTURE tb OF tb_diag_block_gen IS CONSTANT c_bg_ctrl2 : t_diag_block_gen := ( '0', '0', TO_UVEC(17, c_diag_bg_samples_per_packet_w), - TO_UVEC(10, c_diag_bg_blocks_per_sync_w), + TO_UVEC(g_nof_blocks_per_sync, c_diag_bg_blocks_per_sync_w), TO_UVEC( 0, c_diag_bg_gapsize_w), TO_UVEC( 0, c_diag_bg_mem_low_adrs_w), TO_UVEC(16, c_diag_bg_mem_high_adrs_w), @@ -142,7 +143,7 @@ ARCHITECTURE tb OF tb_diag_block_gen IS SIGNAL out_siso : t_dp_siso; SIGNAL out_sosi : t_dp_sosi; SIGNAL prev_out_sosi : t_dp_sosi; - SIGNAL hold_sop : STD_LOGIC; + SIGNAL hold_sop : STD_LOGIC := '0'; SIGNAL last_size : NATURAL; SIGNAL exp_size : NATURAL; SIGNAL cnt_size : NATURAL; diff --git a/libraries/base/diag/tb/vhdl/tb_tb_diag_block_gen.vhd b/libraries/base/diag/tb/vhdl/tb_tb_diag_block_gen.vhd index bd97553f1659f99827d32e1c5b9e4b719a19a335..99d6ec387a17fb3964bf9ef1835b52445c855ae7 100644 --- a/libraries/base/diag/tb/vhdl/tb_tb_diag_block_gen.vhd +++ b/libraries/base/diag/tb/vhdl/tb_tb_diag_block_gen.vhd @@ -45,12 +45,17 @@ BEGIN -- -- general -- g_flow_control_verify : t_dp_flow_control_enum := e_active; -- always active, random or pulse flow control -- -- specific + -- g_nof_samples_per_packet : NATURAL := 96; + -- g_nof_blocks_per_sync : NATURAL := 10; + -- g_gapsize : NATURAL := 32; -- >= 0 -- g_buf_adr_w : NATURAL := 7; -- Waveform buffer address width (requires corresponding c_buf_file) -- g_buf_dat_w : NATURAL := 32 -- Waveform buffer stored data width (requires corresponding c_buf_file) -- g_try_phasor : BOOLEAN := FALSE -- use TRUE to see BG phasor in wave window with out_sosi.re/im in radix -- decimal and analogue format, no self test - u_bg : ENTITY work.tb_diag_block_gen GENERIC MAP (e_active, 7, 32, FALSE); - u_bg_ready : ENTITY work.tb_diag_block_gen GENERIC MAP (e_random, 7, 32, FALSE); - + u_bg : ENTITY work.tb_diag_block_gen GENERIC MAP (e_active, 96, 10, 32, 7, 32, FALSE); + u_bg_ready : ENTITY work.tb_diag_block_gen GENERIC MAP (e_random, 96, 10, 32, 7, 32, FALSE); + u_bg_minimal_gap_0 : ENTITY work.tb_diag_block_gen GENERIC MAP (e_active, 2, 1, 0, 7, 32, FALSE); + u_bg_minimal_gap_1 : ENTITY work.tb_diag_block_gen GENERIC MAP (e_active, 2, 1, 1, 7, 32, FALSE); + END tb;