2014-11-27 4 views
1

내 확인 환경에서 sys 아래에는 timer_sve의 인스턴스가 있습니다. 난 단지 timer에 대한 범위를 수집해야Specman e : 인스턴스/유닛의 적용 범위를 비활성화하는 방법은 무엇입니까?

extend sys { 
    timer_sve : timer_sve_u is instance; 
}; 

unit timer_sve_u { 
    timer  : timer_u is instance; 
    ocp_master : ocp_u is instance; 
}; 

: timerocp_master : timer_sve에서 나는이 다른 경우가 있습니다. 나는 ocp_master의 범위를 해제하는이 코드 (그리고 다른 많은 변화를) 시도했다 :

extend sys { 
    timer_sve : timer_sve_u is instance; 

    setup() is also { // The code to disable ocp_master's coverage 
     global.covers.set_cover_block("ocp_u", FALSE); 
    }; 
}; 

코드는 컴파일하고 성공적으로 실행하지만 어떻게 ... ocp_master에 대한 범위를 수집 을 계속한다 내가 ocp_master 취재를 해제합니까? 정말 감사드립니다.

답변

1

메쏘드 set_cover_block(...)은 유닛을 입력으로 사용하지 않고 커버리지 요소가 정의 된 모듈 (즉, 파일)을 가져옵니다. 범위 변경을 통해 ocp_u 범위를 확장 한 파일을 가져 오도록 변경하십시오.

특정 서비스 항목/그룹/등을 사용 중지하려면 어떻게해야합니까? 내 부분에

extend some_struct { 
    cover some_cover using also 
    when = FALSE; 
}; 

일부 추측 : 다음 when 옵션 FALSE로 설정되어 set_cover_block(...) 뜻이 아마 악기 커버리지 제외 된 코드를 사용하여 범위를 비활성화

(즉, 완전히 범위 정의를 무시) 시뮬레이션을 when 옵션을 사용하여 실행 중지하는 것보다 빠르게 실행하십시오.

+1

'ocp_cover.e'에 대한 전체 전달을 정의한 경우 set_cover_block (...) 메소드가 작동하지 않았습니다. Specman이 컴파일되어 실행 중이지만 set_cover_block()에 응답하지 않습니다. (아마 제대로 사용하지 않았다). 하지만 다른 방법으로 'ocp_master'를 적용 범위에서 제외하는 데 성공했습니다. set_cover ("ocp *. *. *", FALSE); – Halona

+2

@Halona 그것은'set_cover (...) '와 함께 작동합니다. 만약 당신이 모험을 느끼고'set_cover_block (...)'을 다시 시도하고 싶다면 e 파일의 전체 경로를주지 말고 파일 이름을 .e 확장자없이 지정하십시오. 그것이 e 모듈의 이름입니다. 설명서에 따라 와일드 카드도 작동합니다. –

관련 문제