From bda3823160e5c924e8645766d78df2df70b0ac0d Mon Sep 17 00:00:00 2001 From: donker <donker@astron.nl> Date: Thu, 1 Oct 2020 15:40:13 +0200 Subject: [PATCH] add testing of sync_offset --- libraries/base/dp/tb/vhdl/tb_dp_bsn_source_v2.vhd | 10 +++++----- libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd | 2 +- .../base/dp/tb/vhdl/tb_tb_dp_bsn_source_v2.vhd | 14 ++++++++++---- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/libraries/base/dp/tb/vhdl/tb_dp_bsn_source_v2.vhd b/libraries/base/dp/tb/vhdl/tb_dp_bsn_source_v2.vhd index 5dedb598b1..591d5e9262 100644 --- a/libraries/base/dp/tb/vhdl/tb_dp_bsn_source_v2.vhd +++ b/libraries/base/dp/tb/vhdl/tb_dp_bsn_source_v2.vhd @@ -36,7 +36,8 @@ USE dp_lib.tb_dp_pkg.ALL; ENTITY tb_dp_bsn_source_v2 IS GENERIC ( - g_clk_per_sync: NATURAL := 240 + g_sync_offset : NATURAL := 0; -- must be < c_sync_period for proc_dp_verify_sync + g_clk_per_sync : NATURAL := 240 ); END tb_dp_bsn_source_v2; @@ -47,7 +48,6 @@ ARCHITECTURE tb OF tb_dp_bsn_source_v2 IS CONSTANT c_block_size : NATURAL := 32; -- 31; CONSTANT c_bsn_w : NATURAL := 31; -- 16; CONSTANT c_sync_period : NATURAL := 8; - CONSTANT c_sync_offset : NATURAL := 0; -- 3; -- must be < c_sync_period for proc_dp_verify_sync -- The state name tells what kind of test is being done TYPE t_state_enum IS ( @@ -93,7 +93,7 @@ BEGIN dp_on <= '0'; dp_on_pps <= '0'; - init_bsn <= TO_UVEC(c_sync_offset, c_bsn_w); + init_bsn <= TO_UVEC(g_sync_offset, c_bsn_w); -- Get synchronous to clk proc_common_wait_until_low(clk, rst); @@ -137,7 +137,7 @@ BEGIN proc_common_wait_some_cycles(clk, 1000); -- Now start on next PPS and continue forever - init_bsn <= TO_UVEC(c_sync_offset, c_bsn_w); + init_bsn <= TO_UVEC(g_sync_offset, c_bsn_w); tb_state <= s_pps_start; dp_on_pps <= '1'; dp_on <= '1'; @@ -157,7 +157,7 @@ BEGIN -- Verification ----------------------------------------------------------------------------- proc_dp_verify_sop_and_eop(clk, bs_sosi.valid, bs_sosi.sop, bs_sosi.eop, hold_bs_sop); -- Verify that sop and eop come in pairs - proc_dp_verify_sync_v2(c_sync_period, c_sync_offset, clk, verify_sync, bs_sosi.sync, bs_sosi.sop, bs_sosi.bsn, tb_bsn_cnt); -- Verify sync at sop and at expected BSN + proc_dp_verify_sync_v2(c_sync_period, g_sync_offset, clk, verify_sync, bs_sosi.sync, bs_sosi.sop, bs_sosi.bsn, tb_bsn_cnt); -- Verify sync at sop and at expected BSN ----------------------------------------------------------------------------- -- DUT: dp_bsn_source_v2 diff --git a/libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd b/libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd index 3abaf64d91..4388148c87 100644 --- a/libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd +++ b/libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd @@ -2277,7 +2277,7 @@ PACKAGE BODY tb_dp_pkg IS END IF; -- if bsn = 0 (when in dp_off state) set tb_bsn_cnt also to 0 - IF TO_UINT(bsn(c_bsn_w-1 DOWNTO 0)) = 0 THEN + IF TO_UINT(bsn(c_bsn_w-1 DOWNTO 0)) = c_sync_offset THEN v_tb_bsn_cnt := 0; END IF; diff --git a/libraries/base/dp/tb/vhdl/tb_tb_dp_bsn_source_v2.vhd b/libraries/base/dp/tb/vhdl/tb_tb_dp_bsn_source_v2.vhd index 7932d0b48d..d1c1641225 100644 --- a/libraries/base/dp/tb/vhdl/tb_tb_dp_bsn_source_v2.vhd +++ b/libraries/base/dp/tb/vhdl/tb_tb_dp_bsn_source_v2.vhd @@ -36,10 +36,16 @@ ARCHITECTURE tb OF tb_tb_dp_bsn_source_v2 IS SIGNAL tb_end : STD_LOGIC := '0'; -- declare tb_end to avoid 'No objects found' error on 'when -label tb_end' BEGIN - -- (clk_per_sync) - u0_230 : ENTITY work.tb_dp_bsn_source_v2 GENERIC MAP (230); - u0_240 : ENTITY work.tb_dp_bsn_source_v2 GENERIC MAP (240); - u0_248 : ENTITY work.tb_dp_bsn_source_v2 GENERIC MAP (248); + -- (sync_offset, clk_per_sync) + -- test different clk_per_sync + u0_230 : ENTITY work.tb_dp_bsn_source_v2 GENERIC MAP (0, 230); + u0_240 : ENTITY work.tb_dp_bsn_source_v2 GENERIC MAP (0, 240); + u0_248 : ENTITY work.tb_dp_bsn_source_v2 GENERIC MAP (0, 248); + + -- test different sync_offsets + u1_1 : ENTITY work.tb_dp_bsn_source_v2 GENERIC MAP (1, 248); + u1_3 : ENTITY work.tb_dp_bsn_source_v2 GENERIC MAP (3, 248); + u1_4 : ENTITY work.tb_dp_bsn_source_v2 GENERIC MAP (4, 248); END tb; \ No newline at end of file -- GitLab