SDO 파일 데이터 결합

author-image

기준

이 스크립트는 최대 및 최소 타이밍 분석 중에 Quartus® II 소프트웨어에서 생성한 두 개의 SDO 파일의 타이밍 매개변수가 결합된 SDO 파일을 만듭니다.
Quartus II 소프트웨어는 각 트리플릿의 3개의 지연 값에 대해 최소 또는 최대 지연 값을 사용하는 별도의 SDO 파일을 생성합니다. SDO 파일의 트리플릿은 다음과 같은 최소, 일반 및 최대 지연 값을 지원합니다(min:typ:max). 최대 타이밍 분석을 위해 Quartus II 소프트웨어에서 생성한 SDO 파일에는 최대 지연 값(최대:max:max)만 포함된 지연 세 쌍둥이가 있습니다. 최소 타이밍 분석 중에 생성된 SDO 파일에는 다음과 같은 최소 지연 값만 포함된 지연 트리플릿이 포함되어 있습니다(최소:min:min).
이 스크립트는 SDO 파일과 최소 및 최대 값을 결합하여 최소 및 최대 숫자(min:max:max)가 모두 있는 트리플릿으로 하나의 파일을 만듭니다. 일반적인 지연 값에 대해 최대 지연 값도 중복됩니다. 이 스크립트에서 생성한 파일은 Altera 최소/최대 혼합 분석을 위해 작동하도록 보장되지 않습니다.

다음과 같은 스크립트를 실행합니다: quartus_sh -t combine_sdo.tcl -min_sdo <min sdo 파일> -max_sdo <max sdo 파일> -new_sdo <새진 sdo 파일>

패키지에는 cmdline

변수가 필요합니다::argv0 $::quartus(args)

설정 옵션 { {
                  {"min_sdo.arg" ""최소 타이밍이 있는 SDO의 파일 이름" }
                  { {"max_sdo.arg" "최대 타이밍이 있는 SDO의 파일 이름" } {
                  {"new_sdo.arg" "파일 이름" 최소/최대 타이밍의 SDO"} } \
              } 배열 세트
옵트 [:::cmdline::getoptions::argv0 $options "Bad

option"] 설정 최소 [open $opts(min_sdo)]
세트 최대 [open $opts(max_sdo)]
설정 [open $opts(new_sdo) w]

# 파일 세트의 줄 번호를
추적 line_num 1 {

1 } { #

    [$min min_line 가져옵니다] more_max more_min 설정된 최대 sdo 파일 집합에서 다음 줄 읽기
    [$max max_line 가져옵니다.
    {$more_min < 0 || $more_max < 0 } {

        한 파일에 다른 파일보다 더 많은 줄 #이 있을 수
        있습니다. 여기에 대해 경고하십시오.
        {$more_min >= 0 }
            {post_message -type warning \
                "$opts(min_sdo)에서 줄 $line_num으로 시작하는 건너뛰기 선"
        }
        {$more_max > post_message 0 } { post_message
            -type warning \
                "$opts(max_sdo)에서 줄 $line_num으로 시작하는 건너뛰기 선" }

        # 파일 중 하나 이상이 더 이상 데이터가 없기 때문에
        루프를 중지해야 합니다.
        중단
    }

    {[regexp {\(\d+:\d+:\d+:\\)} $min_line] } {

        # 줄에 지연 트리플릿이 있는 경우 # 값을
        결합해야 합니다 # new_line

        인쇄할 텍스트를 축적합니다.
        #line_differences 지연 트리플릿 외에 # 줄에 차이가 있을 경우   설정됩니다.
        new_line "" 세트
        line_differences 0 #

        줄에 지연 트리플릿이 있는 동안...
        {동안 {[regexp {\(\d+:\d+:\d+:\\)} $min_line] } {

            # 지연 트리플릿, #지연 값 자체까지 모든 것을
            추출합니다. 
            #delay triplet
            regexp {^(.*?\())(\d+):\d+:\d+(\).*$)} $min_line \
                min_start min_value min_line
            regexp {^(.)와 일치합니다. *?\()\d+:\d+:(\d+)(\).*)} $max_line \
                일치 max_start max_value max_line # 지연
            트리플릿
            외에 줄 #에 차이가 있는 경우 플래그 설정 { 경우 { ! [문자열 동일 $min_시작 $max_start] } {
                line_differences 1
            }

            # 결합된 지연 트리플릿을 새 줄
            부록 new_line $min_start \
                $min_value : $max_value : $max_value
        }

        # 줄에 남은 텍스트에
        #차이를 확인합니다.
        { 경우 { ! [문자열 동일 $min_line $max_line] }
            { line_differences 1

        }를 설정하면 { $line_difference } {
            post_message -type warning \
                [조인 [목록 \
                           "이 줄 $line_num의 이 부분은 다릅니다." \
                           "$opts(min_sdo): $min_line" \
                           "$opts(max_sdo): $max_line"] \
                     "\n"] } 나머지 줄의 나머지 부분을

        놓습니다. 마지막 지연 트리플릿 후 새
        줄에 함께
        new_line $min_line

    } 기타

        {# 줄에 지연 트리플릿이 없는 경우,
        최소 파일과 최대 파일의 줄은 
        #같아야 합니다(예: 파일에 날짜 스탬프가 있는 경우
        제외). 빠른 검사를 통해 줄 
        번호가 동일한지 확인하고 다른 경우 경고를 인쇄하십시오.
        { 경우 { ! [문자열 동일 $min_line $max_line] } {
            post_message -type warning \
                [조인 [목록 \
                           "Line $line_num이 다릅니다." \
                           "새 파일에는 아래 첫 번째 줄이 포함되어 있습니다." \  "$opts(min_sdo): $min_line" \  "$opts max_sdo(max_sdo): $max_line"] \
                     "\n"]
        } 세트
        new_line $min_line}
    #
    $new $new_line

    incr line_num
}

# 파일을 통해 루핑 완료.
닫기 $min
닫기 $max
닫기

$new post_message "파일을 $opts(new_sdo)로 결합했습니다"

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.