10.10.1 Wait Statement (Text page 421)
wait_statement ::= [label:] wait [sensitivity_clause]
[condition_clause]
[timeout_clause] ;
sensitivity_clause ::= on sensitivity_list
sensitivity_list ::= signal _name { , signal _name }
condition_clause ::= until condition
condition ::= boolean _expression
timeout_clause ::= for time _expression
Examples-->
WAIT UNTIL rising_edge(iclk);
wait until ((high="0000")AND(low="0000")) for 6000 ns ;
wait for 200 ns ;
10.10.2 Assertion and Report Statements (Text page 423)
assertion_statement ::= [label:] assert
boolean _expression [ report expression] [ severity expression] ;
report_statement ::= [label:] report expression [ severity expression] ;
The default severity is "error" which halts the simulation as does "failure".
A severity of "warning" does not halt the simulation.
The phrase in parenthesis after "report" is printed.
Printing occurs if the assertion condition is "FALSE".
Examples-->
ASSERT ((high=b_var)AND(low=b_var))
REPORT "Decoder or Load failure."
SEVERITY failure;
-- Check count output
IF (high=high_temp)
AND (low=low_temp) THEN
ASSERT false
REPORT "Count suspended correctly"
SEVERITY note;
ELSE
ASSERT false
REPORT "Count did not suspend"
SEVERITY warning;
END IF;