|
|
The Case Statement lists the alternatives that may be activated depending on the value of the variable, group, or expression following the CASE keyword.
The following example shows a Case Statement:
CASE f[].q IS
WHEN H"00" =>
addr[] = 0;
s = a & b;
WHEN H"01" =>
count[].d = count[].q + 1;
WHEN H"02", H"03", H"04" =>
f[3..0].d = addr[4..1];
WHEN OTHERS =>
f[].d = f[].q;
END CASE;
The Case Statement has the following characteristics:
The keywords CASE and IS enclose a Boolean
expression, group, or state machine (in
the example shown above, f[].q).
The Case Statement is terminated by the keywords END CASE
and a semicolon (;).
One or more unique alternatives are listed in the WHEN clauses
in the body of the Case Statement. Each WHEN clause begins
with the keyword WHEN.
In each alternative WHEN clause, one or more comma-separated
constant values are followed by an arrow symbol (=>). In
this example, the H"02", H"03",
and H"04" constant values are listed in a single
WHEN clause; the H"00" and H"01"
constant values are listed in separate WHEN clauses.
If the Boolean expression following the CASE keyword evaluates
to a specific alternative, all the behavioral statements following the arrow
are activated. In the example shown above, if f[].q evaluates
to H"01", the Boolean equation count[].d =
count[].q + 1 is activated.
When no other alternative is true, the optional keywords WHEN OTHERS
define the default alternative. In the example shown above, if f[].q
does not equal H"00", H"01",
or H"CF", the Boolean equation f[].d = f[].q
is activated.
The Defaults Statement defines the default behavior if the WHEN OTHERS
clause is not used.
If the Case Statement is used to define the transitions of a state machine,
the keywords WHEN OTHERS cannot be used to recover from illegal
states of an n-bit state machine unless the state machine contains
exactly 2^n states.
Each behavioral statement ends with a semicolon (;).
|
- PLDWorld - |
|
|
| Created by chm2web html help conversion utility. |