Skip to content
Snippets Groups Projects
Commit e0934f12 authored by Eric Kooistra's avatar Eric Kooistra
Browse files

Use g_nof_destinations_max as design revison parameter.

parent 5125de4c
No related branches found
No related tags found
1 merge request!359Clarify g_nof_destinations_max design revision parameter and package constants...
...@@ -46,10 +46,10 @@ use work.sdp_bdo_pkg.all; ...@@ -46,10 +46,10 @@ use work.sdp_bdo_pkg.all;
entity sdp_beamformer_output is entity sdp_beamformer_output is
generic ( generic (
g_beamset_id : natural := 0; g_beamset_id : natural := 0;
g_use_transpose : boolean := false; g_use_transpose : boolean := false;
g_use_multiple_destinations : boolean := false; g_nof_destinations_max : natural := 1;
g_sim_force_bsn_error : boolean := true g_sim_force_bsn_error : boolean := true
); );
port ( port (
dp_clk : in std_logic; dp_clk : in std_logic;
...@@ -99,8 +99,8 @@ architecture str of sdp_beamformer_output is ...@@ -99,8 +99,8 @@ architecture str of sdp_beamformer_output is
-- field_sel = '0' for DP (dynamic), '1' for MM (fixed or programmable via MM of dp_offload_tx_v3) -- field_sel = '0' for DP (dynamic), '1' for MM (fixed or programmable via MM of dp_offload_tx_v3)
constant c_cep_hdr_field_sel : std_logic_vector(c_sdp_cep_nof_hdr_fields - 1 downto 0) := constant c_cep_hdr_field_sel : std_logic_vector(c_sdp_cep_nof_hdr_fields - 1 downto 0) :=
sel_a_b(g_use_multiple_destinations, func_sdp_cep_hdr_field_sel_dst('0'), sel_a_b(g_nof_destinations_max = 1, func_sdp_cep_hdr_field_sel_dst('1'),
func_sdp_cep_hdr_field_sel_dst('1')); func_sdp_cep_hdr_field_sel_dst('0'));
-- BDO packet size control -- BDO packet size control
-- . One 32b word contains 1 dual pol beamlet of 4 octets (Xre, Xim, Yre, Yim). -- . One 32b word contains 1 dual pol beamlet of 4 octets (Xre, Xim, Yre, Yim).
...@@ -229,7 +229,7 @@ begin ...@@ -229,7 +229,7 @@ begin
-- [0:3] = [Xre, Xim, Yre, Yim] -- [0:3] = [Xre, Xim, Yre, Yim]
dp_repack_beamlet_word <= unpack_data(dp_repack_beamlet_src_out.data(c_sdp_W_dual_pol_beamlet - 1 downto 0)); dp_repack_beamlet_word <= unpack_data(dp_repack_beamlet_src_out.data(c_sdp_W_dual_pol_beamlet - 1 downto 0));
gen_one_destination : if g_use_multiple_destinations = false generate gen_one_destination : if g_nof_destinations_max = 1 generate
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Merge and reorder beamlet data for one destination from: -- Merge and reorder beamlet data for one destination from:
-- (int8) [t] [N_blocks_per_packet][S_sub_bf] [N_pol_bf][N_complex] -- (int8) [t] [N_blocks_per_packet][S_sub_bf] [N_pol_bf][N_complex]
...@@ -252,7 +252,7 @@ begin ...@@ -252,7 +252,7 @@ begin
); );
end generate; end generate;
gen_multiple_destinations : if g_use_multiple_destinations = true generate gen_multiple_destinations : if g_nof_destinations_max > 1 generate
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Merge, reorder and unmerge beamlet data for N_destinations >= 1 from: -- Merge, reorder and unmerge beamlet data for N_destinations >= 1 from:
-- (int8) [t] [N_blocks_per_packet][S_sub_bf / N_destinations] [N_pol_bf][N_complex] -- (int8) [t] [N_blocks_per_packet][S_sub_bf / N_destinations] [N_pol_bf][N_complex]
...@@ -265,8 +265,8 @@ begin ...@@ -265,8 +265,8 @@ begin
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
u_sdp_bdo_multiple_destinations : entity work.sdp_bdo_multiple_destinations u_sdp_bdo_multiple_destinations : entity work.sdp_bdo_multiple_destinations
generic map ( generic map (
g_beamset_id => g_beamset_id, g_nof_destinations_max => g_nof_destinations_max,
g_use_transpose => g_use_transpose g_beamset_id => g_beamset_id
) )
port map ( port map (
mm_clk => mm_clk, mm_clk => mm_clk,
...@@ -433,13 +433,13 @@ begin ...@@ -433,13 +433,13 @@ begin
p_assemble_offload_info : process(destinations_info) p_assemble_offload_info : process(destinations_info)
begin begin
if g_use_multiple_destinations = false then if g_nof_destinations_max = 1 then
-- Use constant defaults for beamlet data output to one destination. -- Use constant defaults for beamlet data output to one destination.
nof_blocks_per_packet <= c_sdp_cep_nof_blocks_per_packet; -- = 4; nof_blocks_per_packet <= c_sdp_cep_nof_blocks_per_packet; -- = 4;
nof_beamlets_per_block <= c_sdp_S_sub_bf; -- = 488 dual pol beamlets; nof_beamlets_per_block <= c_sdp_S_sub_bf; -- = 488 dual pol beamlets;
else else
-- Use dynamic sizes for beamlet data output to multiple destination. -- Use dynamic sizes for beamlet data output to multiple destination.
nof_blocks_per_packet <= destinations_info.nof_blocks_per_packet_act; nof_blocks_per_packet <= destinations_info.nof_blocks_per_packet;
nof_beamlets_per_block <= c_sdp_S_sub_bf; -- = 488 dual pol beamlets; nof_beamlets_per_block <= c_sdp_S_sub_bf; -- = 488 dual pol beamlets;
-- TODO check channel field to set destination addresses in dp_offload_tx_hdr_fields -- TODO check channel field to set destination addresses in dp_offload_tx_hdr_fields
......
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