断言语句的语法形式如下;

    assert 条件表达式 [report 输出信息字符串]
        [severity 严重级别];

  如果缺省report子句,则输出信息"assertion violation."
  如果缺省severity,则默认严重级别为Note。

  严重级别是预定义枚举类型
  type Severity _Level is (Note, Warning, Error, Failure);

  其意义为:1.当不满足条件时输出指定信息和错误级别; 2.当严重级别是而Failure时,模拟过程停止。有的系统Error表示电路严重错误,而Failure往往表示执行过程遇到无法继续执行的严重问题,必须停止模拟过程的情况。
  用途:
    1. 添加限制条件。
     (例:检测时间特性是否满足要求)。
    2. 输出状态信息或出错报告。
    3. 添加调试断点。
例:
    assert not (S= '1' and R = '1') --正常情况下应为真
      report "Both S and R are High." --当(S= '1' and R = '1')成立时输出该信息。
      severity Error; --严重级别为Error (电路设计错误)

    assert Enable /= 'X' -- 检测信号值是否出现X,
      report "Unkown value on Enable"
        -- 若出现X则给出警告信息,供设计者分析
      severity Warning;

  VHDL-93规定:如果需要在执行到程序的某一点无条件输出信息,则可以采取省略形式:
      Report 输出信息字符串 [severity 严重级别];
  它相当于assert语句中的条件为False。
  例:
    report "Entering process P";
        -- with default severity NOTE.
    report "Setup or Hold violation; outputs driven to X" severity Warning;
        -- severity is specified