Return Statement
Formal Definition
The return
statement is used to
complete the execution of the innermost enclosing function or
procedure body.
Simplified Syntax
return;
return expression;
Description
The return statement ends
the execution of a subprogram (procedure or function) in which it
appears. It causes an unconditional jump to the end of a subprogram
(example 1).
If a return statement
appears inside nested subprograms it applies to the innermost
subprogram (i.e. the jump is performed to the next end procedure or
end function clause).
This statement can only be used in a procedure or function body. The return
statement in a procedure may not return any value, while a return
in a function must return a value (an expression) which is of the
same type as specified in the function after the return
keyword (example 2).
Examples
Example 1
procedure RS ( signal
S, R: in BIT; signal
Q, NQ: inout BIT) is
begin
if (S = '1' and
R = '1') then
report
"forbidden state: S and R are equal to '1'";
return;
else
Q <= S and
NQ after 5 ns;
NQ <= R and
Q after 5 ns;
end if;
end procedure RS;
The return statement located in the if then clause causes the
procedure to terminate when both S and R are equal to '1'. The
procedure would terminate even if the end if would be followed by
some other statements.
Example 2
P1: process
type REAL_NEW is range
0.0 to 1000.0;
variable a, b :
REAL_NEW := 2.0;
variable c: REAL;
function Add
(Oper_1, Oper_2: REAL_NEW) return
REAL is
variable
result : REAL;
begin
result := REAL(Oper_1)+REAL(Oper_2);
return result;
end function Add;
begin
c:= Add(a,b);
end process;
The return statement in a function must return a value of the type
specified in the function header after the return clause.
Important Notes
|