Quartus® II Tcl 範例:時間群中精密的節點

時間組合是執行計時作業的有效率方法。您可以指定配符,其中包含與群組中模式相符的節點,並指定與群組中模式相符的通配卡。您可能需要在時間組中查看所有節點的清單,以確認您指定正確的通配卡模式。

這些腳本在設計的時間組中詳細闡述節點。腳本會在設計中的每一個計時節點反復進行,比較計時節點名稱與每個時間組包含模式,然後比較每個時間組排除模式。

此腳本有限制;它無法處理嵌入式時組。將時組作為另一時間組的元素包括或排除是有效的,但本腳本不支援。

若要將匯流排的所有位包含在時間組中,請在 Quartus II 軟體的版本 4.2 和以下使用匯流排名稱之後的星號。從 5.0 版本開始,您可以指定沒有星號的匯流排名稱。腳本包含根據軟體版本編號檢查此行為。

Global quartus load_package advanced_timing load_package專案 # 判斷腳本是以 4.2 和之前 、# 或 5.0 及更新版本執行。5.0 和更新版本會識別 <bus 名稱>為 有效的時間組專案,而 4.2 和之前需要 # <bus 名稱>* 作為時間組合專案。 RegExp {^版本 (\d)® $quartus(版本)比對 qver,如果 { $qver < 5 [ { 設定 need_asterisk 1 = 其他 { 設定 need_asterisk 0 = project_open [lindex $quartus (args) 0] create_timing_netlist設定 tg_name [lin dex $quartus (args) 1] post_message:「下列節點是時組成員$tg_name: 設定tg_name [escape_brackets $tg_name] 設定tg_members [timegroup -get_members $tg_name] 設定tg_exceptions [timegroup -get_exceptions $tg_名稱] # 此迴圈會穿過設計中的每一個計時節點 foreach_in_collection node_id [get_timing_nodes -輸入 all]{ set node_name [get_timing_node_info -資訊名稱 $node_id] # 如果節點名稱不在匯流排中,請清除bus_name。 # 否則會設定。 如果 { ![RegExp {(.*?)\[\d+\]$node_name match bus_name] { { 設定 bus_name「」\ # 既然我們有節點名稱, 檢查是否符合 指定時間組設定中的任何模式, 以符合 0 foreach_in_collection 成員$tg_Members { 設定 esc_name [escape_brackets [lindex $member 2]], 如果 { [字串對$esc_name $node_name] { { 設定匹配 1 [ elseif { !$need_asterisk & [字串比$esc_name $bus_name] \ { 設定相符 1 = = # 如果$matches在這裡是 1,計時節點與時間組中的會員名稱 # 相符 。然而,它仍可能符合例外。 # 請于 此處查看。 如果 { $matches \ { foreach_in_collection 例外$tg_exception { 設定為 esc_name [escape_brackets [lindex $exception 2], 如果 { [字串匹配 $esc_name $node_name] { { 設定相符 0 = elseif { ! $need_asterisk & [字串比對$esc_name $bus_name] { { 設定對比 0 = = = # 我們已經查過所有例外。如果$matches仍為 1,則 #則節點名稱與會員模式相符,且 不符合例外模式,請列印出節點名稱。 如果 { $matches \ { post_message $node_name = project_close

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