diff --git a/libraries/base/dp/src/vhdl/dp_bsn_align_v2.vhd b/libraries/base/dp/src/vhdl/dp_bsn_align_v2.vhd index 1db302c2c260d6961ad03118b44550c0afb7e6fd..e61f67f6d1c107d08a5503175bc68c441091127a 100644 --- a/libraries/base/dp/src/vhdl/dp_bsn_align_v2.vhd +++ b/libraries/base/dp/src/vhdl/dp_bsn_align_v2.vhd @@ -173,18 +173,20 @@ architecture rtl of dp_bsn_align_v2 is true_log_pow2(1 + g_bsn_latency_max), true_log_pow2(1 + g_bsn_latency_max * (g_nof_aligners_max - 1) + g_bsn_latency_first_node)); - constant c_ram_size : natural := c_buffer_nof_blocks * g_block_size; + constant c_ram_size_w : natural := ceil_log2(c_buffer_nof_blocks * g_block_size); + constant c_ram_size : natural := 2**c_ram_size_w; constant c_ram_buf : t_c_mem := (latency => 1, - adr_w => ceil_log2(c_ram_size), + adr_w => c_ram_size_w, dat_w => g_data_w, nof_dat => c_ram_size, init_sl => '0'); -- . reduced buffer size for remote input constant c_remote_buffer_nof_blocks : natural := true_log_pow2(1 + g_bsn_latency_max); - constant c_remote_ram_size : natural := c_remote_buffer_nof_blocks * g_block_size; + constant c_remote_ram_size_w : natural := ceil_log2(c_remote_buffer_nof_blocks * g_block_size); + constant c_remote_ram_size : natural := 2**c_remote_ram_size_w; constant c_remote_ram_buf : t_c_mem := (latency => 1, - adr_w => ceil_log2(c_remote_ram_size), + adr_w => c_remote_ram_size_w, dat_w => g_data_w, nof_dat => c_remote_ram_size, init_sl => '0');