2014-09-01 3 views
2

저는 Modelsim을 사용하여 큰 디자인을하고 있습니다.Modelsim에서 'X'신호에 대해 경고하도록하려면 어떻게해야합니까?

나는 모델 시뮬레이션이 작동하는 방식에 대해 읽었습니다. ModelSim이 시뮬레이션 단계에서 신호를 평가할 때 그것에 대해 경고하기 위해 'X'라는 빨간색 신호가있는 것으로 밝혀졌습니다.

디자인의 모든 신호를 나열하고 하나씩 살펴 보는 것은 불가능하다는 것을 알고 있습니다. 또한 모든 신호에 대해 어설 션 명령을 적용하는 것은 매우 어렵습니다.

답변

2

조건이 충족 될 때 when 명령을 사용하여 원하는 작업을 수행 할 수 있습니다. find 명령은 디자인 계층 구조에서 신호를 추출 할 수 있습니다. 모든 옵션을 보려면 Modelsim 명령 참조 문서를보십시오. examine 명령은 배열 및 스칼라 유형 신호의 길이를 결정하는 데 사용됩니다. 이 예제는 레코드 유형에서는 작동하지 않습니다.

proc whenx {sig action} { 
    when -label $sig "$sig = [string repeat X [string length [examine $sig]]]" $action 
} 

foreach s [find signals -r /*] {whenx $s "echo \"$s is an X at \$now\""} 

이 예에서는 부분적으로 X 만있는 배열을 처리하지 않습니다. when 표현식의 배열 인덱스를 사용하여 개별 비트를 테스트 할 수는 있지만 Modelsim tcl에서 프로그래밍 방식으로 배열의 경계를 결정하는 방법은 명확하지 않습니다.

모든 when 조건을 nowhen *으로 취소 할 수 있습니다.

관련 문제