Procedures
May produce multiple output values
Are invoked by statements
May modify the parameters
PROCEDURE add_bits3 (SIGNAL a, b, en : IN BIT;
SIGNAL temp_result, temp_carry : OUT BIT) IS
BEGIN -- procedures can return multiple values
temp_result <= (a XOR b) AND en;
temp_carry <= a AND b AND en;
- Do not require a RETURN statement
Notes:
Unlike functions, procedures may modify multiple signals and variables in a single call. Procedures can operate on their parameters and are able to make assignments to signals and variables in their parameter lists that are of mode OUT or INOUT. A procedure call, therefore, is itself a complete VHDL statement..