計時分析器範例:故障頻率摘要報告

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 代碼,並將它儲存在檔案中以使用腳本。

# 報告設計是否具有負鬆懈的頻率網域。
# 如果有負鬆懈的頻率網域,請將這些資訊放進
表格中,然後寫入檔案。
# 如果適當
設定output_file_name [get_current_revision].failing_clock_domains套件需要架構,請在此處變更檔案名稱

::矩陣
套件需要報告

# 建立對照表,以掌握failing_paths_matrix設定的故障路徑資訊
[::struct::矩陣];
$failing_paths_矩陣新增欄 5 #

必須針對所有操作條件設定執行分析all_operating_conditions_col
[get_available_operating_conditions]

# 針對每個頻率域集執行這些類型的分析
analysis_list [清單「設定」「按住」「復原」「移除」]#

穿過所有操作條件
foreach_in_collection operating_conditions_obj $all_操作_conditions_col

   # 設定作業狀態, 更新計時網路清單
   set_operating_conditions $operating_conditions_obj
   update_timing_netlist #

   取得操作條件的英文字母名稱
   設定operating_conditions_display_name   [get_operating_conditions_info -display_name $operating_conditions_obj]

   # analysis_type $analysis 如果

      必須列印分析
      類型analysis_display_name [字串$analysis_輸入]

      # 取得所有頻率域
      集的相關資訊,clock_domain_info_list [get_clock_domain_info -${analysis_type[] #

      穿過所有的頻率領域,然後拔出任何具有
      負鬆懈功能
      的domain_info $clock_domain_info_list

         \ # domain_info有頻率名稱、它的鬆懈,以及 TNS。
         # 摽取這些。      
         foreach { clock_name鬆懈endpoint_tns edge_tns = $domain_info { break

         ® # 如果鬆懈是負的,
         如果 {
         0 > $slack \ {
            $failing_paths_matrix 新增一排 [清單 $slack $endpoint_tns $clock_name \
               $operating_conditions_display_name $analysis_display_name] [ _ # 完成
      所有頻率網域以進行特定
      # 計時分析 (設定, 握住等  
   )
   # 完成針對特定操作 # 狀況的所有分析類型
─
完成所有操作條件 #
準備寫出附有結果摘要的檔

#如果對照表中有任何行,則有路徑導致時間失效。
# 我們必須使用這些資訊列印表格。如果
表格中沒有 #行,則沒有路徑故障的時間,因此
,如果 { 0 == [$failing_paths_矩陣行] \ {

   # 列印出一條快速訊息
   ,post_message「沒有頻率領域故障計時

   」##如果檔案開啟時發生錯誤,請列印一則訊息,表示
   #否則, 說
   如果 { [捕捉 { 開啟 { open $output_file_name w = fh] [ {
      post_message - 類型錯誤「無法開啟檔案:$fh」,則沒有功能變數名稱故障
   的時間 。否則 {   
      將$fh「沒有頻率網域故障計時」
      抓到 { 關閉$fh $failing_
   paths_matrix 排序的對照表行 # 排序最差的鬆懈是第
   一排 -增加 0

   # 放在接頭排
   $failing_paths_矩陣插入行 0[清單「Slack」「End Point TNS」「時鐘」 \
      「操作條件」「計時分析   

   」]#我們需要一個定義的樣式來列印結果表
   擷取 {:report:rmstyle basicrpt =
   ::report::d efstyle basicrpt {cap_rows 1\\ 資料
      集 [分割「[字串重複」[列];]]
      上一組 [分頭」 [字串重複」+ - " [列]]+」]
      下組
      [top get]topcapsep set [top get]
      topdata set [資料取得]
      頂端啟
      用 topcapsep 啟用
      底部啟用
      tcaption $cap_rows 
   [ #

   建立報告, 設定列有一個填充空間,
   並 # 列印出矩陣與指定格式
   的捕獲 { r destroy
   \:report::report::report:report r 5 style 基本
   支援{set col 0 \ $col < [r 列]\ \ incr col \ {
      r pad $col兩個「」
   \
   post_message「時鐘網域故障計時\n[r printmatrix $failing_paths_matrix]」#

   如果 {
   [捕捉 { 開啟 $output_file_name w [ fh] , 將報告儲存到檔案中 {
      post_message 類型錯誤「無法開啟檔案:$fh」[   
   其他 {
      將$fh「頻率域故障計時
      」r printmatrix2 通道 $failing_paths_矩陣$fh擷[無法開啟檔案
      :$fh $fh」[ 其他 \ 將$fh「頻率領域故障計時」r printmatrix2 通道 $failing_paths_矩陣$fh擷擷

這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。