¿Cómo puede el módulo TB trap $ fatal del módulo A?

0

Tengo una simulación RTL donde el módulo TB es el banco de pruebas para el módulo A.

El módulo A genera $ fatal cuando cumple con alguna condición que no le gusta. El módulo TB genera / recopila transacciones hacia / desde A. ¿Hay alguna manera de que pueda capturar $ fatal o $ declaraciones de error en el módulo TB?

Estoy buscando agregar algunas líneas en TB como

always @*
begin
  if (FATAL_CONDITION_SEEN) begin
     log("there was a problem");
  end
end

Ideas?

    
pregunta boffin

1 respuesta

1

SystemVerilog tiene un bloque final que se activa al final de la simulación

final begin
       log("there was a problem");
      end

Puedes tener tantos bloques finales como quieras, pero como initial blocks, no hay un orden garantizado entre ellos. Hay restricciones sobre lo que puede poner en un bloque final , como las declaraciones que no requieren mucho tiempo. Consulte la 1800-2012 LRM sección 9.2.3 Procedimientos finales

    
respondido por el dave_59

Lea otras preguntas en las etiquetas