나는 내 모니터에 다음과 같은 동시 주장을 작성해야합니다 :어디에서 동시 어서 트를 모니터에 쓸 수 있습니까?
assert property (vif.cos == 1 |-> vif_out.y == vif.xi/sqrt(2));
나는 run_phase에 넣어했지만, 나는 다음과 같은 오류가 발생했습니다 : 동시 주장이 작업/클래스 메소드를 사용할 수 없습니다.
어디에 넣어야합니까?
나는 내 모니터에 다음과 같은 동시 주장을 작성해야합니다 :어디에서 동시 어서 트를 모니터에 쓸 수 있습니까?
assert property (vif.cos == 1 |-> vif_out.y == vif.xi/sqrt(2));
나는 run_phase에 넣어했지만, 나는 다음과 같은 오류가 발생했습니다 : 동시 주장이 작업/클래스 메소드를 사용할 수 없습니다.
어디에 넣어야합니까?
동시 어설 션은 tasks/class 메소드에서 허용되지 않습니다. 당신은 모듈이나 비슷한 (인터페이스/프로그램/체커)에 넣어해야합니다.
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
개인적으로, 나는 그 코드를 인터페이스 파일로 옮기기 만합니다.
모듈, 인터페이스, 프로그램, 클러킹 블록 또는 패키지 내에 동시 어설 션을 선언 할 수 있습니다. 동시 어설 션을 선언 할 수있는 다른 범위가 있으면 저를 수정하십시오. –