Concurrent procedure call
concurrent_procedure_call
[ label : ] [ postponed ] procedure_call ;
Parents
- entity_statement_part
- architecture_statement_part
- block_statement_part
Further definitions
procedure_call
procedure _name [ ( actual_parameter_part ) ]
Comment
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.
Examples
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 ;