타이밍 분석기 예: 실패한 클럭 요약 보고서

author-image

기준

이 페이지의 스크립트는 지원되는 모든 작동 조건에서 설계의 모든 클럭에 대한 설정, 보류, 복구 및 제거 타이밍 분석을 수행합니다. 스크립트는 타이밍에 실패한 모든 분석에 대한 정보를 나열하는 테이블을 만듭니다. 스크립트는 <revision>.failing_clock_domains라는 파일에 테이블을 씁니다. 분석이 실패하지 않으면 스크립트는 분석에 실패하지 않은 메시지를 파일에 씁니다.

스크립트를 사용하여 설계에 실패한 타이밍 분석 결과에 대한 빠르고 간단한 개요를 얻을 수 있습니다. failing_clock_domains.tcl이라는파일에 스크립트를 저장하는 경우 다음 명령을 사용하여 스크립트를 실행합니다.

quartus_sta --report_script=failing_clock_domains.tcl <project name> [-c <revision name>]

다음은 분석이 타이밍에 실패할 경우 스크립트가 생성하는 표의 예입니다. 표에는 최악의 경우 슬랙, 총 음수 슬랙(TNS), 클럭 이름, 장애가 발생한 작동 조건 및 실패한 분석 유형이 포함됩니다.

클럭 도메인의 타이밍 실패

+--------+---------------+------------+-----------------------+-----------------+
; Slack  ; End Point TNS ; Clock      ; Operating conditions  ; Timing analysis ;
+--------+---------------+------------+-----------------------+-----------------+
; -0.113 ; -0.321        ; IF_RXCLK   ; Slow 1100mV 85C Model ; Setup           ;
; -0.098 ; -0.223        ; core_clk   ; Fast 1100mV 0C Model  ; Hold            ;
+--------+---------------+------------+-----------------------+-----------------+

다음 TCL 코드를 복사하여 붙여서 파일에 저장하여 스크립트를 사용합니다.

# 디자인에 슬랙이 부정적인 클럭 도메인이 있는지 여부를 보고합니다.
# 음수 여유가 있는 클럭 도메인이 있는 경우 해당 정보를
#a 표에 넣고 파일에 기록하십시오.
# [get_current_revision].failing_clock_domains 패키지에 적절한 세트 output_file_name 구조체가 필요한 경우 여기에서 파일 이름을

변경합니다.:매트릭스
패키지에는 보고서

작성 #failing_paths_matrix 설정된 실패한 경로에 대한 정보를 보관할 매트릭스
만들기[::struct::matrix];
$failing_paths_matrix 추가 열 5

# 분석은 [get_available_operating_conditions] all_operating_conditions_col 모든 작동 조건에 대해 수행되어야 합니다
. 각 클럭 도메인

세트에 대해 이러한 유형의 분석을
수행합니다analysis_list [목록 "설정" "보류" "복구" "제거"]

# 모든 운영 조건
foreach_in_collection operating_conditions_obj $all_operating_conditions_col {

   작동 조건 설정,  타이밍 넷리스트
   set_operating_conditions $operating_conditions_obj
   update_timing_netlist 업데이트 #
   [get_operating_conditions_info -display_name $operating_conditions_obj] operating_conditions_display_name 설정된 운영 조건의 영어 텍스트 이름을 얻으십시오 . 모든   유형의   
   분석이 analysis_type $analysis_list

      {# 인쇄해야 하는 경우 분석 유형 이름을 analysis_display_name
      [문자열 $analysis_ 유형]

      #
      [get_clock_domain_info -${analysis_type}] clock_domain_info_list 설정된 모든 클럭 도메인에 대한 정보를 얻고

      모든 클럭 도메인을 탐색하고
      # 네거티브 슬랙
      포리치 domain_info $clock_domain_info_list {

         # domain_info 클럭 이름, 여유 및 TNS가
         있는 모든 클럭 도메인을 꺼내십시오. # 추출합니다.      
         foreach { clock_name 슬랙 endpoint_tns edge_tns } $domain_info {break }

         # 슬랙이 음수인 경우,
         {0 > $slack } { $failing_paths_matrix가 행을 추가하는 경우 표에 #Report에 정보 행을 함께 넣어
            [목록 $slack $endpoint_tns $clock_name \
               $operating_conditions_display_name $analysis_display_name]
         } } # 특정 # 타이밍
      분석(설정, 설정,  보류 등)  
   }
   # 특정 작동 # 조건에 대한 모든 분석 유형 진행
   완료 } # 모든 작동 조건을
거치고 완료 # 결과 요약

#매트릭스에 행이 있는 경우 타이밍에 실패하는 경로가 있는 파일을 작성할 준비를 하십시오.
# 해당 정보를 사용하여 테이블을 인쇄해야 합니다.
표에 # 행이 없으면 타이밍에 실패하는 경로가 없으므로
{ 0 == [$failing_paths_matrix rows] } {

   ##"타이밍을 실패하는 클럭 도메인이 없다"post_message 빠른 메시지를 인쇄하면 성공 메시지를 적어
   두십시오. 파일을

   여는 오류가 있는 경우 #을 말하는 메시지를
   인쇄하십시오. 그렇지 않으면,
   {[catch { open $output_file_name w } }
      {post_message -type 오류 "파일 열 수 없음: $fh" } 다른   
      {$fh "타이밍에 실패한 클럭 도메인이 없습니다"
      catch {$fh } } }} 다른 { # 최악의
   슬랙이 첫 번째
   $failing_paths_matrix 정렬 행이 되도록 매트릭스 행 정렬 -0

   # 헤더 행
   $failing_paths_Matrix 삽입 행 0[목록 "Slack" "End Point TNS" "Clock" \
      "작동 조건" "타이밍 분석" ]   

   # 결과 캐치 표를 인쇄하기 위해 정의된 스타일이 필요합니다 {
   ::report::rmstyle basicrpt}
   ::report::d efstyle basicrpt {{cap_rows 1}}
      { 데이터 세트 [분할 "[문자열 반복 " [[열]]"]
      상단 세트 [split "[문자열 반복 "+ - "[열]]+"]
      하단 세트 [top get]
      topcapsep 세트 [top get]
      topdata Set [data get]
      상단 활성화
      topcapsep 활성화
      하단 활성화
      tcaption $cap_rows 
   } # 보고서

   만들기, 열에 패딩 공간이 하나 있게 설정하고
   지정된 형식 캐치 {r destroy}로 매트릭스를 인쇄합니다
   .
   ::report:report:report r 5 style basicrpt
   {set col 0 } {$col < [r 열]} { incr col } {
      r 패드 $col
   "}
   post_message "클럭 도메인이 타이밍에 실패했습니다\n[r printmatrix $failing_paths_matrix]"

   #
   {[catch { $output_file_name w } fh] } {
      post_message -type 오류 "파일 열 수 없음: $fh"   
   } 기타
      {는 "클럭 도메인 실패 타이밍"
      r printmatrix2channel $failing_paths_matrix $fh
      catch {닫기 $fh } } } $fh
넣습니다.

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