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

Support header - data block boundary at symbol level (for g_symbol_w <= g_data_w) via g_symbol_w.

parent b45e5fb2
No related branches found
No related tags found
1 merge request!190Resolve L2SDP-210
Pipeline #23631 passed
...@@ -19,21 +19,25 @@ ...@@ -19,21 +19,25 @@
-- --
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
-- Author: D. van der Schuur, E. Kooistra
-- Purpose: -- Purpose:
-- . Concatenate a user-defined header to a DP frame e.g. to create an Ethernet frame -- . Concatenate a user-defined header to a data block e.g. to create an Eth
-- frame
-- Description: -- Description:
-- . The header contents can be controlled dynamically by data path or MM control (selected by g_hdr_field_sel) -- . The dp_offload_tx_v3 --> dp_offload_rx form a pair.
-- . The header and data can be concatened at symbol level. The g_symbol_w defines the -- . The header contents can be controlled dynamically by data path or MM
-- resolution of the empty field. The g_data_w must be an integer multiple of the -- control (selected by g_hdr_field_sel)
-- g_symbol_w. If the empty field is not used or if the empty field is always 0 then -- . The header and data can be concatened at symbol level. The g_symbol_w
-- set g_symbol_w = g_data_w. -- defines the resolution of the empty field. The g_data_w must be an
-- . For example to concat header and data for an Ethernet frame use: -- integer multiple of the g_symbol_w. If the empty field is not used or
-- if the empty field is always 0 then set g_symbol_w = g_data_w.
-- . For example to concat header and data block for an Ethernet frame use:
-- - g_data_w = 32 (1GbE) or 64 (10GbE) -- - g_data_w = 32 (1GbE) or 64 (10GbE)
-- - g_symbol_w = c_byte_w = 8 if either the header or the data can have an -- - g_symbol_w = c_byte_w = 8 if either the header or the data block can
-- non-zero empty field, so when they are not a multiple of 4 bytes -- have an non-zero empty field, so when they are not a multiple of
-- (= 32b) or 8 bytes (= 64b). -- 4 bytes (= 32b) or 8 bytes (= 64b).
-- g_symbol_w = g_data_w if the empty field is always 0, so the number of bits in -- g_symbol_w = g_data_w if the empty field is always 0, so the number of
-- the header and data are an integer number of g_data_w. -- bits in the header and data are an integer number of g_data_w.
LIBRARY IEEE, common_lib, technology_lib, mm_lib; LIBRARY IEEE, common_lib, technology_lib, mm_lib;
...@@ -50,7 +54,7 @@ ENTITY dp_offload_tx_v3 IS ...@@ -50,7 +54,7 @@ ENTITY dp_offload_tx_v3 IS
g_nof_streams : NATURAL; g_nof_streams : NATURAL;
g_data_w : NATURAL; g_data_w : NATURAL;
g_symbol_w : NATURAL; g_symbol_w : NATURAL;
g_hdr_field_arr : t_common_field_arr; -- User defined header fields g_hdr_field_arr : t_common_field_arr; -- User defined header fields
g_hdr_field_sel : STD_LOGIC_VECTOR; -- For each header field, select the source: 0=data path, 1=MM controlled g_hdr_field_sel : STD_LOGIC_VECTOR; -- For each header field, select the source: 0=data path, 1=MM controlled
g_pipeline_ready : BOOLEAN := FALSE g_pipeline_ready : BOOLEAN := FALSE
); );
......
This diff is collapsed.
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