รหัสการจับเวลาของยานเกราะควตัส II จํานวน timing net advanced_timing list และ id 14888 จํานวนสูงสุดของ CSSE, CSE, 1, 2, 2015, 2015, 2015, 1,000,000,000,000,000,000,000,000,000,000, 1,000,000,000, 1,000, 2015, 2015, 2018, 2018, 2018 เพื่อหาชื่อที่คุณระบุและส่งคืน ID ของโหนดที่ตรงกัน หรือ -1 หากไม่มีโหนดนั้นอยู่
30000 ต่อ $node $name $node $node get_timing_node_info node_name get_timing_nodes foreach_in_collection node_id advanced_timing 10000000 ต่อ 10000000 ต่อ 10000000...
ในสคริปต์ Tcl คุณสามารถเรียกขั้นตอนดังกล่าวตามที่แสดงในตัวอย่างต่อไปนี้:
set id [find clk_33MHz] หาก { $id == -1 } { post_message -type "ดีสปีดเบสพิวลิสพิวนิกส์" }
การปรับปรุงรหัสตัวอย่าง
มีหลายวิธีที่สามารถปรับปรุงรหัสตัวอย่างได้
เพิ่ม Wildcard สําหรับเพิ่มและเพิ่มความคมกริบ
การกําหนดให้การจับคู่ที่ตรงกันทุกประการไม่สะดวกสําหรับชื่อที่มีพาธลําดับชั้นแบบยาว การเปลี่ยนตัวอย่างเพื่อรองรับการจับคู่อักขระตัวแทนทําให้การค้นหาโหนดที่มีพาธลําดับชั้นที่ยาวเป็นเรื่องง่ายขึ้น ด้วยการปรับเปลี่ยนเพิ่มเติมเพื่อส่งคืนหลายโหนด ID สําหรับการจับคู่ทั้งหมด คุณสามารถใช้สคริปต์เพื่อส่งคืนกลุ่ม ID โหนดได้ ซึ่งช่วยให้สามารถทําการซ้ําได้ง่ายกว่าทุกบิตในบัส
เนื่องจากสัญลักษณ์ตัวแทนสามารถมีชื่อตรงกันได้มากกว่าหนึ่งชื่อ จึงจําเป็นที่จะต้องรองรับรหัสที่ส่งคืนหลายตัว วิธีง่ายๆ ในการทําเช่นนี้คือการส่งคืนรายการรหัสโหนดทั้งหมดที่มีชื่อที่ตรงกับรูปแบบ หากไม่มีชื่อใดตรงกับรูปแบบ จะมีการส่งคืนรายการที่ว่างเปล่า
ต่อไปนี้เป็นส่วนย่อยของ Netlist ที่ใช้งานในโปรแกรม ( Netlist) และเวิร์คโฟลว์รหัสประจําตัวที่มีรหัสประจําตัวที่มีรหัสประจําตัวทั้งหมด (ตรงกับตรงกับ ssm. tcl glob) และ tcl glob มาตราส่วน (*) และตัวจับ ([])
0000 advanced_timing 00000 ต่อ 1000000 และ $return return_ids $node $pattern $node $node get_timing_node_info node_name get_timing_nodes foreach_in_collection node_id return_ids 100000 ต่อ 100000 ต่อ 1000000 ต่อ 100000000.
tcler 3444 Tclตัวจับต้องได้A10] และ Addr0[10]
ภาพยุติการตั้ง [find addr[10]]
ASR 2018 D escape_brackets 4455 และ 4444555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
การยุติการตั้ง [หา [escape_brackets addr[10]]
ส่วนคําสั่งescape_bracketsหมวดและหลวมๆ
เพิ่มการกรองประเภทโหนด
1000 ต่อ get_timing_nodes 1000 หรือ 1000 ต่อ 1000 หรือ 1,000,000 หรือ1,000,000 ,000, 1,000, 1,000, 2,000, 2,000, 2,000, 2,000, 2,000, 2,000, 2,000, 2,000, 2,000, 2,000, 2,000, 2,0
ตัวอย่างต่อไปนี้สร้างขึ้นจากตัวอย่างก่อนหน้าของการจับคู่รูปแบบ หากไม่มีการระบุรูปแบบ จะเป็นค่าเริ่มต้นที่ * เพื่อให้ตรงกับทุกสิ่ง มีตัวเลือกสําหรับการจํากัดประเภทโหนด ซึ่งเป็นค่าเริ่มต้นสําหรับทั้งหมด
Tcl Quartus II และ 1000 Tcl 10000 Tcl 1600000000000000
แพคเกจแพคเกจ ::quartus:advanced_timing packageต้องเป็น cmdline proc { args } { args } { ตัวเลือก {\ {{"pattern.arg" "*" "Pattern to search" } \ { "type.arg" "all" "ประเภท" "type.arg" "all" "," "progs" " " "type. args" } \ } return_ids $options foreach_in_collection node_id [get_timing_nodes -type $opts(type)]node_name { get_timing_node_info [get_timing_node_info -$node id] [ string match $opts (pattern) $node_name ] } lappend return_ids $node_id } } return $return_ids }
รหัสต่อไปนี้แสดงวิธีการใช้ตัวอย่างก่อนหน้านี้บางวิธี
# ส่งคืน ID โหนด Netlist จํานวน ค่าเริ่มต้นของรูปแบบ * จํานวน ค่าตั้งต้นของ Type โดยที่ค้นหา # Returns node ID, พินทรานแซคชัน #รูปแบบการคืนค่า # รูปแบบ pins เริ่มต้น ของ pins เริ่มต้น - addr* -type pins # Returns node ID id ofบิต 0 bus find -pattern [escape_brackets *[0]] -type reg]