Standard Predefined Packages excerpted from IEEE Standard VHDL Language Reference Manual IEEE Std 1076-1987 with corrections as defined in "The Sense of the VASG", October 1989 Copyright (c) 1988. The Institute of Electrical and Electronics Engineers, Inc. (Permission to reprint granted if above header is retained) package STANDARD is -- predefined enumeration types: type BOOLEAN is (FALSE, TRUE); type BIT is ('0', '1'); type CHARACTER is ( NUL, SOH, STX, ETX, EOT, ENQ, ACK, BEL, BS, HT, LF, VT, FF, CR, SO, SI, DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB, CAN, EM, SUB, ESC, FSp, GSp, RSp, USp, ' ', '!', '"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', DEL); type SEVERITY_LEVEL is (NOTE, WARNING, ERROR, FAILURE); -- predefined numeric types: type INTEGER is range implementation_defined; type REAL is range implementation_defined; -- predefined type TIME: type TIME is range implementation_defined units fs; -- femtosecond ps = 1000 fs; -- picosecond ns = 1000 ps; -- nanosecond us = 1000 ns; -- microsecond ms = 1000 us; -- millisecond sec = 1000 ms; -- second min = 60 sec; -- minute hr = 60 min; -- hour end units; -- function that returns the current simulation time: function NOW return TIME; -- predefined numeric subtypes: subtype NATURAL is INTEGER range 0 to INTEGER'HIGH; subtype POSITIVE is INTEGER range 1 to INTEGER'HIGH; -- predefined array types: type STRING is array (POSITIVE range <>) of CHARACTER; type BIT_VECTOR is array (NATURAL range <>) of BIT; end STANDARD; package TEXTIO is -- Type Definitions for Text I/O type LINE is access STRING; -- a LINE is a pointer to a STRING value type TEXT is file of STRING; -- a file of variable-length ASCII records type SIDE is (RIGHT, LEFT); -- for justifying output data within fields subtype WIDTH is NATURAL; -- for specifying widths of output fields -- Standard Text Files file INPUT: TEXT is in "STD_INPUT"; file OUTPUT: TEXT is out "STD_OUPUT"; -- Input Routines for Standard Types procedure READLINE (variable F: in TEXT; L: inout LINE); procedure READ (L:inout LINE; VALUE: out BIT; GOOD: out BOOLEAN); procedure READ (L:inout LINE; VALUE: out BIT); procedure READ (L:inout LINE; VALUE: out BIT_VECTOR; GOOD: out BOOLEAN); procedure READ (L:inout LINE; VALUE: out BIT_VECTOR); procedure READ (L:inout LINE; VALUE: out BOOLEAN; GOOD: out BOOLEAN); procedure READ (L:inout LINE; VALUE: out BOOLEAN); procedure READ (L:inout LINE; VALUE: out CHARACTER; GOOD: out BOOLEAN); procedure READ (L:inout LINE; VALUE: out CHARACTER); procedure READ (L:inout LINE; VALUE: out INTEGER; GOOD: out BOOLEAN); procedure READ (L:inout LINE; VALUE: out INTEGER); procedure READ (L:inout LINE; VALUE: out REAL; GOOD: out BOOLEAN); procedure READ (L:inout LINE; VALUE: out REAL); procedure READ (L:inout LINE; VALUE: out STRING; GOOD: out BOOLEAN); procedure READ (L:inout LINE; VALUE: out STRING); procedure READ (L:inout LINE; VALUE: out TIME; GOOD: out BOOLEAN); procedure READ (L:inout LINE; VALUE: out TIME); -- Output Routines for Standard Types procedure WRITELINE (variable F: out TEXT; L: inout LINE); procedure WRITE (L: inout LINE; VALUE: in BIT; JUSTIFIED: in SIDE:=RIGHT; FIELD: in WIDTH := 0); procedure WRITE (L: inout LINE; VALUE: in BIT_VECTOR; JUSTIFIED: in SIDE:=RIGHT; FIELD: in WIDTH := 0); procedure WRITE (L: inout LINE; VALUE: in BOOLEAN; JUSTIFIED: in SIDE:=RIGHT; FIELD: in WIDTH := 0); procedure WRITE (L: inout LINE; VALUE: in CHARACTER; JUSTIFIED: in SIDE:=RIGHT; FIELD: in WIDTH := 0); procedure WRITE (L: inout LINE; VALUE: in INTEGER; JUSTIFIED: in SIDE:=RIGHT; FIELD: in WIDTH := 0); procedure WRITE (L: inout LINE; VALUE: in REAL; JUSTIFIED: in SIDE:=RIGHT; FIELD: in WIDTH := 0; DIGITS: in NATURAL := 0); procedure WRITE (L: inout LINE; VALUE: in STRING; JUSTIFIED: in SIDE:=RIGHT; FIELD: in WIDTH := 0); procedure WRITE (L: inout LINE; VALUE: in TIME; JUSTIFIED: in SIDE:=RIGHT; FIELD: in WIDTH := 0; UNIT: in TIME := ns); -- File Position Predicates -- function ENDFILE (F: in TEXT) return BOOLEAN; end TEXTIO;