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

Connect destinations_info register.

parent 52c6385d
No related branches found
No related tags found
1 merge request!357Move func_sdp_bdo_cep_hdr_field_sel_dest() from sdp_bdo_pkg to...
Pipeline #58516 passed
...@@ -57,24 +57,27 @@ entity sdp_beamformer_output is ...@@ -57,24 +57,27 @@ entity sdp_beamformer_output is
mm_clk : in std_logic; mm_clk : in std_logic;
mm_rst : in std_logic; mm_rst : in std_logic;
reg_hdr_dat_mosi : in t_mem_mosi := c_mem_mosi_rst; reg_hdr_dat_mosi : in t_mem_mosi := c_mem_mosi_rst;
reg_hdr_dat_miso : out t_mem_miso; reg_hdr_dat_miso : out t_mem_miso;
reg_dp_xonoff_mosi : in t_mem_mosi := c_mem_mosi_rst; reg_destinations_copi : in t_mem_copi := c_mem_mosi_rst;
reg_dp_xonoff_miso : out t_mem_miso; reg_destinations_cipo : out t_mem_cipo;
in_sosi : in t_dp_sosi; reg_dp_xonoff_mosi : in t_mem_mosi := c_mem_mosi_rst;
out_sosi : out t_dp_sosi; reg_dp_xonoff_miso : out t_mem_miso;
out_siso : in t_dp_siso;
sdp_info : in t_sdp_info; in_sosi : in t_dp_sosi;
beamlet_scale : in std_logic_vector(c_sdp_W_beamlet_scale-1 downto 0); out_sosi : out t_dp_sosi;
gn_id : in std_logic_vector(c_sdp_W_gn_id - 1 downto 0); out_siso : in t_dp_siso;
sdp_info : in t_sdp_info;
beamlet_scale : in std_logic_vector(c_sdp_W_beamlet_scale-1 downto 0);
gn_id : in std_logic_vector(c_sdp_W_gn_id - 1 downto 0);
-- Source MAC/IP/UDP are not used, c_sdp_cep_hdr_field_sel selects MM programmable instead -- Source MAC/IP/UDP are not used, c_sdp_cep_hdr_field_sel selects MM programmable instead
eth_src_mac : in std_logic_vector(c_network_eth_mac_addr_w - 1 downto 0); eth_src_mac : in std_logic_vector(c_network_eth_mac_addr_w - 1 downto 0);
ip_src_addr : in std_logic_vector(c_network_ip_addr_w - 1 downto 0); ip_src_addr : in std_logic_vector(c_network_ip_addr_w - 1 downto 0);
udp_src_port : in std_logic_vector(c_network_udp_port_w - 1 downto 0); udp_src_port : in std_logic_vector(c_network_udp_port_w - 1 downto 0);
hdr_fields_out : out std_logic_vector(1023 downto 0) hdr_fields_out : out std_logic_vector(1023 downto 0)
); );
...@@ -131,6 +134,7 @@ architecture str of sdp_beamformer_output is ...@@ -131,6 +134,7 @@ architecture str of sdp_beamformer_output is
signal station_info : std_logic_vector(15 downto 0) := (others => '0'); signal station_info : std_logic_vector(15 downto 0) := (others => '0');
-- Multiple destinations -- Multiple destinations
signal destinations_info : t_sdp_bdo_destinations_info;
signal eth_dst_mac : std_logic_vector(c_network_eth_mac_addr_w - 1 downto 0); signal eth_dst_mac : std_logic_vector(c_network_eth_mac_addr_w - 1 downto 0);
signal ip_dst_addr : std_logic_vector(c_network_ip_addr_w - 1 downto 0); signal ip_dst_addr : std_logic_vector(c_network_ip_addr_w - 1 downto 0);
signal udp_dst_port : std_logic_vector(c_network_udp_port_w - 1 downto 0); signal udp_dst_port : std_logic_vector(c_network_udp_port_w - 1 downto 0);
...@@ -245,10 +249,6 @@ begin ...@@ -245,10 +249,6 @@ begin
snk_in => dp_repack_beamlet_src_out, snk_in => dp_repack_beamlet_src_out,
src_out => dp_packet_reorder_src_out src_out => dp_packet_reorder_src_out
); );
-- Use constant defaults for beamlet data output to one destination.
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;
end generate; end generate;
gen_multiple_destinations : if g_use_multiple_destinations = true generate gen_multiple_destinations : if g_use_multiple_destinations = true generate
...@@ -267,16 +267,20 @@ begin ...@@ -267,16 +267,20 @@ begin
g_use_transpose => g_use_transpose g_use_transpose => g_use_transpose
) )
port map ( port map (
mm_clk => mm_clk,
mm_rst => mm_rst,
dp_clk => dp_clk, dp_clk => dp_clk,
dp_rst => dp_rst, dp_rst => dp_rst,
reg_destinations_copi => reg_destinations_copi,
reg_destinations_cipo => reg_destinations_cipo,
destinations_info => destinations_info,
snk_in => dp_repack_beamlet_src_out, snk_in => dp_repack_beamlet_src_out,
src_out => dp_packet_reorder_src_out src_out => dp_packet_reorder_src_out
); );
-- Use dynamic sizes for beamlet data output to multiple destination.
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;
end generate; end generate;
-- Debug signals for view in Wave window -- Debug signals for view in Wave window
...@@ -425,6 +429,21 @@ begin ...@@ -425,6 +429,21 @@ begin
-- --
-- DP dp_bsn -- DP dp_bsn
p_assemble_offload_info : process(destinations_info)
begin
if g_use_multiple_destinations = false then
-- Use constant defaults for beamlet data output to one destination.
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;
else
-- Use dynamic sizes for beamlet data output to multiple destination.
nof_blocks_per_packet <= destinations_info.nof_blocks_per_packet_act;
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
end if;
end process;
station_info <= sdp_info.antenna_field_index & sdp_info.station_id; station_info <= sdp_info.antenna_field_index & sdp_info.station_id;
-- Use MM programmable source MAC/IP/UDP instead of source MAC/IP/UDP based -- Use MM programmable source MAC/IP/UDP instead of source MAC/IP/UDP based
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment