結合 SDO 檔資料

author-image

作者

此腳本會建立一個 SDO 檔案,並結合 Quartus® II 軟體在最大和最小時序分析期間所產生的兩個 SDO 檔案的計時參數。
Quartus II 軟體會產生獨立的 SDO 檔案,使用每個三重裝置中三個延遲值的最小或最大延遲值。SDO 檔案中的三重功能支援這樣的最小、典型和最大延遲值:(最小:typ:max)。Quartus II 軟體為進行最大計時分析而產生的 SDO 檔案,延遲三重組僅包含這樣的最大延遲值:(最大:最大:最大)。在最短時間分析期間產生的 SDO 檔案包含僅包含最小延遲值的延遲三重檔,例如:(最少:分鐘)。
此腳本結合 SDO 檔案與最小和最大值,以建立一個檔案與三個同時具有最小和最大數位的三重檔,例如:(最小:最大:最大)。請注意,對於一般延遲值,也會複製最大延遲值。此腳本所產生的檔不保證由Altera用於混合最小/最大分析。

執行這樣的腳本 :quartus_sh-t combine_sdo.tcl -min_sdo <min sdo 檔案>-max_sdo <max sdo 檔案>-new_sdo <new sdo 檔案>

套件需要 cmdline

變數::argv0 $::quartus (args)

設定選項 {
                  \"min_sdo.arg" "" 「檔案名稱的 SDO 與最小計時」 \
                  \ \"max_sdo.arg"""檔案名稱與最大計時」 \
                  \"new_sdo.arg" 「檔案名稱」 SDO 含最小/最大計時」\
              \
陣列設定選擇 [::cmdline::getoptions::argv0 $options「錯誤選項」]

設定分鐘 [開啟 $opts(min_sdo)]
設定上限 [開啟$opts(max_sdo)]]
設定為新 [開啟$opts(new_sdo)w]

# 追蹤檔案集line_num 1 中的行號,

而 { 1 {

    \ # 從最小讀取下一行,並從最少讀取最大 sdo 檔案
    集more_min [取得$min min_line]
    設定more_max [獲得$max max_line]

    如果 {
    $more_min < 0 || $more_max < 0 { { # 檔案中的資料可能

        比其他檔案多,則在檔案中不再有資料完成
        。在此處發出警告。
        如果 { $more_min >= 0 {
            { post_message類型警告 \
                「從$opts(min_sdo)行$line_num 開始的中斷線路
        」[ 如果 {
        $more_max > = 0 { {
            post_message類型警告 \
                「從$opts(max_sdo)中行$line_num 開始的中斷線路

        」® # 因為至少有一個檔案沒有更多資料,
        因此必須停止迴圈。
        如果

    \[RegExp {(\d+:\d+:\d+\d+\)] $min_line] \

        \ 如果線路有延遲三倍,
        則必須將值 # 合併

        new_line累積文字以列印出來。
        # line_differences設定為   除了延遲三重組以外的 # 行中是否有差異。
        設定new_line「」
        設定line_differences 0

        # 當線上出現三重緩時...
        而 { [RegExp {\(\d+:\d+:\d+\)] $min_line] { {

            # 將一切解壓縮到延遲三重
            ,#延遲值本身, 以及 
            #延遲三重測試
            \^(.*?\(\(\d+):\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_開始]]{
                設定line_differences 1
            =

            # 在新行附錄中將合併的延遲三重組合放在
            一起,new_line $min_start \
                $min_value:$max_value:$max_value ® #

        檢查線路中遺留的任何文字是否存在#
        差異。
        如果 { ![字串等於 $min_line $max_line]{
            設定為 line_differences 1
        \ 如果 {

        $line_differences {
            { post_message -type 警告 \
                [加入 [list]\「
                           線上的這些零件$line_num 不同。」\"$opts(min_sdo):$min_line"\"$opts(max_sdo):$max_line"]\"\n"]
                           #

        把其餘的行, 上一次延遲三重後
        ,#一起出現在新線路
        的附錄new_line $min_line

    { 其他 { #

        如果線路中沒有三重延遲,
        # 檔案最小與最大檔的行號應 
        為 # 相同 (例如檔案中有日期戳
        #)。快速檢查,確定行 
        號是否相同,並線上路不同時列印警告。
        如果 { ![字串等於 $min_line $max_line]{
            post_message類型警告
                \[加入 [list\"Line
                           $line_num 不同。」 \
                           「 新檔案包含下方第一行
                           。」\"$opts(min_sdo):$min_line"\"$opts  max_sdo):$max_line"]\"\n"]
                     [ 設定
        new_line $min_line
    [ #

    將行寫到合併檔案中
    ,讓 $new $new_line

    incr line_num = #

完成迴圈通過檔案。關閉所有
內容$min
關閉$max
關閉$new post_message「

將檔案合併成$opts(new_sdo)」

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