diff options
Diffstat (limited to 'libraries/openieee/numeric_common.proto')
-rw-r--r-- | libraries/openieee/numeric_common.proto | 60 |
1 files changed, 36 insertions, 24 deletions
diff --git a/libraries/openieee/numeric_common.proto b/libraries/openieee/numeric_common.proto index a40e8a910..aa940e22f 100644 --- a/libraries/openieee/numeric_common.proto +++ b/libraries/openieee/numeric_common.proto @@ -37,41 +37,41 @@ -- Result index range is NEW_SIZE - 1 downto 0 (unless null array). -- For SIGNED, the sign of the result is the sign of ARG. - function "=" (L : UNSIGNED; R : UNSIGNED) return BOOLEAN; + function "=" (L, R : UNSIGNED) return BOOLEAN; function "=" (L : UNSIGNED; R : NATURAL) return BOOLEAN; function "=" (L : NATURAL; R : UNSIGNED) return BOOLEAN; - function "/=" (L : UNSIGNED; R : UNSIGNED) return BOOLEAN; + function "/=" (L, R : UNSIGNED) return BOOLEAN; function "/=" (L : UNSIGNED; R : NATURAL) return BOOLEAN; function "/=" (L : NATURAL; R : UNSIGNED) return BOOLEAN; - function "<" (L : UNSIGNED; R : UNSIGNED) return BOOLEAN; + function "<" (L, R : UNSIGNED) return BOOLEAN; function "<" (L : UNSIGNED; R : NATURAL) return BOOLEAN; function "<" (L : NATURAL; R : UNSIGNED) return BOOLEAN; - function "<=" (L : UNSIGNED; R : UNSIGNED) return BOOLEAN; + function "<=" (L, R : UNSIGNED) return BOOLEAN; function "<=" (L : UNSIGNED; R : NATURAL) return BOOLEAN; function "<=" (L : NATURAL; R : UNSIGNED) return BOOLEAN; - function ">" (L : UNSIGNED; R : UNSIGNED) return BOOLEAN; + function ">" (L, R : UNSIGNED) return BOOLEAN; function ">" (L : UNSIGNED; R : NATURAL) return BOOLEAN; function ">" (L : NATURAL; R : UNSIGNED) return BOOLEAN; - function ">=" (L : UNSIGNED; R : UNSIGNED) return BOOLEAN; + function ">=" (L, R : UNSIGNED) return BOOLEAN; function ">=" (L : UNSIGNED; R : NATURAL) return BOOLEAN; function ">=" (L : NATURAL; R : UNSIGNED) return BOOLEAN; - function "=" (L : SIGNED; R : SIGNED) return BOOLEAN; + function "=" (L, R : SIGNED) return BOOLEAN; function "=" (L : SIGNED; R : INTEGER) return BOOLEAN; function "=" (L : INTEGER; R : SIGNED) return BOOLEAN; - function "/=" (L : SIGNED; R : SIGNED) return BOOLEAN; + function "/=" (L, R : SIGNED) return BOOLEAN; function "/=" (L : SIGNED; R : INTEGER) return BOOLEAN; function "/=" (L : INTEGER; R : SIGNED) return BOOLEAN; - function "<" (L : SIGNED; R : SIGNED) return BOOLEAN; + function "<" (L, R : SIGNED) return BOOLEAN; function "<" (L : SIGNED; R : INTEGER) return BOOLEAN; function "<" (L : INTEGER; R : SIGNED) return BOOLEAN; - function "<=" (L : SIGNED; R : SIGNED) return BOOLEAN; + function "<=" (L, R : SIGNED) return BOOLEAN; function "<=" (L : SIGNED; R : INTEGER) return BOOLEAN; function "<=" (L : INTEGER; R : SIGNED) return BOOLEAN; - function ">" (L : SIGNED; R : SIGNED) return BOOLEAN; + function ">" (L, R : SIGNED) return BOOLEAN; function ">" (L : SIGNED; R : INTEGER) return BOOLEAN; function ">" (L : INTEGER; R : SIGNED) return BOOLEAN; - function ">=" (L : SIGNED; R : SIGNED) return BOOLEAN; + function ">=" (L, R : SIGNED) return BOOLEAN; function ">=" (L : SIGNED; R : INTEGER) return BOOLEAN; function ">=" (L : INTEGER; R : SIGNED) return BOOLEAN; -- Issue a warning in case of non-logical value. @@ -84,10 +84,10 @@ -- Compute abs ARG. -- Result index range is Arg'length - 1 downto 0. - function "+" (L : UNSIGNED; R : UNSIGNED) return UNSIGNED; - function "+" (L : SIGNED; R : SIGNED) return SIGNED; - function "-" (L : UNSIGNED; R : UNSIGNED) return UNSIGNED; - function "-" (L : SIGNED; R : SIGNED) return SIGNED; + function "+" (L, R : UNSIGNED) return UNSIGNED; + function "+" (L, R : SIGNED) return SIGNED; + function "-" (L, R : UNSIGNED) return UNSIGNED; + function "-" (L, R : SIGNED) return SIGNED; -- Compute L +/- R. -- Result index range is max (L'Length, R'Length) - 1 downto 0. -- Issue a warning in case of non-logical value. @@ -106,8 +106,8 @@ -- Issue a warning in case of non-logical value. -- Issue a warning if value is truncated. - function "*" (L : UNSIGNED; R : UNSIGNED) return UNSIGNED; - function "*" (L : SIGNED; R : SIGNED) return SIGNED; + function "*" (L, R : UNSIGNED) return UNSIGNED; + function "*" (L, R : SIGNED) return SIGNED; -- Compute L * R -- Result index range is L'Length + R'Length - 1 downto 0. @@ -121,12 +121,12 @@ -- Compute L * R -- L is converted to a vector of length R'length - function "/" (L : UNSIGNED; R : UNSIGNED) return UNSIGNED; - function "/" (L : SIGNED; R : SIGNED) return SIGNED; - function "rem" (L : UNSIGNED; R : UNSIGNED) return UNSIGNED; - function "rem" (L : SIGNED; R : SIGNED) return SIGNED; - function "mod" (L : UNSIGNED; R : UNSIGNED) return UNSIGNED; - function "mod" (L : SIGNED; R : SIGNED) return SIGNED; + function "/" (L, R : UNSIGNED) return UNSIGNED; + function "/" (L, R : SIGNED) return SIGNED; + function "rem" (L, R : UNSIGNED) return UNSIGNED; + function "rem" (L, R : SIGNED) return SIGNED; + function "mod" (L, R : UNSIGNED) return UNSIGNED; + function "mod" (L, R : SIGNED) return SIGNED; -- Compute L op R -- Result index range is L'Length - 1 downto 0. -- Issue a warning in case of non-logical value. @@ -188,3 +188,15 @@ function rotate_right (ARG : UNSIGNED; COUNT: NATURAL) return UNSIGNED; function rotate_right (ARG : SIGNED; COUNT: NATURAL) return SIGNED; -- Result index range is ARG'Length - 1 downto 0. + + function "sll" (ARG : UNSIGNED; COUNT: INTEGER) return UNSIGNED; + function "sll" (ARG : SIGNED; COUNT: INTEGER) return SIGNED; + function "srl" (ARG : UNSIGNED; COUNT: INTEGER) return UNSIGNED; + function "srl" (ARG : SIGNED; COUNT: INTEGER) return SIGNED; + -- Result index range is ARG'Length - 1 downto 0. + + function "rol" (ARG : UNSIGNED; COUNT: INTEGER) return UNSIGNED; + function "rol" (ARG : SIGNED; COUNT: INTEGER) return SIGNED; + function "ror" (ARG : UNSIGNED; COUNT: INTEGER) return UNSIGNED; + function "ror" (ARG : SIGNED; COUNT: INTEGER) return SIGNED; + -- Result index range is ARG'Length - 1 downto 0. |