diff --git a/libraries/base/dp/src/vhdl/dp_block_from_mm_dc.vhd b/libraries/base/dp/src/vhdl/dp_block_from_mm_dc.vhd index 71706eaeff9b0980e4c9e37e4de58433271695ef..86189e162cc1f7c9ccc80c94795eac7f32d9a7f4 100644 --- a/libraries/base/dp/src/vhdl/dp_block_from_mm_dc.vhd +++ b/libraries/base/dp/src/vhdl/dp_block_from_mm_dc.vhd @@ -65,8 +65,13 @@ END dp_block_from_mm_dc; ARCHITECTURE str OF dp_block_from_mm_dc IS - CONSTANT c_packet_size : NATURAL := g_nof_data * g_data_size; -- 512 * 2 = 1024 words. - CONSTANT c_fifo_size : NATURAL := c_packet_size * 2; + CONSTANT c_packet_size : NATURAL := g_nof_data * g_data_size; + + -- Fit one packet in FIFO, and less than two, to avoid filling the FIFO with + -- multiple packets in case writing FIFO (mm_clk) is faster than reading + -- FIFO (dp_clk). + CONSTANT c_fifo_fill : NATURAL := c_packet_size; + CONSTANT c_fifo_size : NATURAL := c_packet_size + c_packet_size/2; CONSTANT c_start_addr_w : NATURAL := c_natural_w; CONSTANT c_delay_len : NATURAL := c_meta_delay_len; @@ -152,7 +157,7 @@ BEGIN g_bsn_w => g_bsn_w, g_use_bsn => TRUE, g_use_sync => TRUE, - g_fifo_fill => c_packet_size, + g_fifo_fill => c_fifo_fill, g_fifo_size => c_fifo_size ) PORT MAP (