vhdl_reference_93:concurrent_procedure_call

Concurrent procedure call

[ label : ] [ postponed ] procedure_call ;
  • entity_statement_part
  • architecture_statement_part
  • block_statement_part

procedure _name [ ( actual_parameter_part ) ]

For any concurrent procedure call statement, there is an equivalent process statement.

The equivalent process statement of a concurrent procedure call statement including the keyword POSTPONED is a postponed process.

A concurrent procedure call within the statement-part of an ENTITY has to be a passive concurrent procedure call.

Procedure call without transfer parameters

a_proc ;

Named procedure call with transfer parameters which are linked by position.

lab : my_proc( sig_1, sig_2, sig_3 ) ;

Procedure call with transfer parameters which are linked by explicit assignment.

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

Procedure call with transfer parameters which are linked either by position or by explicit assignment.

another_proc( sig_1, sig_2, q => sig_3);

This example shows that a concurrent procedure call is equal to a process which has a statement part which only contains the procedure call.

check_timing( tplh, tphl, clk, d, q ) ;
   -- concurrent procedure call
 
PROCESS -- corresponding process
BEGIN
   check_timing( tplh, tphl, clk, d, q);
   WAIT ON clk, d, q ;
END PROCESS ;