diff --git a/libraries/base/common/src/vhdl/common_pkg.vhd b/libraries/base/common/src/vhdl/common_pkg.vhd
index 3931d107704f9417e9ce3156c27593ebe36fb8a3..188735914bae5dd5a70013b1c2f387b3f8fbae74 100644
--- a/libraries/base/common/src/vhdl/common_pkg.vhd
+++ b/libraries/base/common/src/vhdl/common_pkg.vhd
@@ -18,13 +18,10 @@
 -- along with this program.  If not, see <http://www.gnu.org/licenses/>.
 --
 -------------------------------------------------------------------------------
-
 -- Author:
 -- . Eric Kooistra
 -- Purpose:
 -- . Collection of commonly used base funtions
--- Interface:
--- . [n/a]
 -- Description:
 -- . This is a package containing generic constants and functions.
 -- . More information can be found in the comments near the code.
@@ -413,7 +410,10 @@ PACKAGE common_pkg IS
   FUNCTION SUB_SVEC(l_vec : STD_LOGIC_VECTOR; r_vec : STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR;                   -- l_vec - r_vec, treat slv operands as signed,   slv output width is l_vec'LENGTH
   FUNCTION ADD_UVEC(l_vec : STD_LOGIC_VECTOR; r_vec : STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR;                   -- l_vec + r_vec, treat slv operands as unsigned, slv output width is l_vec'LENGTH
   FUNCTION SUB_UVEC(l_vec : STD_LOGIC_VECTOR; r_vec : STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR;                   -- l_vec - r_vec, treat slv operands as unsigned, slv output width is l_vec'LENGTH
-  
+
+  FUNCTION MULT_SVEC(l_vec : STD_LOGIC_VECTOR; r_vec : STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR;                  -- l_vec * r_vec, treat slv operands as signed,   slv output width is l_vec'LENGTH + r_vec'LENGTH
+  FUNCTION MULT_UVEC(l_vec : STD_LOGIC_VECTOR; r_vec : STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR;                  -- l_vec * r_vec, treat slv operands as unsigned, slv output width is l_vec'LENGTH + r_vec'LENGTH
+
   FUNCTION COMPLEX_MULT_REAL(a_re, a_im, b_re, b_im : INTEGER) RETURN INTEGER;  -- Calculate real part of complex multiplication: a_re*b_re - a_im*b_im 
   FUNCTION COMPLEX_MULT_IMAG(a_re, a_im, b_re, b_im : INTEGER) RETURN INTEGER;  -- Calculate imag part of complex multiplication: a_im*b_re + a_re*b_im 
   
@@ -2017,6 +2017,22 @@ PACKAGE BODY common_pkg IS
   BEGIN
     RETURN SUB_UVEC(l_vec, r_vec, l_vec'LENGTH);
   END;
+
+  FUNCTION MULT_SVEC(l_vec : STD_LOGIC_VECTOR; r_vec : STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR IS
+    CONSTANT c_product_w : NATURAL := l_vec'LENGTH + r_vec'LENGTH;
+    VARIABLE v_product : STD_LOGIC_VECTOR(c_product_w-1 DOWNTO 0);
+  BEGIN
+    v_product := STD_LOGIC_VECTOR(SIGNED(l_vec) * SIGNED(r_vec));
+    RETURN v_product;
+  END;
+
+  FUNCTION MULT_UVEC(l_vec : STD_LOGIC_VECTOR; r_vec : STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR IS
+    CONSTANT c_product_w : NATURAL := l_vec'LENGTH + r_vec'LENGTH;
+    VARIABLE v_product : STD_LOGIC_VECTOR(c_product_w-1 DOWNTO 0);
+  BEGIN
+    v_product := STD_LOGIC_VECTOR(UNSIGNED(l_vec) * UNSIGNED(r_vec));
+    RETURN v_product;
+  END;
   
   FUNCTION COMPLEX_MULT_REAL(a_re, a_im, b_re, b_im : INTEGER) RETURN INTEGER IS   
   BEGIN