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;