From f17dbbb3c84153609170705c27a2cde6045c9aae Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Wed, 12 Jan 2022 15:19:45 +0100
Subject: [PATCH] Added g_symbol_w support.

---
 libraries/base/dp/src/vhdl/dp_offload_rx.vhd | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/libraries/base/dp/src/vhdl/dp_offload_rx.vhd b/libraries/base/dp/src/vhdl/dp_offload_rx.vhd
index 9effa4c7f3..59e71bb079 100644
--- a/libraries/base/dp/src/vhdl/dp_offload_rx.vhd
+++ b/libraries/base/dp/src/vhdl/dp_offload_rx.vhd
@@ -31,6 +31,7 @@ ENTITY dp_offload_rx IS
   GENERIC (
     g_nof_streams   : NATURAL;
     g_data_w        : NATURAL;
+    g_symbol_w      : NATURAL := 0;   -- default 0 yields g_symbol_w = g_data_w
     g_hdr_field_arr : t_common_field_arr;
     g_remove_crc    : BOOLEAN := FALSE;
     g_crc_nof_words : NATURAL := 0
@@ -59,7 +60,8 @@ END dp_offload_rx;
 
 ARCHITECTURE str OF dp_offload_rx IS 
 
-  CONSTANT c_nof_header_words         : NATURAL := field_slv_len(g_hdr_field_arr) / g_data_w;
+  CONSTANT c_symbol_w                 : NATURAL := sel_a_b(g_symbol_w = 0, g_data_w, g_symbol_w);
+  CONSTANT c_nof_header_symbols       : NATURAL := field_slv_len(g_hdr_field_arr) / c_symbol_w;
 
   CONSTANT c_field_sel                 : STD_LOGIC_VECTOR(g_hdr_field_arr'RANGE) := (OTHERS=>'0');-- Not used in sink mode but requires set range
 
@@ -92,8 +94,8 @@ BEGIN
     u_dp_split : ENTITY work.dp_split 
     GENERIC MAP (
       g_data_w        => g_data_w,
-      g_symbol_w      => g_data_w,
-      g_nof_symbols   => c_nof_header_words
+      g_symbol_w      => c_symbol_w,
+      g_nof_symbols   => c_nof_header_symbols
     )
     PORT MAP (
       rst         => dp_rst,
-- 
GitLab