2017-03-01 16 views
0

나는 내 모니터에 다음과 같은 동시 주장을 작성해야합니다 :어디에서 동시 어서 트를 모니터에 쓸 수 있습니까?

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

나는 run_phase에 넣어했지만, 나는 다음과 같은 오류가 발생했습니다 : 동시 주장이 작업/클래스 메소드를 사용할 수 없습니다.

어디에 넣어야합니까?

+0

모듈, 인터페이스, 프로그램, 클러킹 블록 또는 패키지 내에 동시 어설 션을 선언 할 수 있습니다. 동시 어설 션을 선언 할 수있는 다른 범위가 있으면 저를 수정하십시오. –

답변

0

동시 어설 션은 tasks/class 메소드에서 허용되지 않습니다. 당신은 모듈이나 비슷한 (인터페이스/프로그램/체커)에 넣어해야합니다.

1

IEEE Std 1800-2012, 14.16 절 (동시 어설 션)을 참조하십시오.

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

개인적으로, 나는 그 코드를 인터페이스 파일로 옮기기 만합니다.