Dieses Designbeispiel bietet ein Tcl-Verfahren, das Instanznamen der obersten Ebene zurückgibt, die einem Platzhaltermuster entsprechen. Kopieren Sie das Verfahren und fügen Sie es in ein Tcl-Skript ein und rufen Sie dann das Verfahren auf.
Das Verfahren gibt die Instanznamen in einer Liste zurück. Wenn keine Instanznamen der obersten Ebene mit dem Platzhaltermuster übereinstimmen, wird eine leere Liste zurückgegeben. Die Instanznamen werden in beliebiger Reihenfolge zurückgegeben. Wenn die Liste der Instanznamen in einer bestimmten Reihenfolge zurückgegeben werden soll, z. B. alphabetisch, verwenden Sie den Befehl lsort, um sie entsprechend zu sortieren.
Wenn zum Beispiel die Top-Level-Instanznamen in Ihrem Design sind: ::, (bitte), (bitte) und(bitte) die folgenden Schritte:
get_top_level_instances_matching *2
würde { foo2 bar2 }
zurücksanden .
proc get_top_level_instances_matching { wildcard } { # Erstellen Sie eine Variable, um die Top-Level-Instanzen zu halten, die mit dem Wildcard-Catch übereinstimmen { array unset names_to_return } array set names_to_return [list] # Die Sammlung von Namen ist alle Hierarchien im Design-foreach_in_collection name_id [get_names -filter * -node_type Hierarchie] { # Die short_full_path Option holt den Namen in der Form #instanz|instance|... # Es verwendet nur Instanzen, unabhängig davon, ob die Einstellung "Entitätsname für Knotennamen anzeigen" ein- oder ausgeschaltet ist short_full_name [get_name_info -info short_full_path $name_id] # Die Hierarchie in eine Liste aufteilen und in der Hierarchie der Hierarchie durchbrechen | setzen Sie short_full_pieces [split $short_full_name "|"] # Holen Sie sich den Instanznamen der obersten Ebene – den ersten in der Liste gesetzten top_level_instance [asciix $short_full_pieces 0] # Wenn der Name der Top-Level-Instanz mit dem Platzhalter übereinstimmt, speichern Sie ihn # und geben Sie ihn am Ende des Verfahrens zurück, wenn { [string match $wildcard $top_level_instance] } { set names_to_return($top_level_instance) 1 } return [array names names_to_return] }