Skip to content
Snippets Groups Projects

Move func_sdp_bdo_cep_hdr_field_sel_dest() from sdp_bdo_pkg to...

Merged Eric Kooistra requested to merge L2SDP-963 into master
1 file
+ 72
70
Compare changes
  • Side-by-side
  • Inline
@@ -34,7 +34,7 @@
@@ -34,7 +34,7 @@
--
--
-- where:
-- where:
-- . _ro = actual nof_destinations, actual nof_blocks_per_packet
-- . _ro = actual nof_destinations, actual nof_blocks_per_packet
-- . output value = sdp_bdo_destinations
-- . output value = destinations_info
--
--
-- References:
-- References:
-- 1 https://plm.astron.nl/polarion/#/project/LOFAR2System/wiki/L2%20Interface%20Control%20Documents/SC%20to%20SDP%20ICD
-- 1 https://plm.astron.nl/polarion/#/project/LOFAR2System/wiki/L2%20Interface%20Control%20Documents/SC%20to%20SDP%20ICD
@@ -52,8 +52,8 @@ library IEEE, common_lib, mm_lib;
@@ -52,8 +52,8 @@ library IEEE, common_lib, mm_lib;
entity sdp_bdo_destinations_reg is
entity sdp_bdo_destinations_reg is
port (
port (
-- Clocks and reset
-- Clocks and reset
mm_rst : in std_logic;
mm_clk : in std_logic;
mm_clk : in std_logic;
 
mm_rst : in std_logic;
dp_clk : in std_logic;
dp_clk : in std_logic;
dp_rst : in std_logic;
dp_rst : in std_logic;
@@ -61,14 +61,14 @@ entity sdp_bdo_destinations_reg is
@@ -61,14 +61,14 @@ entity sdp_bdo_destinations_reg is
reg_copi : in t_mem_copi;
reg_copi : in t_mem_copi;
reg_cipo : out t_mem_cipo;
reg_cipo : out t_mem_cipo;
-- sdp info
destinations_info : out t_sdp_bdo_destinations_info
sdp_bdo_destinations : out t_sdp_bdo_destinations_info
);
);
end sdp_bdo_destinations_reg;
end sdp_bdo_destinations_reg;
architecture str of sdp_bdo_destinations_reg is
architecture str of sdp_bdo_destinations_reg is
constant c_field_arr : t_common_field_arr(c_sdp_bdo_destinations_info_nof_hdr_fields - 1 downto 0) :=
constant c_field_arr : t_common_field_arr(c_sdp_bdo_destinations_info_nof_hdr_fields - 1 downto 0) :=
( (field_name_pad("nof_blocks_per_packet_act"), "RO", 8, field_default(c_sdp_cep_nof_blocks_per_packet)),
( (field_name_pad("nof_blocks_per_packet_act"), "RO", 8, field_default(c_sdp_cep_nof_blocks_per_packet)),
 
(field_name_pad("nof_destinations_max"), "RO", 8, field_default(1)),
(field_name_pad("nof_destinations_act"), "RO", 8, field_default(1)),
(field_name_pad("nof_destinations_act"), "RO", 8, field_default(1)),
(field_name_pad("nof_destinations"), "RW", 8, field_default(1)),
(field_name_pad("nof_destinations"), "RW", 8, field_default(1)),
@@ -126,24 +126,25 @@ architecture str of sdp_bdo_destinations_reg is
@@ -126,24 +126,25 @@ architecture str of sdp_bdo_destinations_reg is
signal mm_fields_in : std_logic_vector(field_slv_in_len(c_field_arr) - 1 downto 0);
signal mm_fields_in : std_logic_vector(field_slv_in_len(c_field_arr) - 1 downto 0);
signal mm_fields_out : std_logic_vector(field_slv_out_len(c_field_arr) - 1 downto 0);
signal mm_fields_out : std_logic_vector(field_slv_out_len(c_field_arr) - 1 downto 0);
signal sdp_bdo_destinations_rd : t_sdp_bdo_destinations_info;
signal destinations_info_rd : t_sdp_bdo_destinations_info;
signal sdp_bdo_destinations_wr : t_sdp_bdo_destinations_info;
signal destinations_info_wr : t_sdp_bdo_destinations_info;
signal nof_destinations_act : natural := 1;
signal nof_destinations_act : natural := 1;
signal nof_blocks_per_packet_act : natural := c_sdp_cep_nof_blocks_per_packet;
signal nof_blocks_per_packet_act : natural := c_sdp_cep_nof_blocks_per_packet;
begin
begin
sdp_bdo_destinations <= sdp_bdo_destinations_rd;
destinations_info <= destinations_info_rd;
p_sdp_bdo_destinations_rd : process(sdp_bdo_destinations_wr,
p_destinations_info_rd : process(destinations_info_wr,
nof_destinations_act,
nof_destinations_act,
nof_blocks_per_packet_act)
nof_blocks_per_packet_act)
begin
begin
-- default write assign all fields
-- default write assign all fields
sdp_bdo_destinations_rd <= sdp_bdo_destinations_wr;
destinations_info_rd <= destinations_info_wr;
-- overrule the read only fields
-- overrule the read only fields
sdp_bdo_destinations_rd.nof_destinations_act <= nof_destinations_act;
destinations_info_rd.nof_destinations_act <= nof_destinations_act;
sdp_bdo_destinations_rd.nof_blocks_per_packet_act <= nof_blocks_per_packet_act;
destinations_info_rd.nof_destinations_max <= c_sdp_bdo_nof_destinations_max;
 
destinations_info_rd.nof_blocks_per_packet_act <= nof_blocks_per_packet_act;
end process;
end process;
u_mm_fields: entity mm_lib.mm_fields
u_mm_fields: entity mm_lib.mm_fields
@@ -168,71 +169,72 @@ begin
@@ -168,71 +169,72 @@ begin
);
);
-- add "RO" fields to mm_fields
-- add "RO" fields to mm_fields
mm_fields_in(field_hi(c_field_arr, "nof_destinations_act") downto field_lo(c_field_arr, "nof_destinations_act")) <= to_uvec(sdp_bdo_destinations_rd.nof_destinations_act, 8);
mm_fields_in(field_hi(c_field_arr, "nof_destinations_act") downto field_lo(c_field_arr, "nof_destinations_act")) <= to_uvec(destinations_info_rd.nof_destinations_act, 8);
mm_fields_in(field_hi(c_field_arr, "nof_blocks_per_packet_act") downto field_lo(c_field_arr, "nof_blocks_per_packet_act")) <= to_uvec(sdp_bdo_destinations_rd.nof_blocks_per_packet_act, 8);
mm_fields_in(field_hi(c_field_arr, "nof_destinations_max") downto field_lo(c_field_arr, "nof_destinations_max")) <= to_uvec(destinations_info_rd.nof_destinations_max, 8);
 
