Aserciones: Tipos

  • Inmediatas : Se realizan dentro de procedural blocks (initial, always, tasks) y la monitorización en realidad ya no es continua sino que solo se produce en el instante en que dicha aserción es ejecutada.
  • Concurrentes : Como bien dice su nombre se ejecutan fuera del ámbito secuencial de Verilog (o sea fuera de los procedural blocks) y si que ejercen una monitorización continua a lo largo de toda la simulación. Ni que decir tiene que esa monitorización está gobernada por una señal de reloj en donde esas señales son muestreadas.
    • Sin habilitación (without implication)
      • Monociclo
      • Multiciclo – concepto de secuencia
    • Con habilitación (->,=>) (with implication)
      • Monociclo
      • Multiciclo – concepto de secuencia
        • Repeticiones
        • Complejas
          • Esquema or (Antecedent-consequent)
          • Esquema and e intersect
          • Throughout y within

La monitorización continua de las aserciones concurrentes supone que todos los ciclos de reloj del funcionamiento del sistema (bien en el flanco de subida o en el flanco de bajada) se está muestreando las señales implicadas en las expresiones o secuencias y se realiza una comprobación del comportamiento.

Por eso no es de extrañar la existencia del concepto de habilitación, con el cual indicamos en cada ciclo de reloj, que condición se debe de cumplir para habilitar la comprobación de la aserción. Si la aserción no es habilitada no debe de hacerse la comprobación en ese ciclo y por supuesto la aserción no puede fallar.