From 0d4b4b1baf8fedd4812e64786df6077ebb57ab0f Mon Sep 17 00:00:00 2001
From: Reinier van der Walle <walle@astron.nl>
Date: Thu, 24 Jun 2021 16:00:38 +0200
Subject: [PATCH] improved description of dp_fifo_core_arr

---
 .../base/dp/src/vhdl/dp_fifo_core_arr.vhd     | 27 +++++++++----------
 1 file changed, 12 insertions(+), 15 deletions(-)

diff --git a/libraries/base/dp/src/vhdl/dp_fifo_core_arr.vhd b/libraries/base/dp/src/vhdl/dp_fifo_core_arr.vhd
index bf5fcd921e..83964e22b6 100644
--- a/libraries/base/dp/src/vhdl/dp_fifo_core_arr.vhd
+++ b/libraries/base/dp/src/vhdl/dp_fifo_core_arr.vhd
@@ -26,24 +26,22 @@
 --   Pass sop and eop along with the data through the FIFO if g_use_ctrl=TRUE.
 --   Default the RL=1, use g_fifo_rl=0 for a the show ahead FIFO.
 -- Description:
---   Provide the sink ready for FIFO write control and use source ready for
---   FIFO read access. The sink ready output is derived from FIFO almost full.
---   Data without framing can use g_use_ctrl=FALSE to avoid implementing two
---   data bits for sop and eop in the FIFO word width. Idem for g_use_sync,
---   g_use_empty, g_use_channel, g_use_error and g_use_aux.
+--   Similar to dp_fifo_core but for multiple synchronous inputs. All data fields
+--   of the in sosi's are concatenated in addition to the the control signals of 
+--   in_sosi_arr(0) and in_aux. So the control signals of in_sosi_arr(1 TO g_nof_streams-1) 
+--   are not used. It is useful to have dp_fifo_core_arr to ensure that all inputs
+--   are crossed over to the rd_clk domain on the same clock cycle, this cannot
+--   be guaranteed when using multiple dp_fifo_core instances. For single clock, 
+--   dp_fifo_core_arr is also useful as it saves logic on the control signals since
+--   it only uses the control signals of in_sosi_arr(0).
 -- Remark:
--- . The bsn, empty, channel and error fields are valid at the sop and or eop.
---   Therefore alternatively these fields can be passed on through a separate
---   FIFO, with only one entry per frame, to save FIFO memory in case
---   concatenating them makes the FIFO word width larger than a standard
---   memory data word width.
--- . The FIFO makes that the src_in.ready and snk_out.ready are not
---   combinatorially connected, so this can ease the timing closure for the
---   ready signal.
+-- . dp_fifo_core_arr is not built on top of dp_fifo_core as the input of dp_fifo_core
+--   is of type t_dp_sosi which has a limited size and could cause issues when concatenating
+--   multiple input streams. 
 -- . It is assumed all inputs are synchronous (identical control signals).
 --   If the inputs are asynchronous, better use multiple instances of 
 --   dp_fifo_core.
--- . It is possible to use additonal signals to the fifo using in_aux/out_aux.
+-- . It is possible to add additonal signals to the fifo using in_aux/out_aux.
 
 LIBRARY IEEE, common_lib, technology_lib;
 USE IEEE.STD_LOGIC_1164.ALL;
@@ -307,5 +305,4 @@ BEGIN
     src_out   => out_aux_sosi
   );
 
-
 END str;
-- 
GitLab