0

Ich habe folgende gleichzeitige Behauptung in meinem Monitor schreiben:Wo kann ich eine gleichzeitige Assertion im Monitor schreiben?

assert property (vif.cos == 1 |-> vif_out.y == vif.xi/sqrt(2)); 

Ich versuchte es in der run_phase zu setzen, aber ich habe den folgenden Fehler: Concurrent Behauptungen sind nicht in Aufgaben/Klassenmethoden erlaubt.

Wo soll ich es hinstellen?

+0

Sie könnten eine gleichzeitige Assertion in einem Modul, einer Schnittstelle, einem Programm, einem Taktbaustein oder einem Paket deklarieren. Bitte korrigieren Sie mich, wenn es einen anderen Bereich gibt, in dem Sie eine gleichzeitige Assertion deklarieren könnten. –

Antwort

0

Concurrent Assertions sind in Tasks/Klassenmethoden nicht erlaubt. Sie müssen sie in ein Modul oder ähnliches (Interface/Programm/Checker) legen.

1

Bitte beachten Sie die IEEE Std 1800-2012, Abschnitt 14.16 (Concurrent Assertions).

A concurrent assertion statement may be specified in any of the following:

  • An always procedure or initial procedure as a statement, wherever these procedures may appear
  • A module
  • An interface
  • A program
  • A generate block
  • A checker

Persönlich würde ich nur das Stück Code in die Schnittstellendatei verschieben.

Verwandte Themen