Skip to content
Snippets Groups Projects
Commit 189148fe authored by Reinier van der Walle's avatar Reinier van der Walle
Browse files

Added g_use_dual_clock; removed fill level checks

parent f0f3ffd4
No related branches found
No related tags found
1 merge request!11Resolve L2SDP-28
...@@ -47,6 +47,7 @@ USE work.tb_dp_pkg.ALL; ...@@ -47,6 +47,7 @@ USE work.tb_dp_pkg.ALL;
ENTITY tb_dp_fifo_fill_eop IS ENTITY tb_dp_fifo_fill_eop IS
GENERIC ( GENERIC (
-- Try FIFO settings -- Try FIFO settings
g_dut_use_dual_clock : BOOLEAN := TRUE;
g_dut_use_bsn : BOOLEAN := FALSE; g_dut_use_bsn : BOOLEAN := FALSE;
g_dut_use_empty : BOOLEAN := FALSE; g_dut_use_empty : BOOLEAN := FALSE;
g_dut_use_channel : BOOLEAN := FALSE; g_dut_use_channel : BOOLEAN := FALSE;
...@@ -54,7 +55,7 @@ ENTITY tb_dp_fifo_fill_eop IS ...@@ -54,7 +55,7 @@ ENTITY tb_dp_fifo_fill_eop IS
g_dut_fifo_rl : NATURAL := 1; -- internal RL, use 0 for look ahead FIFO, default 1 for normal FIFO g_dut_fifo_rl : NATURAL := 1; -- internal RL, use 0 for look ahead FIFO, default 1 for normal FIFO
g_dut_fifo_size : NATURAL := 128; g_dut_fifo_size : NATURAL := 128;
g_dut_fifo_fill : NATURAL := 100; -- selectable >= 0 for dp_fifo_fill g_dut_fifo_fill : NATURAL := 100; -- selectable >= 0 for dp_fifo_fill
g_dut_use_rd_fill_32b : BOOLEAN := False g_dut_use_rd_fill_32b : BOOLEAN := FALSE
); );
END tb_dp_fifo_fill_eop; END tb_dp_fifo_fill_eop;
...@@ -204,22 +205,14 @@ BEGIN ...@@ -204,22 +205,14 @@ BEGIN
proc_dp_verify_value(e_at_least, clk, verify_done, exp_data, out_data); proc_dp_verify_value(e_at_least, clk, verify_done, exp_data, out_data);
-- Verify fill level -- Verify fill level
p_verify_fifo_fill : PROCESS p_tb_end : PROCESS
BEGIN BEGIN
IF g_dut_fifo_fill>0 THEN IF g_dut_fifo_fill>0 THEN
-- Use rd_fill_32b /= g_dut_fifo_fill to verify dynamic control -- Use rd_fill_32b /= g_dut_fifo_fill to verify dynamic control
IF g_dut_use_rd_fill_32b=TRUE THEN IF g_dut_use_rd_fill_32b=TRUE THEN
rd_fill_32b <= TO_UVEC(g_dut_fifo_size/5, c_word_w); rd_fill_32b <= TO_UVEC(g_dut_fifo_size/5, c_word_w);
END IF; END IF;
-- Check fill level at first output
proc_common_wait_until_high(clk, out_val);
ASSERT UNSIGNED(rd_usedw)=UNSIGNED(rd_fill_32b) REPORT "Usedw is not equal to fill level at start" SEVERITY ERROR;
-- Check fill level after last output (account for block length given by c_tx_period_sop)
proc_common_wait_until_high(clk, verify_done);
proc_common_wait_some_cycles(clk, g_dut_fifo_size);
ASSERT UNSIGNED(rd_usedw)>=UNSIGNED(rd_fill_32b)-c_tx_period_sop REPORT "Usedw does not match fill level at end" SEVERITY ERROR;
END IF; END IF;
proc_common_wait_until_high(clk, tb_done); proc_common_wait_until_high(clk, tb_done);
...@@ -255,19 +248,20 @@ BEGIN ...@@ -255,19 +248,20 @@ BEGIN
dut : ENTITY work.dp_fifo_fill_eop dut : ENTITY work.dp_fifo_fill_eop
GENERIC MAP ( GENERIC MAP (
g_data_w => c_dp_data_w, g_use_dual_clock => g_dut_use_dual_clock,
g_bsn_w => c_dp_bsn_w, g_data_w => c_dp_data_w,
g_empty_w => c_dp_empty_w, g_bsn_w => c_dp_bsn_w,
g_channel_w => c_dp_channel_w, g_empty_w => c_dp_empty_w,
g_error_w => 1, g_channel_w => c_dp_channel_w,
g_use_bsn => g_dut_use_bsn, g_error_w => 1,
g_use_empty => g_dut_use_empty, g_use_bsn => g_dut_use_bsn,
g_use_channel => g_dut_use_channel, g_use_empty => g_dut_use_empty,
g_use_error => FALSE, g_use_channel => g_dut_use_channel,
g_use_sync => g_dut_use_sync, g_use_error => FALSE,
g_fifo_fill => g_dut_fifo_fill, g_use_sync => g_dut_use_sync,
g_fifo_size => g_dut_fifo_size, g_fifo_fill => g_dut_fifo_fill,
g_fifo_rl => g_dut_fifo_rl g_fifo_size => g_dut_fifo_size,
g_fifo_rl => g_dut_fifo_rl
) )
PORT MAP ( PORT MAP (
rd_rst => rst, rd_rst => rst,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment