8.6 Procedure call

...
ENTITY e IS
    ...
BEGIN
    ...
END e ;

...
ARCHITECTURE a OF e IS
    ...
BEGIN
    ...
END a ;

...
CONFIGURATION c
        OF e IS
    ...
    ...
    ...
END

...
PACKAGE pkg IS
    ...
    ...
    ...
END pkg ;


procedure_call_statement ::=

    [ label : ] procedure_call ;

..
PACKAGE BODY pck
        IS
    ...
    ...
    ...
END pck ;

...
b: BLOCK IS
    ...
BEGIN
    ...
END BLOCK b ;

FUNCTION f (...)
    RETURN r IS
    ...
BEGIN
    ...
END f ;

PROCEDURE p (...) IS
    ...
BEGIN
    ...
END p ;

p : PROCESS
    ...
BEGIN
    ...
END PROCESS p ;

8.6.1 Further definitions

label ::= identifier

procedure_call ::= procedure_ name [ ( actual_parameter_part ) ]

8.6.2 Examples

a_proc ;

The procedure a_proc is called;
it does not have any transfer parameters.

my_proc( sig_1, sig_2, var_3 ) ;

The procedure my_proc is called with the transfer
parameters sig_1 , sig_2 , var_3 .

another_proc( var_1, var_2, q => const_3 ) ;

The procedure my_proc is called with the transfer
parameters var_1 , var_2 , q .

register_proc( ck => clock,
      d => reg_in,
      q => reg_out ) ;

The procedure my_proc is called with the transfer
parameters ck, d, q, which are explicitly assigned
by names.