diff --git a/libraries/base/dp/tb/vhdl/tb_tb_dp_repack_dev.vhd b/libraries/base/dp/tb/vhdl/tb_tb_dp_repack_dev.vhd index 36312b9da747d5f825fa2ffb1041776effc163b5..ad7d9ebe4a7fe951ac7533139bf7f26a0c2337f9 100644 --- a/libraries/base/dp/tb/vhdl/tb_tb_dp_repack_dev.vhd +++ b/libraries/base/dp/tb/vhdl/tb_tb_dp_repack_dev.vhd @@ -55,8 +55,8 @@ BEGIN -- g_pkt_len : NATURAL := 2; -- g_pkt_gap : NATURAL := 0 - g_flow_control_stimuli : FOR I IN 0 TO 1 GENERATE -- 0 = e_active, 1 = e_random, 2 = e_pulse - g_flow_control_verify : FOR J IN 0 TO 0 GENERATE -- 0 = e_active, 1 = e_random, 2 = e_pulse + g_flow_control_stimuli : FOR I IN 0 TO 2 GENERATE -- 0 = e_active, 1 = e_random, 2 = e_pulse + g_flow_control_verify : FOR J IN 0 TO 2 GENERATE -- 0 = e_active, 1 = e_random, 2 = e_pulse -- no repack u_16_1_16_1_len_10_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 16, 1, 16, 1, FALSE, c_nof_repeat, 10, 0); -- g_pkt_len > g_in_nof_words @@ -67,19 +67,22 @@ BEGIN u_16_1_16_1_len_1_gap_1 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 16, 1, 16, 1, FALSE, c_nof_repeat, 1, 1); -- g_pkt_gap > 0 -- g_in_nof_words > g_pack_nof_words can use always active stimuli except when g_pkt_len MOD g_in_nof_words /= 0, because then the input stage needs to flush - u_8_4_32_1_len_1_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 8, 4, 32, 1, FALSE, c_nof_repeat, 1, 0); -- g_pkt_len < g_in_nof_words - u_8_4_32_1_len_2_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 8, 4, 32, 1, FALSE, c_nof_repeat, 2, 0); -- g_pkt_len = g_in_nof_words - u_8_4_32_1_len_3_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 8, 4, 32, 1, FALSE, c_nof_repeat, 3, 0); -- g_pkt_len > g_in_nof_words, MOD /= 0 - u_8_4_32_1_len_10_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 8, 4, 32, 1, FALSE, c_nof_repeat, 10, 0); -- g_pkt_len > g_in_nof_words, MOD /= 0 - u_8_4_32_1_len_11_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 8, 4, 32, 1, FALSE, c_nof_repeat, 11, 0); -- g_pkt_len > g_in_nof_words, MOD /= 0 - u_8_4_32_1_len_12_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 8, 4, 32, 1, FALSE, c_nof_repeat, 12, 0); -- g_pkt_len > g_in_nof_words, MOD = 0 + u_8_4_32_1_len_1_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 8, 4, 32, 1, FALSE, c_nof_repeat, 1, 0); -- g_pkt_len < g_in_nof_words + u_8_4_32_1_len_2_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 8, 4, 32, 1, FALSE, c_nof_repeat, 2, 0); -- g_pkt_len = g_in_nof_words + u_8_4_32_1_len_3_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 8, 4, 32, 1, FALSE, c_nof_repeat, 3, 0); -- g_pkt_len > g_in_nof_words, MOD /= 0 + u_8_4_32_1_len_10_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 8, 4, 32, 1, FALSE, c_nof_repeat, 10, 0); -- g_pkt_len > g_in_nof_words, MOD /= 0 + u_8_4_32_1_len_11_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 8, 4, 32, 1, FALSE, c_nof_repeat, 11, 0); -- g_pkt_len > g_in_nof_words, MOD /= 0 + u_8_4_32_1_len_12_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 8, 4, 32, 1, FALSE, c_nof_repeat, 12, 0); -- g_pkt_len > g_in_nof_words, MOD = 0 + + u_8_4_32_1_len_12_gap_2 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 8, 4, 32, 1, FALSE, c_nof_repeat, 12, 2); -- g_pkt_gap > 0 -- g_in_nof_words < g_pack_nof_words will apply backpressure, because the output stage needs to output more - u_32_1_8_4_len_1_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 32, 1, 8, 4, FALSE, c_nof_repeat, 1, 0); -- g_pkt_len = g_in_nof_words - u_32_1_8_4_len_2_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 32, 1, 8, 4, FALSE, c_nof_repeat, 2, 0); -- g_pkt_len > g_in_nof_words - u_32_1_8_4_len_3_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 32, 1, 8, 4, FALSE, c_nof_repeat, 3, 0); -- g_pkt_len > g_in_nof_words - u_32_1_8_4_len_10_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 32, 1, 8, 4, FALSE, c_nof_repeat, 10, 0); -- g_pkt_len > g_in_nof_words - u_32_1_8_4_len_11_gap_1 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 32, 1, 8, 4, FALSE, c_nof_repeat, 11, 1); -- g_pkt_gap > 0 + u_32_1_8_4_len_1_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 32, 1, 8, 4, FALSE, c_nof_repeat, 1, 0); -- g_pkt_len = g_in_nof_words + u_32_1_8_4_len_2_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 32, 1, 8, 4, FALSE, c_nof_repeat, 2, 0); -- g_pkt_len > g_in_nof_words + u_32_1_8_4_len_3_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 32, 1, 8, 4, FALSE, c_nof_repeat, 3, 0); -- g_pkt_len > g_in_nof_words + u_32_1_8_4_len_10_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 32, 1, 8, 4, FALSE, c_nof_repeat, 10, 0); -- g_pkt_len > g_in_nof_words + + u_32_1_8_4_len_11_gap_1 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 32, 1, 8, 4, FALSE, c_nof_repeat, 11, 1); -- g_pkt_gap > 0 -- g_in_nof_words > 1 and g_pack_nof_words > 1 u_24_2_16_3_len_1_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 24, 2, 16, 3, FALSE, c_nof_repeat, 1, 0); -- g_pkt_len < g_in_nof_words @@ -88,6 +91,22 @@ BEGIN u_24_2_16_3_len_10_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 24, 2, 16, 3, FALSE, c_nof_repeat, 10, 0); -- g_pkt_len = integer multiple of g_in_nof_words u_24_2_16_3_len_11_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 24, 2, 16, 3, FALSE, c_nof_repeat, 11, 0); -- g_pkt_len = fractional multiple of g_in_nof_words + u_24_2_16_3_len_11_gap_3 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 24, 2, 16, 3, FALSE, c_nof_repeat, 11, 3); -- g_pkt_gap > 0 + + -- g_in_dat_w MOD 8 /= 0 + u_6_5_10_3_len_1_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 6, 5, 10, 3, FALSE, c_nof_repeat, 1, 0); -- g_pkt_len < g_in_nof_words + u_6_5_10_3_len_2_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 6, 5, 10, 3, FALSE, c_nof_repeat, 2, 0); -- g_pkt_len < g_in_nof_words + u_6_5_10_3_len_3_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 6, 5, 10, 3, FALSE, c_nof_repeat, 3, 0); -- g_pkt_len < g_in_nof_words + u_6_5_10_3_len_4_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 6, 5, 10, 3, FALSE, c_nof_repeat, 4, 0); -- g_pkt_len < g_in_nof_words + u_6_5_10_3_len_5_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 6, 5, 10, 3, FALSE, c_nof_repeat, 5, 0); -- g_pkt_len = g_in_nof_words + u_6_5_10_3_len_10_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 6, 5, 10, 3, FALSE, c_nof_repeat, 10, 0); -- g_pkt_len = integer multiple of g_in_nof_words + u_6_5_10_3_len_11_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 6, 5, 10, 3, FALSE, c_nof_repeat, 11, 0); -- g_pkt_len = fractional multiple of g_in_nof_words + + u_6_5_10_3_len_21_gap_3 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 6, 5, 10, 3, FALSE, c_nof_repeat, 21, 3); -- g_pkt_gap > 0 + + -- g_in_dat_w * g_in_nof_words < g_out_dat_w * g_out_nof_words + --u_18_2_8_5_len_2_gap_0 : ENTITY work.tb_dp_repack_dev GENERIC MAP (c_flow(I), c_flow(J), 18, 2, 8, 5, FALSE, c_nof_repeat, 2, 0); -- g_pkt_len = g_in_nof_words + END GENERATE; END GENERATE;