--****************************************************************************** --** @(#) Design Unit: PACKAGE utilities.std_logic_1164_util --** @(#) Part Class: Utilities --** @(#) File: std_logic_1164_utils_.vhd --** @(#) Version: 1.2 --** @(#) Date: 07/23/98 --** @(#) Description: Subprograms for type conversions between types in --** @(#) Description: std.standard and ieee.std_logic_1164 and other support --** @(#) Description: functions associated with package ieee.std_logic_1164 --** --****************************************************************************** --** File: std_logic_1164_utils_.vhd --** --** Description: PACKAGE std_logic_1164_utils --** Subprograms for type conversions between types in std.standard --** and ieee.std_logic_1164 and other support functions associated --** with package ieee.std_logic_1164. --** --****************************************************************************** --** History: @(#)std_logic_1164_utils_.vhd 1.2 07/23/98 --** Version | Who | When | What --** 1.1 | VLS | 01-20-95 | Original (Vince Sanders) --** 1.2 | VLS | 05-08-95 | Added Procedures READ --** --****************************************************************************** --** --****************************************************************************** --** --** Organization: --** Microsystems Prototyping Laboratory --** Mississippi State University --** P.O. Box 9627 --** Mississippi State, MS 39762 --** Phone : (601) 325-3670 --** FAX : (601) 325-7692 --** E-Mail : mpl-vhdl@ERC.MsState.Edu --** WWW : http://www.ERC.MsState.Edu/mpl --** --** Disclaimer: --** All information, models, programs, code, etc... --** is provided as-is with no warranty of any kind with regard to this --** material, either expressed or implied, including, but not limited to, --** the implied warranties of merchantability and fitness for a particular --** purpose. --** --** Bug Reports and Information: --** Please report all bugs/fixes/problems/comments to the --** above organization. If you would like to be put on the --** mailing list for updates/bug fixes/etc... and future model --** releases please send email to the above organization. --** --****************************************************************************** LIBRARY ieee; USE ieee.std_logic_1164.ALL; LIBRARY std; USE std.textio.ALL; PACKAGE std_logic_1164_utils IS -------------------------------------------------------------------------------- -- Type and Constant Declarations -------------------------------------------------------------------------------- SUBTYPE Std_Ulogic01 IS Std_Ulogic RANGE '0' TO '1'; TYPE Std_Ulogic_2_Character_Map IS ARRAY (Std_Ulogic) OF Character; CONSTANT Std_Ulogic2Character : Std_Ulogic_2_Character_Map := ('U', 'X', '0', '1', 'Z', 'W', 'L', 'H', '-'); --############################################################################## -- Conversions FROM ieee.std_logic_1164 TO ieee.std_logic_1164 --############################################################################## -------------------------------------------------------------------------------- -- To_Std_Ulogic_Vector -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ FUNCTION To_Std_Ulogic_Vector (v : Std_Logic_Vector) RETURN Std_Ulogic_Vector; ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- To_Std_Logic_Vector -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ FUNCTION To_Std_Logic_Vector (v : Std_Ulogic_Vector) RETURN Std_Logic_Vector; ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- --############################################################################## -- Conversions FROM ieee.std_logic_1164 TO std.standard --############################################################################## -------------------------------------------------------------------------------- -- To_Bit -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ -- In Package ieee.std_logic_1164 --FUNCTION To_Bit (v : Std_Ulogic; xmap : Bit := '0') RETURN Bit; ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- -- To_Bit_Vector -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ FUNCTION To_Bit_Vector (v : Std_Ulogic_Vector; xmap : Bit := '0') RETURN Bit_Vector; FUNCTION To_Bit_Vector (v : Std_Logic_Vector; xmap : Bit := '0') RETURN Bit_Vector; ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- -- To_Boolean -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ FUNCTION To_Boolean (v : Std_Ulogic; xmap : Boolean := FALSE) RETURN Boolean; ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- To_Character -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ FUNCTION To_Character (v : Std_Ulogic) RETURN Character; ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- To_Integer -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ FUNCTION To_Integer (v : Std_Ulogic; xmap : Std_Ulogic01 := '0') RETURN Integer; FUNCTION To_Integer (v : Std_Ulogic_Vector; xmap : Std_Ulogic01 := '0') RETURN Integer; FUNCTION To_Integer (v : Std_Logic_Vector; xmap : Std_Ulogic01 := '0') RETURN Integer; ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- To_String -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ FUNCTION To_String (v : Std_Ulogic) RETURN String; FUNCTION To_String (v : Std_Ulogic_Vector) RETURN String; FUNCTION To_String (v : Std_Logic_Vector) RETURN String; ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- --############################################################################## -- Conversions FROM std.standard TO ieee.std_logic_1164 --############################################################################## -------------------------------------------------------------------------------- -- To_Std_Ulogic -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ FUNCTION To_Std_Ulogic (v : Bit) RETURN Std_Ulogic; FUNCTION To_Std_Ulogic (v : Boolean) RETURN Std_Ulogic; FUNCTION To_Std_Ulogic (v : Character; xmap : Std_Ulogic := 'X') RETURN Std_Ulogic; FUNCTION To_Std_Ulogic (v : String; xmap : Std_Ulogic := 'X') RETURN Std_Ulogic; ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- To_Std_Ulogic_Vector -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ FUNCTION To_Std_Ulogic_Vector (v : Bit_Vector) RETURN Std_Ulogic_Vector; FUNCTION To_Std_Ulogic_Vector (v : Integer; length : Positive) RETURN Std_Ulogic_Vector; FUNCTION To_Std_Ulogic_Vector (v : String; xmap : Std_Ulogic := 'X') RETURN Std_Ulogic_Vector; ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- To_Std_Logic_Vector -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ FUNCTION To_Std_Logic_Vector (v : Bit_Vector) RETURN Std_Logic_Vector; FUNCTION To_Std_Logic_Vector (v : Integer; length : Positive) RETURN Std_Logic_Vector; FUNCTION To_Std_Logic_Vector (v : String; xmap : Std_Ulogic := 'X') RETURN Std_Logic_Vector; ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- --############################################################################## -- Read, Write --############################################################################## -------------------------------------------------------------------------------- -- Read -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ PROCEDURE READ (l : INOUT Line; value : OUT Std_Logic; good : OUT Boolean); PROCEDURE READ (l : INOUT Line; value : OUT Std_Logic); PROCEDURE READ (l : INOUT Line; value : OUT Std_Ulogic_Vector; good : OUT Boolean); PROCEDURE READ (l : INOUT Line; value : OUT Std_Ulogic_Vector); PROCEDURE READ (l : INOUT Line; value : OUT Std_Logic_Vector; good : OUT Boolean); PROCEDURE READ (l : INOUT Line; value : OUT Std_Logic_Vector); ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- Write -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ PROCEDURE WRITE (l : INOUT Line; value : IN Std_Ulogic; justified : IN Side := RIGHT; field : IN Width := 0); PROCEDURE WRITE (l : INOUT Line; value : IN Std_Ulogic_Vector; justified : IN Side := RIGHT; field : IN Width := 0); PROCEDURE WRITE (l : INOUT Line; value : IN Std_Logic_Vector; justified : IN Side := RIGHT; field : IN Width := 0); ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- --############################################################################## -- Misc Functions --############################################################################## -------------------------------------------------------------------------------- -- To_Logic -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ FUNCTION To_Logic (v : Character; xmap : Std_Ulogic := 'X') RETURN Std_Ulogic; FUNCTION To_Logic (v : String; xmap : Std_Ulogic := 'X') RETURN Std_Ulogic; FUNCTION To_Logic (v : String; xmap : Std_Ulogic := 'X') RETURN Std_Ulogic_Vector; FUNCTION To_Logic (v : String; xmap : Std_Ulogic := 'X') RETURN Std_Logic_Vector; ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- Reduce Logic Functions -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ FUNCTION Reduce_AND (v : Std_Ulogic_Vector) RETURN Std_Ulogic; FUNCTION Reduce_AND (v : Std_Logic_Vector) RETURN Std_Ulogic; FUNCTION Reduce_OR (v : Std_Ulogic_Vector) RETURN Std_Ulogic; FUNCTION Reduce_OR (v : Std_Logic_Vector) RETURN Std_Ulogic; FUNCTION Reduce_XOR (v : Std_Ulogic_Vector) RETURN Std_Ulogic; FUNCTION Reduce_XOR (v : Std_Logic_Vector) RETURN Std_Ulogic; ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- END std_logic_1164_utils;