USE
work.pck_0.all;
PACKAGE BODY
pck
IS
CONSTANT
cint : integer := f(6);
END
pck ;
|
The objects from the library
pck_0
are integrated.
In the package body the constant
cint
, which has to be
declared in the package header, is declared as integer
and initialized with the result value from function call
f(6) (deferred constant).
|
PACKAGE BODY
pck_1
IS
FUNCTION
G ( A, B : Bit )
RETURN
Bit
IS
BEGIN
RETURN NOT
( A
XOR
B );
END
;
FUNCTION
F ( S1, S2 : Bit )
RETURN
Bit
IS
VARIABLE
V : Bit;
BEGIN
V := S1
NAND
S2;
RETURN
G(V, S2);
END
;
END
pck_1 ;
|
Definition of the package body
pck_1
in which the two functions
G
and
F
are declared.
In the function
G
the value of the equation
A XOR B
is returned as a result (as Bit).
In the function
F
a variable
V
is declared as Bit which then receives
the value from
S1 NAND S2
.
The function
F
delivers the bit-value from
the function call
G(V, S2)
as a result value.
|
PACKAGE BODY
tristate
IS
FUNCTION
BitVal ( Value : Tri )
RETURN
Bit
IS
CONSTANT
Bits : Bit_Vector
:= "0100";
BEGIN
RETURN
Bits(Tri'Pos(Value))
END
;
FUNCTION
TriVal ( Value : Bit )
RETURN
Tri
IS
VARIABLE
V : Tri := 'Z';
BEGIN
FOR
i
IN
Sources'Range
LOOP
IF
Sources(i) /= 'Z'
THEN
IF
V = 'Z'
THEN
V := Sources(i);
ELSE
RETURN
'E';
END IF
;
END IF
;
END LOOP
;
RETURN V
;
END
;
END
tristate ;
|
Definition of the package body
tristate
in which the two functions
BitVal
and
TriVal
are declared.
In the function
BitVal
a constant
Bits
is declared and initialized with the value "0100".
As a result, the value of the bit in the position
Tri'Pos
(
Value
) of
Bits
is returned.
In the function
TriVal
a variable
V
of the type
Tri
is
declared and initialized with the value
Z
.
In
LOOP
either the value of
Source(i)
is transferred to
V
or
E
is returned as a result value, depending on the
individual value of
Source(i)
and
V
. In the first case
V
is
returned as a result value afterwards.
|