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

Add nof_destinations_max register field.

parent 5023bb29
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...
...@@ -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;
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