mm_fields_in(field_hi(c_field_arr, "nof_blocks_per_packet_act") downto field_lo(c_field_arr, "nof_blocks_per_packet_act")) <= to_uvec(destinations_info_rd.nof_blocks_per_packet_act, 8);
-- get "RW" fields from mm_fields
-- get "RW" fields from mm_fields
sdp_bdo_destinations_wr.eth_destination_mac_arr(0) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_0") downto field_lo(c_field_arr, "eth_destination_mac_0"));
destinations_info_wr.eth_destination_mac_arr(0) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_0") downto field_lo(c_field_arr, "eth_destination_mac_0"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(1) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_1") downto field_lo(c_field_arr, "eth_destination_mac_1"));
destinations_info_wr.eth_destination_mac_arr(1) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_1") downto field_lo(c_field_arr, "eth_destination_mac_1"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(2) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_2") downto field_lo(c_field_arr, "eth_destination_mac_2"));
destinations_info_wr.eth_destination_mac_arr(2) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_2") downto field_lo(c_field_arr, "eth_destination_mac_2"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(3) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_3") downto field_lo(c_field_arr, "eth_destination_mac_3"));
destinations_info_wr.eth_destination_mac_arr(3) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_3") downto field_lo(c_field_arr, "eth_destination_mac_3"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(4) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_4") downto field_lo(c_field_arr, "eth_destination_mac_4"));
destinations_info_wr.eth_destination_mac_arr(4) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_4") downto field_lo(c_field_arr, "eth_destination_mac_4"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(5) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_5") downto field_lo(c_field_arr, "eth_destination_mac_5"));
destinations_info_wr.eth_destination_mac_arr(5) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_5") downto field_lo(c_field_arr, "eth_destination_mac_5"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(6) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_6") downto field_lo(c_field_arr, "eth_destination_mac_6"));
destinations_info_wr.eth_destination_mac_arr(6) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_6") downto field_lo(c_field_arr, "eth_destination_mac_6"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(7) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_7") downto field_lo(c_field_arr, "eth_destination_mac_7"));
destinations_info_wr.eth_destination_mac_arr(7) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_7") downto field_lo(c_field_arr, "eth_destination_mac_7"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(8) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_8") downto field_lo(c_field_arr, "eth_destination_mac_8"));
destinations_info_wr.eth_destination_mac_arr(8) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_8") downto field_lo(c_field_arr, "eth_destination_mac_8"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(9) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_9") downto field_lo(c_field_arr, "eth_destination_mac_9"));
destinations_info_wr.eth_destination_mac_arr(9) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_9") downto field_lo(c_field_arr, "eth_destination_mac_9"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(10) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_10") downto field_lo(c_field_arr, "eth_destination_mac_10"));
destinations_info_wr.eth_destination_mac_arr(10) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_10") downto field_lo(c_field_arr, "eth_destination_mac_10"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(11) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_11") downto field_lo(c_field_arr, "eth_destination_mac_11"));
destinations_info_wr.eth_destination_mac_arr(11) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_11") downto field_lo(c_field_arr, "eth_destination_mac_11"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(12) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_12") downto field_lo(c_field_arr, "eth_destination_mac_12"));
destinations_info_wr.eth_destination_mac_arr(12) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_12") downto field_lo(c_field_arr, "eth_destination_mac_12"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(13) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_13") downto field_lo(c_field_arr, "eth_destination_mac_13"));
destinations_info_wr.eth_destination_mac_arr(13) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_13") downto field_lo(c_field_arr, "eth_destination_mac_13"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(14) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_14") downto field_lo(c_field_arr, "eth_destination_mac_14"));
destinations_info_wr.eth_destination_mac_arr(14) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_14") downto field_lo(c_field_arr, "eth_destination_mac_14"));
sdp_bdo_destinations_wr.eth_destination_mac_arr(15) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_15") downto field_lo(c_field_arr, "eth_destination_mac_15"));
destinations_info_wr.eth_destination_mac_arr(15) <= mm_fields_out(field_hi(c_field_arr, "eth_destination_mac_15") downto field_lo(c_field_arr, "eth_destination_mac_15"));
sdp_bdo_destinations_wr.ip_destination_address_arr(0) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_0") downto field_lo(c_field_arr, "ip_destination_address_0"));
destinations_info_wr.ip_destination_address_arr(0) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_0") downto field_lo(c_field_arr, "ip_destination_address_0"));
sdp_bdo_destinations_wr.ip_destination_address_arr(1) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_1") downto field_lo(c_field_arr, "ip_destination_address_1"));
destinations_info_wr.ip_destination_address_arr(1) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_1") downto field_lo(c_field_arr, "ip_destination_address_1"));
sdp_bdo_destinations_wr.ip_destination_address_arr(2) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_2") downto field_lo(c_field_arr, "ip_destination_address_2"));
destinations_info_wr.ip_destination_address_arr(2) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_2") downto field_lo(c_field_arr, "ip_destination_address_2"));
sdp_bdo_destinations_wr.ip_destination_address_arr(3) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_3") downto field_lo(c_field_arr, "ip_destination_address_3"));
destinations_info_wr.ip_destination_address_arr(3) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_3") downto field_lo(c_field_arr, "ip_destination_address_3"));
sdp_bdo_destinations_wr.ip_destination_address_arr(4) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_4") downto field_lo(c_field_arr, "ip_destination_address_4"));
destinations_info_wr.ip_destination_address_arr(4) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_4") downto field_lo(c_field_arr, "ip_destination_address_4"));
sdp_bdo_destinations_wr.ip_destination_address_arr(5) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_5") downto field_lo(c_field_arr, "ip_destination_address_5"));
destinations_info_wr.ip_destination_address_arr(5) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_5") downto field_lo(c_field_arr, "ip_destination_address_5"));
sdp_bdo_destinations_wr.ip_destination_address_arr(6) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_6") downto field_lo(c_field_arr, "ip_destination_address_6"));
destinations_info_wr.ip_destination_address_arr(6) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_6") downto field_lo(c_field_arr, "ip_destination_address_6"));
sdp_bdo_destinations_wr.ip_destination_address_arr(7) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_7") downto field_lo(c_field_arr, "ip_destination_address_7"));
destinations_info_wr.ip_destination_address_arr(7) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_7") downto field_lo(c_field_arr, "ip_destination_address_7"));
sdp_bdo_destinations_wr.ip_destination_address_arr(8) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_8") downto field_lo(c_field_arr, "ip_destination_address_8"));
destinations_info_wr.ip_destination_address_arr(8) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_8") downto field_lo(c_field_arr, "ip_destination_address_8"));
sdp_bdo_destinations_wr.ip_destination_address_arr(9) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_9") downto field_lo(c_field_arr, "ip_destination_address_9"));
destinations_info_wr.ip_destination_address_arr(9) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_9") downto field_lo(c_field_arr, "ip_destination_address_9"));
sdp_bdo_destinations_wr.ip_destination_address_arr(10) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_10") downto field_lo(c_field_arr, "ip_destination_address_10"));
destinations_info_wr.ip_destination_address_arr(10) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_10") downto field_lo(c_field_arr, "ip_destination_address_10"));
sdp_bdo_destinations_wr.ip_destination_address_arr(11) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_11") downto field_lo(c_field_arr, "ip_destination_address_11"));
destinations_info_wr.ip_destination_address_arr(11) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_11") downto field_lo(c_field_arr, "ip_destination_address_11"));
sdp_bdo_destinations_wr.ip_destination_address_arr(12) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_12") downto field_lo(c_field_arr, "ip_destination_address_12"));
destinations_info_wr.ip_destination_address_arr(12) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_12") downto field_lo(c_field_arr, "ip_destination_address_12"));
sdp_bdo_destinations_wr.ip_destination_address_arr(13) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_13") downto field_lo(c_field_arr, "ip_destination_address_13"));
destinations_info_wr.ip_destination_address_arr(13) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_13") downto field_lo(c_field_arr, "ip_destination_address_13"));
sdp_bdo_destinations_wr.ip_destination_address_arr(14) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_14") downto field_lo(c_field_arr, "ip_destination_address_14"));
destinations_info_wr.ip_destination_address_arr(14) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_14") downto field_lo(c_field_arr, "ip_destination_address_14"));
sdp_bdo_destinations_wr.ip_destination_address_arr(15) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_15") downto field_lo(c_field_arr, "ip_destination_address_15"));
destinations_info_wr.ip_destination_address_arr(15) <= mm_fields_out(field_hi(c_field_arr, "ip_destination_address_15") downto field_lo(c_field_arr, "ip_destination_address_15"));
sdp_bdo_destinations_wr.udp_destination_port_arr(0) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_0") downto field_lo(c_field_arr, "udp_destination_port_0"));
destinations_info_wr.udp_destination_port_arr(0) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_0") downto field_lo(c_field_arr, "udp_destination_port_0"));
sdp_bdo_destinations_wr.udp_destination_port_arr(1) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_1") downto field_lo(c_field_arr, "udp_destination_port_1"));
destinations_info_wr.udp_destination_port_arr(1) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_1") downto field_lo(c_field_arr, "udp_destination_port_1"));
sdp_bdo_destinations_wr.udp_destination_port_arr(2) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_2") downto field_lo(c_field_arr, "udp_destination_port_2"));
destinations_info_wr.udp_destination_port_arr(2) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_2") downto field_lo(c_field_arr, "udp_destination_port_2"));
sdp_bdo_destinations_wr.udp_destination_port_arr(3) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_3") downto field_lo(c_field_arr, "udp_destination_port_3"));
destinations_info_wr.udp_destination_port_arr(3) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_3") downto field_lo(c_field_arr, "udp_destination_port_3"));
sdp_bdo_destinations_wr.udp_destination_port_arr(4) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_4") downto field_lo(c_field_arr, "udp_destination_port_4"));
destinations_info_wr.udp_destination_port_arr(4) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_4") downto field_lo(c_field_arr, "udp_destination_port_4"));
sdp_bdo_destinations_wr.udp_destination_port_arr(5) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_5") downto field_lo(c_field_arr, "udp_destination_port_5"));
destinations_info_wr.udp_destination_port_arr(5) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_5") downto field_lo(c_field_arr, "udp_destination_port_5"));
sdp_bdo_destinations_wr.udp_destination_port_arr(6) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_6") downto field_lo(c_field_arr, "udp_destination_port_6"));
destinations_info_wr.udp_destination_port_arr(6) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_6") downto field_lo(c_field_arr, "udp_destination_port_6"));
sdp_bdo_destinations_wr.udp_destination_port_arr(7) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_7") downto field_lo(c_field_arr, "udp_destination_port_7"));
destinations_info_wr.udp_destination_port_arr(7) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_7") downto field_lo(c_field_arr, "udp_destination_port_7"));
sdp_bdo_destinations_wr.udp_destination_port_arr(8) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_8") downto field_lo(c_field_arr, "udp_destination_port_8"));
destinations_info_wr.udp_destination_port_arr(8) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_8") downto field_lo(c_field_arr, "udp_destination_port_8"));
sdp_bdo_destinations_wr.udp_destination_port_arr(9) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_9") downto field_lo(c_field_arr, "udp_destination_port_9"));
destinations_info_wr.udp_destination_port_arr(9) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_9") downto field_lo(c_field_arr, "udp_destination_port_9"));
sdp_bdo_destinations_wr.udp_destination_port_arr(10) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_10") downto field_lo(c_field_arr, "udp_destination_port_10"));
destinations_info_wr.udp_destination_port_arr(10) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_10") downto field_lo(c_field_arr, "udp_destination_port_10"));
sdp_bdo_destinations_wr.udp_destination_port_arr(11) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_11") downto field_lo(c_field_arr, "udp_destination_port_11"));
destinations_info_wr.udp_destination_port_arr(11) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_11") downto field_lo(c_field_arr, "udp_destination_port_11"));
sdp_bdo_destinations_wr.udp_destination_port_arr(12) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_12") downto field_lo(c_field_arr, "udp_destination_port_12"));
destinations_info_wr.udp_destination_port_arr(12) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_12") downto field_lo(c_field_arr, "udp_destination_port_12"));
sdp_bdo_destinations_wr.udp_destination_port_arr(13) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_13") downto field_lo(c_field_arr, "udp_destination_port_13"));
destinations_info_wr.udp_destination_port_arr(13) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_13") downto field_lo(c_field_arr, "udp_destination_port_13"));
sdp_bdo_destinations_wr.udp_destination_port_arr(14) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_14") downto field_lo(c_field_arr, "udp_destination_port_14"));
destinations_info_wr.udp_destination_port_arr(14) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_14") downto field_lo(c_field_arr, "udp_destination_port_14"));
sdp_bdo_destinations_wr.udp_destination_port_arr(15) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_15") downto field_lo(c_field_arr, "udp_destination_port_15"));
destinations_info_wr.udp_destination_port_arr(15) <= mm_fields_out(field_hi(c_field_arr, "udp_destination_port_15") downto field_lo(c_field_arr, "udp_destination_port_15"));
sdp_bdo_destinations_wr.nof_destinations <= to_uint(mm_fields_out(field_hi(c_field_arr, "nof_destinations") downto field_lo(c_field_arr, "nof_destinations")));
destinations_info_wr.nof_destinations <= to_uint(mm_fields_out(field_hi(c_field_arr, "nof_destinations") downto field_lo(c_field_arr, "nof_destinations")));
-- Register the read only actual values, to ease timing closure
-- Register the read only actual values, to ease timing closure
p_dp_clk : process(dp_clk)
p_dp_clk : process(dp_clk)
constant c_look_up_table : t_natural_arr(1 to c_sdp_bdo_nof_destinations_max) :=
constant c_nof_blocks_per_packet_arr : t_natural_arr(1 to c_sdp_bdo_nof_destinations_max) :=
func_sdp_bdo_nof_blocks_per_packet_look_up_table;
func_sdp_bdo_nof_blocks_per_packet_look_up_table;
begin
begin
if rising_edge(dp_clk) then
if rising_edge(dp_clk) then
nof_destinations_act <= func_sdp_bdo_parse_nof_destinations(sdp_bdo_destinations_wr.nof_destinations);
nof_destinations_act <= func_sdp_bdo_parse_nof_destinations(destinations_info_wr.nof_destinations);
nof_blocks_per_packet_act <= c_look_up_table(nof_destinations_act);
nof_blocks_per_packet_act <= c_nof_blocks_per_packet_arr(nof_destinations_act);
end if;
end if;
end process;
end process;
end str;
end str;
Loading