메모리 검증을 위해 계층화 된 테스트 벤치를 구축하려고합니다. 드라이버 및 모니터 측에서 read_data (메모리의 데이터 제외)를 표시하고 있습니다. 문제는 모니터가주기 시작시에만 트리거된다는 것입니다. 하지만 read_write = 0이 될 때마다 모니터가 실행되기를 원합니다. 모니터가 모든 시나리오를 고려하지 않는 이유는 무엇입니까? 환경 클래스에서 드라이버, 모니터 및 생성기의 run 메소드를 호출합니다. 링크 : http://www.edaplayground.com/x/389q모니터 동기화
Q
모니터 동기화
-1
A
답변
1
코드에 몇 가지 문제가 있습니다. 먼저 모니터 클래스에 forever
루프가 필요합니다. run() 메서드에 지금 쓰여지는 방식은 2 클럭 사이클 동안 대기 한 다음 read_write == 0
을 기다린 다음 완료된 것입니다.
또 다른 문제는 계층 적 참조에서 modport 이름 monitor
을 사용하고 있다는 것입니다. modport는 범위가 아니며 가상 인터페이스 변수를 선언 할 때 사용되는 액세스 목록입니다.
마지막으로 clocking
블록으로 작업 할 때 신호가 아닌 동기화를위한 클럭킹 이벤트 만 사용해야합니다.
class monitor;
virtual intf.monitor vintf;
function new(virtual intf.monitor vintf);
this.vintf=vintf;
endfunction
task run();
forever
@(vintf.mo) // No ; here. You would get stuck in an infinite loop
begin
$display("--------MONITOR STARTS--------");
@(vintf.mo iff (vintf.mo.read_write==0))
begin
$display("--------MONITOR READDATA--------");
$display(vintf.mo.read_data);
$display(vintf.mo.address);
end
end
endtask
endclass
관련 문제
- 1. 파이썬에서 모니터 스레드 동기화
- 2. C# 스레드 동기화 모니터 + ResetEvent
- 3. Java의 모니터 및 동기화 키워드
- 4. Java의 동기화 및 스레드의 모니터
- 5. 자바 스레드를 이용한 다중 모니터 동기화
- 6. Java (즉, 모니터)의 동기화 된 클래스
- 7. 동기화 된 블록 및 모니터 개체
- 8. 모니터, 뮤텍스 및 세마포어에 사용되는 동기화 수준 (임원 또는 커널)
- 9. MAC OS 모니터 수직 동기화 및 horz 디스플레이 속도 받기
- 10. Win32 API를 사용하여 Java와 유사한 동기화 (모니터)를 구현하려면 어떻게해야합니까?
- 11. 개체 모니터 또는 내 경우에는 세마포어에 동기화 된?
- 12. C#의 스레드 동기화 (모니터 대기/펄스 사용)
- 13. 맥 (10.8)에서 동기화 mysql 명령 줄 모니터
- 14. (OS) 모니터 란 무엇입니까?
- 15. 자바 모니터 - 큐
- 16. Java 모니터 구현
- 17. 다중 모니터 구성에서 MATLAB 모니터 확인
- 18. Redgate SQL 모니터 기본 모니터 권한
- 19. "모니터"객체를 사용하는 것이 정말로 필요합니까?
- 20. 모니터 크기에
- 21. 모니터 변경
- 22. ActiveMQ 모니터
- 23. 모니터 HornetQ
- 24. 대역폭 모니터
- 25. 모니터 위치
- 26. 으로 CopyOnWriteArrayList 동기화 방법
- 27. 동기화 된 대 동기화 대 동기화 된지도
- 28. UIScrollView 동기화 동기화
- 29. 동기화 및 정적 동기화
- 30. 렌더링/동기화 스레드 동기화