git-svn-id: http://moon:8086/svn/vhdl/trunk@1048 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2014-07-23 20:08:46 +00:00
parent 87298253d2
commit 4430b4eb37
2 changed files with 2243 additions and 2243 deletions
+322 -322
View File
@@ -1,322 +1,322 @@
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
package fixed_ja is
type ufixed_t is array (integer range <>) of STD_LOGIC;
type sfixed_t is array (integer range <>) of STD_LOGIC;
type ufixed_array_t is array (natural range <>, integer range <>) of STD_LOGIC;
type sfixed_array_t is array (natural range <>, integer range <>) of STD_LOGIC;
type round_mode_t is (none, round_to_zero, round_pos_infinity, round_neg_infinity, round_half_up, round_half_down, round_nearest, round_convergent);
type saturate_mode_t is (none, saturate);
-- Declare functions and procedure
constant ASSERT_NO_WARN : boolean := false;
constant default_round_mode : round_mode_t := none;
constant default_saturate_mode : saturate_mode_t := none;
-- null array constants
constant NAUF : ufixed_t (0 downto 1) := (others => '0');
constant NASF : sfixed_t (0 downto 1) := (others => '0');
constant NSLV : STD_LOGIC_VECTOR (0 downto 1) := (others => '0');
-- Constructor helpers
-- Use: variable v8u2 : ufixed_t(ufixed(8,2)'range);
function uproto (nbits : integer; nbits_int : integer) return ufixed_t;
-- Use: variable v8s2 : sfixed_t(sfixed(8,2)'range);
function sproto (nbits : integer; nbits_int : integer) return sfixed_t;
function uproto (a : ufixed_t; op : character; b : ufixed_t) return ufixed_t;
function sproto (a : sfixed_t; op : character; b : sfixed_t) return sfixed_t;
-- Conversion Functions
function to_ufixed(src : ufixed_t) return ufixed_t;
function to_sfixed(src : sfixed_t) return sfixed_t;
function to_ufixed(src : sfixed_t) return ufixed_t;
function to_sfixed(src : ufixed_t) return sfixed_t;
function to_ufixed
(
src : ufixed_t;
nbits : integer;
nbits_int : integer;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return ufixed_t;
function to_ufixed
(
src : ufixed_t;
proto : ufixed_t;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return ufixed_t;
function to_sfixed
(
src : sfixed_t;
nbits : integer;
nbits_int : integer;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return sfixed_t;
function to_sfixed
(
src : sfixed_t;
proto : sfixed_t;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return sfixed_t;
-- fixed <= integer
function to_ufixed (src : integer; nbits : integer; nbits_int : integer) return ufixed_t;
function to_ufixed (src : integer; proto : ufixed_t) return ufixed_t;
-- fixed <= integer
function to_sfixed (src : integer; nbits : integer; nbits_int : integer) return sfixed_t;
function to_sfixed (src : integer; proto : sfixed_t) return sfixed_t;
-- ufixed <= unsigned
function to_ufixed (src : unsigned; nbits : integer; nbits_int : integer) return ufixed_t;
function to_ufixed (src : unsigned; proto : ufixed_t) return ufixed_t;
-- sfixed <= signed
function to_sfixed (src : signed; nbits : integer; nbits_int : integer) return sfixed_t;
function to_sfixed (src : signed; proto : sfixed_t) return sfixed_t;
-- fixed <= slv
function to_ufixed (src : STD_LOGIC_VECTOR; nbits : integer; nbits_int : integer) return ufixed_t;
function to_ufixed (src : STD_LOGIC_VECTOR; proto : ufixed_t) return ufixed_t;
function to_sfixed (src : STD_LOGIC_VECTOR; nbits : integer; nbits_int : integer) return sfixed_t;
function to_sfixed (src : STD_LOGIC_VECTOR; proto : sfixed_t) return sfixed_t;
-- ufixed <= real
function to_ufixed
(
src : real;
nbits : integer;
nbits_int : integer;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return ufixed_t;
function to_ufixed
(
src : real;
proto : ufixed_t;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return ufixed_t;
-- sfixed <= real
function to_sfixed
(
src : real;
nbits : integer;
nbits_int : integer;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return sfixed_t;
function to_sfixed
(
src : real;
proto : sfixed_t;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return sfixed_t;
-- Slicing functions for unconstrained array types
function to_ufixed(src : ufixed_array_t; index : integer) return ufixed_t;
function to_sfixed(src : sfixed_array_t; index : integer) return sfixed_t;
-- ufixed <= string
function to_ufixed (src : string) return ufixed_t;
-- sfixed <= string
function to_sfixed (src : string) return sfixed_t;
-- real <= ufixed
function to_real(src : ufixed_t) return real;
-- real <= sfixed
function to_real(src : sfixed_t) return real;
-- slv <= ufixed
function to_slv(src : ufixed_t) return std_logic_vector;
-- slv <= sfixed
function to_slv(src : sfixed_t) return std_logic_vector;
-- UNSIGNED <= ufixed
function to_unsigned (src : ufixed_t) return UNSIGNED;
-- SIGNED <= sfixed
function to_signed (src : sfixed_t) return SIGNED;
-- integer <= ufixed
function to_integer (src : ufixed_t) return integer;
-- integer <= sfixed
function to_integer (src : sfixed_t) return integer;
function to_string(src : ufixed_t) return string;
function to_string(src : sfixed_t) return string;
function to_string(src : std_logic_vector) return string;
-------------------------------------------------------------
-- Arithmetic shift left
-------------------------------------------------------------
function "sla" (src : ufixed_t; count : integer) return ufixed_t;
function "sla" (src : sfixed_t; count : integer) return sfixed_t;
-------------------------------------------------------------
-- Arithmetic shift right
-------------------------------------------------------------
function "sra" (src : ufixed_t; count : integer) return ufixed_t;
function "sra" (src : sfixed_t; count : integer) return sfixed_t;
-------------------------------------------------------------
-- Multiplication
-------------------------------------------------------------
function "*" (a : ufixed_t; b : ufixed_t) return ufixed_t;
function "*" (a : sfixed_t; b : sfixed_t) return sfixed_t;
function "*" (a : ufixed_t; b : sfixed_t) return sfixed_t;
function "*" (a : sfixed_t; b : ufixed_t) return sfixed_t;
-------------------------------------------------------------
-- Sum
-------------------------------------------------------------
function "+" (a : ufixed_t; b : integer) return ufixed_t;
function "+" (a : sfixed_t; b : integer) return sfixed_t;
function "+" (a : ufixed_t; b : unsigned) return ufixed_t;
function "+" (a : sfixed_t; b : signed) return sfixed_t;
function "+" (a : ufixed_t; b : ufixed_t) return ufixed_t;
function "+" (a : sfixed_t; b : sfixed_t) return sfixed_t;
function "+" (a : ufixed_t; b : sfixed_t) return sfixed_t;
function "+" (a : sfixed_t; b : ufixed_t) return sfixed_t;
function "+" (a : ufixed_t; b : std_logic) return ufixed_t;
function "+" (a : sfixed_t; b : std_logic) return sfixed_t;
-------------------------------------------------------------
-- Difference
-------------------------------------------------------------
function "-" (a : ufixed_t; b : integer) return ufixed_t;
function "-" (a : sfixed_t; b : integer) return sfixed_t;
function "-" (a : ufixed_t; b : unsigned) return ufixed_t;
function "-" (a : sfixed_t; b : signed) return sfixed_t;
function "-" (a : ufixed_t; b : ufixed_t) return ufixed_t;
function "-" (a : sfixed_t; b : sfixed_t) return sfixed_t;
function "-" (a : ufixed_t; b : sfixed_t) return sfixed_t;
function "-" (a : sfixed_t; b : ufixed_t) return sfixed_t;
function "-" (a : ufixed_t; b : std_logic) return ufixed_t;
function "-" (a : sfixed_t; b : std_logic) return sfixed_t;
-------------------------------------------------------------
-- Equality
-------------------------------------------------------------
function "=" (a : ufixed_t; b : ufixed_t) return boolean;
function "=" (a : sfixed_t; b : sfixed_t) return boolean;
function "=" (a : ufixed_t; b : sfixed_t) return boolean;
function "=" (a : sfixed_t; b : ufixed_t) return boolean;
-------------------------------------------------------------
-- Inequality
-------------------------------------------------------------
function "/=" (a : ufixed_t; b : ufixed_t) return boolean;
function "/=" (a : sfixed_t; b : sfixed_t) return boolean;
function "/=" (a : ufixed_t; b : sfixed_t) return boolean;
function "/=" (a : sfixed_t; b : ufixed_t) return boolean;
-------------------------------------------------------------
-- Less than
-------------------------------------------------------------
function "<" (a : ufixed_t; b : ufixed_t) return boolean;
function "<" (a : sfixed_t; b : sfixed_t) return boolean;
function "<" (a : ufixed_t; b : sfixed_t) return boolean;
function "<" (a : sfixed_t; b : ufixed_t) return boolean;
-------------------------------------------------------------
-- Greater than
-------------------------------------------------------------
function ">" (a : ufixed_t; b : ufixed_t) return boolean;
function ">" (a : sfixed_t; b : sfixed_t) return boolean;
function ">" (a : ufixed_t; b : sfixed_t) return boolean;
function ">" (a : sfixed_t; b : ufixed_t) return boolean;
-------------------------------------------------------------
-- Less or equal than
-------------------------------------------------------------
function "<=" (a : ufixed_t; b : ufixed_t) return boolean;
function "<=" (a : sfixed_t; b : sfixed_t) return boolean;
function "<=" (a : ufixed_t; b : sfixed_t) return boolean;
function "<=" (a : sfixed_t; b : ufixed_t) return boolean;
-------------------------------------------------------------
-- Greater or equal than
-------------------------------------------------------------
function ">=" (a : ufixed_t; b : ufixed_t) return boolean;
function ">=" (a : sfixed_t; b : sfixed_t) return boolean;
function ">=" (a : ufixed_t; b : sfixed_t) return boolean;
function ">=" (a : sfixed_t; b : ufixed_t) return boolean;
-------------------------------------------------------------
-- Unary Arithmetic Operators
-------------------------------------------------------------
function "abs" (src : sfixed_t) return sfixed_t;
function "-" (src : ufixed_t) return sfixed_t;
function "-" (src : sfixed_t) return sfixed_t;
-------------------------------------------------------------
-- Misc. Operators
-------------------------------------------------------------
function ipart (src : ufixed_t) return ufixed_t;
function fpart (src : ufixed_t) return ufixed_t;
function ipart (src : sfixed_t) return sfixed_t;
function fpart (src : sfixed_t) return sfixed_t;
-------------------------------------------------------------
-- Print function
-------------------------------------------------------------
procedure print_info(src : in ufixed_t; prefix : in string);
procedure print_info(src : in sfixed_t; prefix : in string);
procedure print_info(src : in string; prefix : in string);
-------------------------------------------------------------
-- Helpers
-------------------------------------------------------------
function cmsb(src : ufixed_t) return integer;
function clsb(src : ufixed_t) return integer;
function MIN (X, Y: INTEGER) return INTEGER;
function MAX (X, Y: INTEGER) return INTEGER;
function "MOD" (X, Y: in REAL ) return REAL;
function ipart(src : real) return real;
function fpart(src : real) return real;
function and_red(arg : ufixed_t) return STD_ULOGIC;
function nand_red(arg : ufixed_t) return STD_ULOGIC;
function or_red(arg : ufixed_t) return STD_ULOGIC;
function nor_red(arg : ufixed_t) return STD_ULOGIC;
function xor_red(arg : ufixed_t) return STD_ULOGIC;
function xnor_red(arg : ufixed_t) return STD_ULOGIC;
function and_red(arg : sfixed_t) return STD_ULOGIC;
function nand_red(arg : sfixed_t) return STD_ULOGIC;
function or_red(arg : sfixed_t) return STD_ULOGIC;
function nor_red(arg : sfixed_t) return STD_ULOGIC;
function xor_red(arg : sfixed_t) return STD_ULOGIC;
function xnor_red(arg : sfixed_t) return STD_ULOGIC;
--------------------------------------------------------------
end; -- package fixed_ja;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
package fixed_ja is
type ufixed_t is array (integer range <>) of STD_LOGIC;
type sfixed_t is array (integer range <>) of STD_LOGIC;
type ufixed_array_t is array (natural range <>, integer range <>) of STD_LOGIC;
type sfixed_array_t is array (natural range <>, integer range <>) of STD_LOGIC;
type round_mode_t is (none, round_to_zero, round_pos_infinity, round_neg_infinity, round_half_up, round_half_down, round_nearest, round_convergent);
type saturate_mode_t is (none, saturate);
-- Declare functions and procedure
constant ASSERT_NO_WARN : boolean := false;
constant default_round_mode : round_mode_t := none;
constant default_saturate_mode : saturate_mode_t := none;
-- null array constants
constant NAUF : ufixed_t (0 downto 1) := (others => '0');
constant NASF : sfixed_t (0 downto 1) := (others => '0');
constant NSLV : STD_LOGIC_VECTOR (0 downto 1) := (others => '0');
-- Constructor helpers
-- Use: variable v8u2 : ufixed_t(ufixed(8,2)'range);
function uproto (nbits : integer; nbits_int : integer) return ufixed_t;
-- Use: variable v8s2 : sfixed_t(sfixed(8,2)'range);
function sproto (nbits : integer; nbits_int : integer) return sfixed_t;
function uproto (a : ufixed_t; op : character; b : ufixed_t) return ufixed_t;
function sproto (a : sfixed_t; op : character; b : sfixed_t) return sfixed_t;
-- Conversion Functions
function to_ufixed(src : ufixed_t) return ufixed_t;
function to_sfixed(src : sfixed_t) return sfixed_t;
function to_ufixed(src : sfixed_t) return ufixed_t;
function to_sfixed(src : ufixed_t) return sfixed_t;
function to_ufixed
(
src : ufixed_t;
nbits : integer;
nbits_int : integer;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return ufixed_t;
function to_ufixed
(
src : ufixed_t;
proto : ufixed_t;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return ufixed_t;
function to_sfixed
(
src : sfixed_t;
nbits : integer;
nbits_int : integer;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return sfixed_t;
function to_sfixed
(
src : sfixed_t;
proto : sfixed_t;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return sfixed_t;
-- fixed <= integer
function to_ufixed (src : integer; nbits : integer; nbits_int : integer) return ufixed_t;
function to_ufixed (src : integer; proto : ufixed_t) return ufixed_t;
-- fixed <= integer
function to_sfixed (src : integer; nbits : integer; nbits_int : integer) return sfixed_t;
function to_sfixed (src : integer; proto : sfixed_t) return sfixed_t;
-- ufixed <= unsigned
function to_ufixed (src : unsigned; nbits : integer; nbits_int : integer) return ufixed_t;
function to_ufixed (src : unsigned; proto : ufixed_t) return ufixed_t;
-- sfixed <= signed
function to_sfixed (src : signed; nbits : integer; nbits_int : integer) return sfixed_t;
function to_sfixed (src : signed; proto : sfixed_t) return sfixed_t;
-- fixed <= slv
function to_ufixed (src : STD_LOGIC_VECTOR; nbits : integer; nbits_int : integer) return ufixed_t;
function to_ufixed (src : STD_LOGIC_VECTOR; proto : ufixed_t) return ufixed_t;
function to_sfixed (src : STD_LOGIC_VECTOR; nbits : integer; nbits_int : integer) return sfixed_t;
function to_sfixed (src : STD_LOGIC_VECTOR; proto : sfixed_t) return sfixed_t;
-- ufixed <= real
function to_ufixed
(
src : real;
nbits : integer;
nbits_int : integer;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return ufixed_t;
function to_ufixed
(
src : real;
proto : ufixed_t;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return ufixed_t;
-- sfixed <= real
function to_sfixed
(
src : real;
nbits : integer;
nbits_int : integer;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return sfixed_t;
function to_sfixed
(
src : real;
proto : sfixed_t;
rnd_mode : round_mode_t := default_round_mode;
sat_mode : saturate_mode_t := default_saturate_mode
) return sfixed_t;
-- Slicing functions for unconstrained array types
function to_ufixed(src : ufixed_array_t; index : integer) return ufixed_t;
function to_sfixed(src : sfixed_array_t; index : integer) return sfixed_t;
-- ufixed <= string
function to_ufixed (src : string) return ufixed_t;
-- sfixed <= string
function to_sfixed (src : string) return sfixed_t;
-- real <= ufixed
function to_real(src : ufixed_t) return real;
-- real <= sfixed
function to_real(src : sfixed_t) return real;
-- slv <= ufixed
function to_slv(src : ufixed_t) return std_logic_vector;
-- slv <= sfixed
function to_slv(src : sfixed_t) return std_logic_vector;
-- UNSIGNED <= ufixed
function to_unsigned (src : ufixed_t) return UNSIGNED;
-- SIGNED <= sfixed
function to_signed (src : sfixed_t) return SIGNED;
-- integer <= ufixed
function to_integer (src : ufixed_t) return integer;
-- integer <= sfixed
function to_integer (src : sfixed_t) return integer;
function to_string(src : ufixed_t) return string;
function to_string(src : sfixed_t) return string;
function to_string(src : std_logic_vector) return string;
-------------------------------------------------------------
-- Arithmetic shift left
-------------------------------------------------------------
function "sla" (src : ufixed_t; count : integer) return ufixed_t;
function "sla" (src : sfixed_t; count : integer) return sfixed_t;
-------------------------------------------------------------
-- Arithmetic shift right
-------------------------------------------------------------
function "sra" (src : ufixed_t; count : integer) return ufixed_t;
function "sra" (src : sfixed_t; count : integer) return sfixed_t;
-------------------------------------------------------------
-- Multiplication
-------------------------------------------------------------
function "*" (a : ufixed_t; b : ufixed_t) return ufixed_t;
function "*" (a : sfixed_t; b : sfixed_t) return sfixed_t;
function "*" (a : ufixed_t; b : sfixed_t) return sfixed_t;
function "*" (a : sfixed_t; b : ufixed_t) return sfixed_t;
-------------------------------------------------------------
-- Sum
-------------------------------------------------------------
function "+" (a : ufixed_t; b : integer) return ufixed_t;
function "+" (a : sfixed_t; b : integer) return sfixed_t;
function "+" (a : ufixed_t; b : unsigned) return ufixed_t;
function "+" (a : sfixed_t; b : signed) return sfixed_t;
function "+" (a : ufixed_t; b : ufixed_t) return ufixed_t;
function "+" (a : sfixed_t; b : sfixed_t) return sfixed_t;
function "+" (a : ufixed_t; b : sfixed_t) return sfixed_t;
function "+" (a : sfixed_t; b : ufixed_t) return sfixed_t;
function "+" (a : ufixed_t; b : std_logic) return ufixed_t;
function "+" (a : sfixed_t; b : std_logic) return sfixed_t;
-------------------------------------------------------------
-- Difference
-------------------------------------------------------------
function "-" (a : ufixed_t; b : integer) return ufixed_t;
function "-" (a : sfixed_t; b : integer) return sfixed_t;
function "-" (a : ufixed_t; b : unsigned) return ufixed_t;
function "-" (a : sfixed_t; b : signed) return sfixed_t;
function "-" (a : ufixed_t; b : ufixed_t) return ufixed_t;
function "-" (a : sfixed_t; b : sfixed_t) return sfixed_t;
function "-" (a : ufixed_t; b : sfixed_t) return sfixed_t;
function "-" (a : sfixed_t; b : ufixed_t) return sfixed_t;
function "-" (a : ufixed_t; b : std_logic) return ufixed_t;
function "-" (a : sfixed_t; b : std_logic) return sfixed_t;
-------------------------------------------------------------
-- Equality
-------------------------------------------------------------
function "=" (a : ufixed_t; b : ufixed_t) return boolean;
function "=" (a : sfixed_t; b : sfixed_t) return boolean;
function "=" (a : ufixed_t; b : sfixed_t) return boolean;
function "=" (a : sfixed_t; b : ufixed_t) return boolean;
-------------------------------------------------------------
-- Inequality
-------------------------------------------------------------
function "/=" (a : ufixed_t; b : ufixed_t) return boolean;
function "/=" (a : sfixed_t; b : sfixed_t) return boolean;
function "/=" (a : ufixed_t; b : sfixed_t) return boolean;
function "/=" (a : sfixed_t; b : ufixed_t) return boolean;
-------------------------------------------------------------
-- Less than
-------------------------------------------------------------
function "<" (a : ufixed_t; b : ufixed_t) return boolean;
function "<" (a : sfixed_t; b : sfixed_t) return boolean;
function "<" (a : ufixed_t; b : sfixed_t) return boolean;
function "<" (a : sfixed_t; b : ufixed_t) return boolean;
-------------------------------------------------------------
-- Greater than
-------------------------------------------------------------
function ">" (a : ufixed_t; b : ufixed_t) return boolean;
function ">" (a : sfixed_t; b : sfixed_t) return boolean;
function ">" (a : ufixed_t; b : sfixed_t) return boolean;
function ">" (a : sfixed_t; b : ufixed_t) return boolean;
-------------------------------------------------------------
-- Less or equal than
-------------------------------------------------------------
function "<=" (a : ufixed_t; b : ufixed_t) return boolean;
function "<=" (a : sfixed_t; b : sfixed_t) return boolean;
function "<=" (a : ufixed_t; b : sfixed_t) return boolean;
function "<=" (a : sfixed_t; b : ufixed_t) return boolean;
-------------------------------------------------------------
-- Greater or equal than
-------------------------------------------------------------
function ">=" (a : ufixed_t; b : ufixed_t) return boolean;
function ">=" (a : sfixed_t; b : sfixed_t) return boolean;
function ">=" (a : ufixed_t; b : sfixed_t) return boolean;
function ">=" (a : sfixed_t; b : ufixed_t) return boolean;
-------------------------------------------------------------
-- Unary Arithmetic Operators
-------------------------------------------------------------
function "abs" (src : sfixed_t) return sfixed_t;
function "-" (src : ufixed_t) return sfixed_t;
function "-" (src : sfixed_t) return sfixed_t;
-------------------------------------------------------------
-- Misc. Operators
-------------------------------------------------------------
function ipart (src : ufixed_t) return ufixed_t;
function fpart (src : ufixed_t) return ufixed_t;
function ipart (src : sfixed_t) return sfixed_t;
function fpart (src : sfixed_t) return sfixed_t;
-------------------------------------------------------------
-- Print function
-------------------------------------------------------------
procedure print_info(src : in ufixed_t; prefix : in string);
procedure print_info(src : in sfixed_t; prefix : in string);
procedure print_info(src : in string; prefix : in string);
-------------------------------------------------------------
-- Helpers
-------------------------------------------------------------
function cmsb(src : ufixed_t) return integer;
function clsb(src : ufixed_t) return integer;
function MIN (X, Y: INTEGER) return INTEGER;
function MAX (X, Y: INTEGER) return INTEGER;
function "MOD" (X, Y: in REAL ) return REAL;
function ipart(src : real) return real;
function fpart(src : real) return real;
function and_red(arg : ufixed_t) return STD_ULOGIC;
function nand_red(arg : ufixed_t) return STD_ULOGIC;
function or_red(arg : ufixed_t) return STD_ULOGIC;
function nor_red(arg : ufixed_t) return STD_ULOGIC;
function xor_red(arg : ufixed_t) return STD_ULOGIC;
function xnor_red(arg : ufixed_t) return STD_ULOGIC;
function and_red(arg : sfixed_t) return STD_ULOGIC;
function nand_red(arg : sfixed_t) return STD_ULOGIC;
function or_red(arg : sfixed_t) return STD_ULOGIC;
function nor_red(arg : sfixed_t) return STD_ULOGIC;
function xor_red(arg : sfixed_t) return STD_ULOGIC;
function xnor_red(arg : sfixed_t) return STD_ULOGIC;
--------------------------------------------------------------
end; -- package fixed_ja;
File diff suppressed because it is too large Load Diff