Comportamiento inesperado del operador implicado en SVA

1

Hay un problema al que me enfrento al utilizar un operador de implicación en uno de mis ejemplos de código. Este código se puede encontrar en enlace

Resumen de código

  1. En mi código, he definido estados correspondientes a cada cuenta de un contador.
  2. He definido una secuencia s2_7 que es una secuencia que comienza en (cuenta == 2) y termina en (cuenta == 7).

sequence s2_7; (state == 2) ##1 (state == 3) ##1 (state == 4) ##1 (state == 5) ##1 (state == 6) ##1 ((state == 7)); endsequence

  1. He definido una directiva de propiedad con la etiqueta 'test_3:' que afirma la secuencia s2_7.

test_3: assert property ( @(posedge clk) (state==STATE2) |=>s2_7) $display("%0.0t, Property s2_7 is asserted.",$time());

  1. Mi código se imprime debajo de la línea cuando el antecedente de la propiedad es verdadero.
  

35, Iniciar secuencia de propiedades s2_7, estado = ESTADO3

  1. Mi código se imprime debajo de la línea cuando la secuencia s2_7 ha comenzado.
  

45, secuencia de inicio s2_7, estado = ESTADO4

A continuación se muestra el resultado de mi código.

              0, state = STATE1
              25, state = STATE2
              35, Start property sequence s2_7 , state = STATE3
              35, state = STATE3
              45, Starting sequence s2_7 , state = STATE4
              45, state = STATE4
              55, state = STATE5
              65, state = STATE6

Issue

Tengo problemas para entender debajo de la línea de la salida.

  

45, secuencia de inicio s2_7, estado = ESTADO4

Alguien puede explicar esto.

    
pregunta Green

0 respuestas

Lea otras preguntas en las etiquetas