From ffa27fed4a24cff5dc76bcd57ed942d4a850521c Mon Sep 17 00:00:00 2001 From: Eric Kooistra <kooistra@astron.nl> Date: Mon, 21 Nov 2022 15:47:21 +0100 Subject: [PATCH] Add functions to map arr to one. --- libraries/base/dp/src/vhdl/dp_stream_pkg.vhd | 32 ++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/libraries/base/dp/src/vhdl/dp_stream_pkg.vhd b/libraries/base/dp/src/vhdl/dp_stream_pkg.vhd index 537d5871db..b502ddfd5f 100644 --- a/libraries/base/dp/src/vhdl/dp_stream_pkg.vhd +++ b/libraries/base/dp/src/vhdl/dp_stream_pkg.vhd @@ -272,6 +272,12 @@ PACKAGE dp_stream_pkg Is FUNCTION TO_DP_SOSI_UNSIGNED(sync, valid, sop, eop : STD_LOGIC; bsn, data, re, im, empty, channel, err : UNSIGNED) RETURN t_dp_sosi_unsigned; + -- Map between array and single element + FUNCTION TO_DP_ARR(sosi : t_dp_sosi) RETURN t_dp_sosi_arr; + FUNCTION TO_DP_ARR(siso : t_dp_siso) RETURN t_dp_siso_arr; + FUNCTION TO_DP_ONE(sosi_arr : t_dp_sosi_arr) RETURN t_dp_sosi; + FUNCTION TO_DP_ONE(siso_arr : t_dp_siso_arr) RETURN t_dp_siso; + -- Keep part of head data and combine part of tail data, use the other sosi from head_sosi FUNCTION func_dp_data_shift_first(head_sosi, tail_sosi : t_dp_sosi; symbol_w, nof_symbols_per_data, nof_symbols_from_tail : NATURAL) RETURN t_dp_sosi; -- Shift and combine part of previous data and this data, use the other sosi from prev_sosi @@ -638,6 +644,32 @@ PACKAGE BODY dp_stream_pkg IS RETURN v_sosi_unsigned; END TO_DP_SOSI_UNSIGNED; + -- Map between array and single element + FUNCTION TO_DP_ARR(sosi : t_dp_sosi) RETURN t_dp_sosi_arr IS + VARIABLE v_sosi_arr : t_dp_sosi_arr(0 DOWNTO 0) := (OTHERS => sosi); + BEGIN + RETURN v_sosi_arr; + END TO_DP_ARR; + + FUNCTION TO_DP_ARR(siso : t_dp_siso) RETURN t_dp_siso_arr IS + VARIABLE v_siso_arr : t_dp_siso_arr(0 DOWNTO 0) := (OTHERS => siso); + BEGIN + RETURN v_siso_arr; + END TO_DP_ARR; + + FUNCTION TO_DP_ONE(sosi_arr : t_dp_sosi_arr) RETURN t_dp_sosi IS + VARIABLE v_sosi : t_dp_sosi := sosi_arr(0); + BEGIN + RETURN v_sosi; + END TO_DP_ONE; + + FUNCTION TO_DP_ONE(siso_arr : t_dp_siso_arr) RETURN t_dp_siso IS + VARIABLE v_siso : t_dp_siso := siso_arr(0); + BEGIN + RETURN v_siso; + END TO_DP_ONE; + + -- Keep part of head data and combine part of tail data FUNCTION func_dp_data_shift_first(head_sosi, tail_sosi : t_dp_sosi; symbol_w, nof_symbols_per_data, nof_symbols_from_tail : NATURAL) RETURN t_dp_sosi IS VARIABLE vN : NATURAL := nof_symbols_per_data; -- GitLab