Skip to content
Snippets Groups Projects
Commit 58e360b0 authored by Reinier van der Walle's avatar Reinier van der Walle
Browse files

added alignment

parent 2f53a5ae
No related branches found
No related tags found
No related merge requests found
...@@ -112,7 +112,7 @@ ARCHITECTURE str OF compaan_unb1_10g_bg_db IS ...@@ -112,7 +112,7 @@ ARCHITECTURE str OF compaan_unb1_10g_bg_db IS
CONSTANT c_use_1GbE : BOOLEAN := TRUE; CONSTANT c_use_1GbE : BOOLEAN := TRUE;
CONSTANT c_nof_streams : NATURAL := 1; CONSTANT c_nof_streams : NATURAL := 1;
CONSTANT c_nof_10GbE_streams : NATURAL := c_nof_streams; CONSTANT c_nof_10GbE_streams : NATURAL := c_nof_streams;
CONSTANT c_nof_bsn_mon_streams : NATURAL := 4; CONSTANT c_nof_bsn_mon_streams : NATURAL := 5;
CONSTANT c_data_w : NATURAL := 64; -- c_tech_tse_data_w; CONSTANT c_data_w : NATURAL := 64; -- c_tech_tse_data_w;
...@@ -133,14 +133,16 @@ ARCHITECTURE str OF compaan_unb1_10g_bg_db IS ...@@ -133,14 +133,16 @@ ARCHITECTURE str OF compaan_unb1_10g_bg_db IS
-- dp_offload_tx -- dp_offload_tx
-- . IP total length : 2948 (UDP total lenth) + 20 (Ip header length) = 2968 -- . IP total length : 2948 (UDP total lenth) + 20 (Ip header length) = 2968
-- . UDP total length: 8 (UDP header) + 20 (usr header) + 2920 (payload bytes) = 2948 -- 1488 -- . UDP total length: 8 (UDP header) + 20 (usr header) + 2920 (payload bytes) = 2948 -- 1488
CONSTANT c_nof_hdr_fields : NATURAL := 3+12+4+9; -- Total header bits = 512 CONSTANT c_ip_length : NATURAL := 2970;
CONSTANT c_udp_length : NATURAL := 2950;
CONSTANT c_nof_hdr_fields : NATURAL := 3+12+4+9+1; -- Total header bits = 512
CONSTANT c_hdr_field_arr : t_common_field_arr(c_nof_hdr_fields-1 DOWNTO 0) := ( ( field_name_pad("eth_dst_mac" ), " ", 48, field_default(0) ), CONSTANT c_hdr_field_arr : t_common_field_arr(c_nof_hdr_fields-1 DOWNTO 0) := ( ( field_name_pad("eth_dst_mac" ), " ", 48, field_default(0) ),
( field_name_pad("eth_src_mac" ), " ", 48, field_default(0) ), ( field_name_pad("eth_src_mac" ), " ", 48, field_default(0) ),
( field_name_pad("eth_type" ), " ", 16, field_default(x"0800") ), ( field_name_pad("eth_type" ), " ", 16, field_default(x"0800") ),
( field_name_pad("ip_version" ), " ", 4, field_default(4) ), ( field_name_pad("ip_version" ), " ", 4, field_default(4) ),
( field_name_pad("ip_header_length" ), " ", 4, field_default(5) ), ( field_name_pad("ip_header_length" ), " ", 4, field_default(5) ),
( field_name_pad("ip_services" ), " ", 8, field_default(0) ), ( field_name_pad("ip_services" ), " ", 8, field_default(0) ),
( field_name_pad("ip_total_length" ), " ", 16, field_default(2968) ), --1508) ), ( field_name_pad("ip_total_length" ), " ", 16, field_default(c_ip_length) ), --1508) ),
( field_name_pad("ip_identification" ), " ", 16, field_default(0) ), ( field_name_pad("ip_identification" ), " ", 16, field_default(0) ),
( field_name_pad("ip_flags" ), " ", 3, field_default(2) ), ( field_name_pad("ip_flags" ), " ", 3, field_default(2) ),
( field_name_pad("ip_fragment_offset" ), " ", 13, field_default(0) ), ( field_name_pad("ip_fragment_offset" ), " ", 13, field_default(0) ),
...@@ -151,7 +153,7 @@ ARCHITECTURE str OF compaan_unb1_10g_bg_db IS ...@@ -151,7 +153,7 @@ ARCHITECTURE str OF compaan_unb1_10g_bg_db IS
( field_name_pad("ip_dst_addr" ), " ", 32, field_default(0) ), ( field_name_pad("ip_dst_addr" ), " ", 32, field_default(0) ),
( field_name_pad("udp_src_port" ), " ", 16, field_default(0) ), ( field_name_pad("udp_src_port" ), " ", 16, field_default(0) ),
( field_name_pad("udp_dst_port" ), " ", 16, field_default(0) ), ( field_name_pad("udp_dst_port" ), " ", 16, field_default(0) ),
( field_name_pad("udp_total_length" ), " ", 16, field_default(2948) ), --1488) ), ( field_name_pad("udp_total_length" ), " ", 16, field_default(c_udp_length) ), --1488) ),
( field_name_pad("udp_checksum" ), " ", 16, field_default(0) ), ( field_name_pad("udp_checksum" ), " ", 16, field_default(0) ),
( field_name_pad("usr_sync" ), " ", 1, field_default(1) ), ( field_name_pad("usr_sync" ), " ", 1, field_default(1) ),
( field_name_pad("usr_bsn" ), " ", 60, field_default(0) ), ( field_name_pad("usr_bsn" ), " ", 60, field_default(0) ),
...@@ -161,16 +163,23 @@ ARCHITECTURE str OF compaan_unb1_10g_bg_db IS ...@@ -161,16 +163,23 @@ ARCHITECTURE str OF compaan_unb1_10g_bg_db IS
( field_name_pad("usr_hdr_field_3" ), " ", 33, field_default(0) ), ( field_name_pad("usr_hdr_field_3" ), " ", 33, field_default(0) ),
( field_name_pad("usr_hdr_field_4" ), " ", 5, field_default(0) ), ( field_name_pad("usr_hdr_field_4" ), " ", 5, field_default(0) ),
( field_name_pad("usr_hdr_field_5" ), " ", 8, field_default(0) ), ( field_name_pad("usr_hdr_field_5" ), " ", 8, field_default(0) ),
( field_name_pad("usr_hdr_field_6" ), " ", 27, field_default(0) ) ); ( field_name_pad("usr_hdr_field_6" ), " ", 27, field_default(0) ),
( field_name_pad("usr_hdr_word_align" ), " ", 16, field_default(0) ) );
CONSTANT c_hdr_field_ovr_init : STD_LOGIC_VECTOR(c_nof_hdr_fields-1 DOWNTO 0) := "111"&"111111111111"&"0011"&"101111111"; --CONSTANT c_hdr_field_arr : t_common_field_arr(c_nof_hdr_fields-1 DOWNTO 0) := c_hdr_field_rx_offload_arr(c_nof_hdr_fields-1 DOWNTO 0);
CONSTANT c_hdr_field_ovr_init : STD_LOGIC_VECTOR(c_nof_hdr_fields-1 DOWNTO 0) := "111"&"111111111111"&"0011"&"101111111"&"0";
CONSTANT c_fifo_size : NATURAL := 2*c_bg_block_size; CONSTANT c_fifo_size : NATURAL := 2*c_bg_block_size;
CONSTANT c_use_jumbo_frames : BOOLEAN := FALSE; CONSTANT c_use_jumbo_frames : BOOLEAN := FALSE;
CONSTANT c_def_1GbE_block_size : NATURAL := c_bg_block_size; CONSTANT c_def_1GbE_block_size : NATURAL := c_bg_block_size;
CONSTANT c_max_frame_len : NATURAL := sel_a_b(c_use_jumbo_frames, 9018, 2968); CONSTANT c_max_frame_len : NATURAL := sel_a_b(c_use_jumbo_frames, 9018, c_ip_length);
CONSTANT c_max_frame_nof_words : NATURAL := (c_max_frame_len * c_byte_w ) / c_data_w; CONSTANT c_max_frame_nof_words : NATURAL := (c_max_frame_len * c_byte_w ) / c_data_w;
CONSTANT c_nof_header_words : NATURAL := field_slv_len(c_hdr_field_arr) / c_data_w; CONSTANT c_nof_header_words : NATURAL := field_slv_len(c_hdr_field_arr) / c_data_w;
CONSTANT c_nof_header_bytes : NATURAL := field_slv_len(c_hdr_field_arr) / c_byte_w; CONSTANT c_nof_header_bytes : NATURAL := field_slv_len(c_hdr_field_arr) / c_byte_w;
...@@ -270,21 +279,12 @@ ARCHITECTURE str OF compaan_unb1_10g_bg_db IS ...@@ -270,21 +279,12 @@ ARCHITECTURE str OF compaan_unb1_10g_bg_db IS
SIGNAL dp_offload_tx_src_out_arr : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0); SIGNAL dp_offload_tx_src_out_arr : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0);
SIGNAL dp_offload_tx_src_in_arr : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0); SIGNAL dp_offload_tx_src_in_arr : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0);
SIGNAL dp_fifo_fill_src_out_arr : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0);
SIGNAL dp_fifo_fill_src_in_arr : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0);
SIGNAL dp_offload_rx_snk_in_arr : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0); SIGNAL dp_offload_rx_snk_in_arr : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0);
SIGNAL dp_offload_rx_snk_out_arr : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0); SIGNAL dp_offload_rx_snk_out_arr : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0);
SIGNAL dp_offload_rx_src_out_arr : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0); SIGNAL dp_offload_rx_src_out_arr : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0);
SIGNAL dp_offload_rx_src_in_arr : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0) := (OTHERS=> c_dp_siso_rdy); SIGNAL dp_offload_rx_src_in_arr : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0) := (OTHERS=> c_dp_siso_rdy);
SIGNAL dp_fifo_snk_in_arr : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0);
SIGNAL dp_fifo_snk_out_arr : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0) := (OTHERS=> c_dp_siso_rdy);
SIGNAL diag_data_buf_snk_in_arr : t_dp_sosi_arr(c_nof_streams-1 DOWNTO 0);
SIGNAL diag_data_buf_snk_out_arr : t_dp_siso_arr(c_nof_streams-1 DOWNTO 0);
SIGNAL bsn_monitor_snk_in_arr : t_dp_sosi_arr(c_nof_bsn_mon_streams-1 DOWNTO 0); SIGNAL bsn_monitor_snk_in_arr : t_dp_sosi_arr(c_nof_bsn_mon_streams-1 DOWNTO 0);
SIGNAL bsn_monitor_snk_out_arr : t_dp_siso_arr(c_nof_bsn_mon_streams-1 DOWNTO 0) := (OTHERS=> c_dp_siso_rdy); SIGNAL bsn_monitor_snk_out_arr : t_dp_siso_arr(c_nof_bsn_mon_streams-1 DOWNTO 0) := (OTHERS=> c_dp_siso_rdy);
...@@ -402,8 +402,8 @@ BEGIN ...@@ -402,8 +402,8 @@ BEGIN
src_in_arr => dp_offload_rx_snk_out_arr, src_in_arr => dp_offload_rx_snk_out_arr,
-- Data to be send by 10G -- Data to be send by 10G
snk_out_arr => dp_fifo_fill_src_in_arr, snk_out_arr => dp_offload_tx_src_in_arr,
snk_in_arr => dp_fifo_fill_src_out_arr, snk_in_arr => dp_offload_tx_src_out_arr,
-- Serial XAUI IO -- Serial XAUI IO
xaui_tx_arr => xaui_tx_arr, xaui_tx_arr => xaui_tx_arr,
...@@ -453,8 +453,8 @@ BEGIN ...@@ -453,8 +453,8 @@ BEGIN
rst => dp_rst, rst => dp_rst,
clk => dp_clk, clk => dp_clk,
-- ST sink (BG) -- ST sink (BG)
snk_out => dp_fifo_snk_out_arr(i), snk_out => block_gen_src_in_arr(i),
snk_in => dp_fifo_snk_in_arr(i), snk_in => block_gen_src_out_arr(i),
-- ST source (tx_offload) -- ST source (tx_offload)
src_in => dp_offload_tx_snk_out_arr(i), src_in => dp_offload_tx_snk_out_arr(i),
src_out => dp_offload_tx_snk_in_arr(i) src_out => dp_offload_tx_snk_in_arr(i)
...@@ -500,20 +500,6 @@ BEGIN ...@@ -500,20 +500,6 @@ BEGIN
hdr_fields_in_arr => hdr_fields_in_arr hdr_fields_in_arr => hdr_fields_in_arr
); );
u_dp_fifo_fill : ENTITY dp_lib.dp_fifo_fill
GENERIC MAP (
g_data_w => c_data_w,
g_fifo_fill => c_bg_block_size+16,
g_fifo_size => c_bg_block_size+16+10
)
PORT MAP (
rst => dp_rst,
clk => dp_clk,
snk_in => dp_offload_tx_src_out_arr(0),
snk_out => dp_offload_tx_src_in_arr(0),
src_in => dp_fifo_fill_src_in_arr(0),
src_out => dp_fifo_fill_src_out_arr(0)
);
gen_hdr_in_fields : FOR i IN 0 TO c_nof_streams-1 GENERATE gen_hdr_in_fields : FOR i IN 0 TO c_nof_streams-1 GENERATE
-- dst = src -- dst = src
...@@ -529,18 +515,9 @@ BEGIN ...@@ -529,18 +515,9 @@ BEGIN
hdr_fields_in_arr(i)(field_hi(c_hdr_field_arr, "usr_sync" ) DOWNTO field_lo(c_hdr_field_arr, "usr_sync" )) <= slv(block_gen_src_out_arr(i).sync); hdr_fields_in_arr(i)(field_hi(c_hdr_field_arr, "usr_sync" ) DOWNTO field_lo(c_hdr_field_arr, "usr_sync" )) <= slv(block_gen_src_out_arr(i).sync);
hdr_fields_in_arr(i)(field_hi(c_hdr_field_arr, "usr_bsn" ) DOWNTO field_lo(c_hdr_field_arr, "usr_bsn" )) <= block_gen_src_out_arr(i).bsn(59 DOWNTO 0); hdr_fields_in_arr(i)(field_hi(c_hdr_field_arr, "usr_bsn" ) DOWNTO field_lo(c_hdr_field_arr, "usr_bsn" )) <= block_gen_src_out_arr(i).bsn(59 DOWNTO 0);
END GENERATE;
----------------------------------------------------------------------------- hdr_fields_in_arr(i)(field_hi(c_hdr_field_arr, "usr_hdr_word_align") DOWNTO field_lo(c_hdr_field_arr, "usr_hdr_word_align" )) <= TO_UVEC(0, 16);
-- Connect BG and DB to dp_offload END GENERATE;
-----------------------------------------------------------------------------
-- BG --> Tx
dp_fifo_snk_in_arr <= block_gen_src_out_arr;
block_gen_src_in_arr <= dp_fifo_snk_out_arr;
-- Rx --> DB
diag_data_buf_snk_in_arr <= dp_offload_rx_src_out_arr;
dp_offload_rx_src_in_arr <= diag_data_buf_snk_out_arr;
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- RX: dp_offload_rx -- RX: dp_offload_rx
...@@ -596,16 +573,19 @@ BEGIN ...@@ -596,16 +573,19 @@ BEGIN
bsn_monitor_snk_in_arr(0) <= dp_offload_tx_snk_in_arr(0); bsn_monitor_snk_in_arr(0) <= dp_offload_tx_snk_in_arr(0);
bsn_monitor_snk_out_arr(0) <= dp_offload_tx_snk_out_arr(0); bsn_monitor_snk_out_arr(0) <= dp_offload_tx_snk_out_arr(0);
bsn_monitor_snk_in_arr(1) <= dp_fifo_fill_src_out_arr(0); bsn_monitor_snk_in_arr(1) <= dp_offload_tx_src_out_arr(0);
bsn_monitor_snk_out_arr(1) <= dp_fifo_fill_src_in_arr(0); bsn_monitor_snk_out_arr(1) <= dp_offload_tx_src_in_arr(0);
bsn_monitor_snk_in_arr(2) <= dp_offload_rx_snk_in_arr(0); bsn_monitor_snk_in_arr(2) <= dp_offload_rx_snk_in_arr(0);
bsn_monitor_snk_out_arr(2) <= dp_offload_rx_snk_out_arr(0); bsn_monitor_snk_out_arr(2) <= dp_offload_rx_snk_out_arr(0);
bsn_monitor_snk_in_arr(3) <= diag_data_buf_snk_in_arr(0); bsn_monitor_snk_in_arr(3) <= dp_offload_rx_src_out_arr(0);
bsn_monitor_snk_out_arr(3) <= diag_data_buf_snk_out_arr(0); bsn_monitor_snk_out_arr(3) <= dp_offload_rx_src_in_arr(0);
bsn_monitor_snk_in_arr(4) <= block_gen_src_out_arr(0);
bsn_monitor_snk_out_arr(4) <= block_gen_src_in_arr(0);
diag_data_buf_snk_out_arr <= (OTHERS=>c_dp_siso_rdy); dp_offload_rx_src_in_arr <= (OTHERS=>c_dp_siso_rdy);
u_diag_data_buffer : ENTITY diag_lib.mms_diag_data_buffer u_diag_data_buffer : ENTITY diag_lib.mms_diag_data_buffer
GENERIC MAP ( GENERIC MAP (
...@@ -625,8 +605,8 @@ BEGIN ...@@ -625,8 +605,8 @@ BEGIN
reg_data_buf_mosi => reg_diag_data_buffer_mosi, reg_data_buf_mosi => reg_diag_data_buffer_mosi,
reg_data_buf_miso => reg_diag_data_buffer_miso, reg_data_buf_miso => reg_diag_data_buffer_miso,
in_sync => diag_data_buf_snk_in_arr(0).sync, in_sync => dp_offload_rx_src_out_arr(0).sync,
in_sosi_arr => diag_data_buf_snk_in_arr in_sosi_arr => dp_offload_rx_src_out_arr
); );
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment