สคริปต์ Quartus II Tcl เกือบทุกตัวจะเปิดโครงการ มีวิธีการมากมายสําหรับการเปิดโครงการและหน้านี้มีตัวอย่างโค้ดสําหรับการเปิดโครงการ
การเขียนสคริปต์จะมีประโยชน์มาก เพื่อให้ชื่อโครงการและการแก้ไขถูกส่งผ่านไปยังสคริปต์ในขณะทํางาน ตามข้อกําหนดของบรรทัดคําสั่ง ซึ่งช่วยให้นําสคริปต์กลับมาใช้ซ้ําได้ง่ายด้วยโครงการต่างๆ แพคเกจ cmdline Tcl ที่มาพร้อมกับซอฟต์แวร์ Quartus II ช่วยให้การส่งคําสั่งไปยังสคริปต์เป็นเรื่องง่าย
นี่เป็นตัวอย่างของโค้ดที่เปิดโครงการที่มีชื่อโครงการและชื่อการปรับปรุงที่คุณระบุว่าเป็นข้อความอธิบายบรรทัดคําสั่ง
แพคเกจต้องใช้ตัวเลือกชุด cmdline {\ { "project.arg" "" "ชื่อโครงการ" } \ { "revision.arg" "" "" "ชื่อการปรับปรุง" } ชุดอาร์เรย์เลือก [::cmdline::getoptions quartus(args) $options] project_open $opts(project) -การปรับปรุงแก้ไข $opts(แก้ไข)
ที่พรอมท์ DOS หรือ Shell คุณสามารถเรียกใช้สคริปต์ที่มีโค้ดดังกล่าวตามที่แสดงไว้ที่นี่:
quartus_sh -t script.tcl -project top -การแก้ไขก่อน
การปรับปรุงรหัสตัวอย่าง
มีหลายวิธีที่สามารถแก้ไขโค้ดตัวอย่างเพื่อเพิ่มเช็คและการปรับปรุง
การตรวจสอบข้อผิดพลาดอย่างง่าย
คําสั่ง project_open แสดงข้อผิดพลาดหากไม่มีโครงการที่ระบุ ใช้คําสั่ง project_exists เพื่อตรวจสอบว่ามีอยู่ก่อนเปิดหรือไม่ ดังที่แสดงในตัวอย่างนี้:
แพคเกจต้องใช้ตัวเลือกชุด cmdline {\ { "project.arg" "" "ชื่อโครงการ" } \ { "revision.arg" "" "" "ชื่อการปรับปรุง" } ชุดอาร์เรย์เลือก [::cmdline::getoptions quartus(args) $options] หาก { ![ project_exists $opts(project)] } { post_message -type error "Project $opts(project) ไม่มีอยู่" ออก } project_open $opts(project) -การปรับปรุง$opts(แก้ไข)
การจัดการชื่อการปรับปรุงที่ไม่ระบุ
คุณยังสามารถปรับเปลี่ยนโค้ดตัวอย่างเพื่อจัดการกับกรณีเมื่อไม่ได้ระบุชื่อการปรับปรุงใหม่เป็นส่วนเพิ่มเติมของบรรทัดคําสั่ง ด้วยตัวอย่างโค้ดบางส่วนด้านล่าง คุณจําเป็นต้องระบุชื่อการแก้ไขเฉพาะเมื่อมีการแก้ไขมากกว่าหนึ่งครั้งในโครงการของคุณ สําหรับคนอื่นๆ โค้ดสามารถเปิดการปรับปรุงเริ่มต้นบางอย่างโดยอัตโนมัติแม้ว่าจะมีการแก้ไขมากกว่าหนึ่งครั้งในโครงการของคุณ
คําสั่ง Quartus II Tcl project_openค่าเริ่มต้นในการเปิดการปรับปรุงด้วยชื่อเดียวกับโครงการที่ระบุหากไม่มีการระบุชื่อการปรับปรุงด้วยตัวเลือก-การปรับปรุง ตัวอย่างนี้แสดงฟังก์ชันการทํางานเริ่มต้นของคําสั่งproject_open
แพคเกจต้องมีตัวเลือกชุด cmdline {\ { "project.arg" "" "ชื่อโครงการ" } \ { "revision.arg" "" "" "ชื่อการปรับปรุง" } ชุดอาร์เรย์ opts [::cmdline::getoptions quartus(ar args) $options] หาก { [string equal "" $opts(แก้ไข)] } { project_open $opts(project) -การปรับปรุง$opts (โครงการ) } อื่น { project_open $opts(project) -การปรับปรุง$opts(แก้ไข) }
คุณสามารถใช้ตัวอย่างโค้ดต่อไปนี้เพื่อแก้ไขลักษณะการทํางานดังกล่าวในรูปแบบต่างๆ ที่ช่วยประหยัดเวลาเมื่อคุณเรียกใช้สคริปต์ ตัวอย่างเหล่านี้จะระบุว่าจะไม่มีการระบุชื่อการแก้ไขใดเป็นส่วนเพิ่มเติมของบรรทัดคําสั่ง และใช้วิธีการอื่นๆ ในการระบุชื่อการปรับปรุงที่จะใช้กับตัวเลือก-การปรับปรุงแก้ไขสําหรับคําสั่งproject_open
ค่าเริ่มต้นเป็นชื่อการปรับปรุง
คุณสามารถใช้รหัสต่อไปนี้เพื่อเปิดโครงการที่มีการแก้ไขเพียงหนึ่งครั้งเมื่อไม่ได้ระบุชื่อการปรับปรุงเป็นส่วนเพิ่มเติมของบรรทัดคําสั่ง โครงการที่มีการแก้ไขเพียงฉบับเดียวมักจะมีการแก้ไขชื่อโครงการและชื่อโครงการเดียวกัน แต่ไม่จําเป็น การใช้คําสั่ง project_open ที่ไม่มีตัวเลือก -การปรับปรุงจะ สร้างข้อผิดพลาดเมื่อชื่อการปรับปรุงของโครงการไม่ตรงกับชื่อโครงการ
ตัวอย่างนี้ใช้คําสั่ง get_project_revisions เพื่อดึงรายการการปรับปรุงทั้งหมดในโครงการที่ระบุ หากมีการแก้ไขเพียงหนึ่งข้อ (ความยาวของรายการคือ 1) สคริปต์จะใช้ชื่อการปรับปรุงนั้นเพื่อเปิดโครงการ การใช้รายการชื่อการปรับปรุงรับประกันว่าโครงการจะเปิดขึ้นอย่างถูกต้อง แม้ว่าชื่อการปรับปรุงจะแตกต่างจากชื่อโครงการก็ตาม
แพคเกจจําเป็นต้องมีตัวเลือกชุด cmdline {\ { "project.arg" "" "ชื่อโครงการ" } \ { "revision.arg" "" "" "ชื่อการปรับปรุง" } ชุดอาร์เรย์เลือก [::cmdline::getoptions quartus(args) $options] หาก { [string equal "" $opts(การปรับปรุง)] } { ตั้งค่าการปรับปรุง [get_project_revisions $opts(project)] หาก { 1 == [llength $revisions] } { set opts(revision) [lindex $revisions 0] } อื่น { post_message -type error \ "การปรับปรุงมากกว่าหนึ่งครั้งในโครงการ \ $opts(project)" ออก } project_open $opts (โครงการ) -$optsการปรับปรุงแก้ไข(การปรับปรุง)
ค่าเริ่มต้นของการปรับปรุงปัจจุบัน
คุณสามารถใช้รหัสต่อไปนี้เพื่อเปิดโครงการและค่าเริ่มต้นของการปรับปรุงปัจจุบันหากคุณไม่ได้ระบุชื่อการปรับปรุงเป็นส่วนเพิ่มเติมของบรรทัดคําสั่ง การปรับปรุงปัจจุบันคือการปรับปรุงที่คุณทํางานด้วยครั้งสุดท้ายก่อนการปิดโครงการ ในโครงการที่มีการปรับปรุงหนึ่งฉบับ การปรับปรุงนั้นเป็นการปรับปรุงปัจจุบันเสมอ ตัวอย่างนี้ใช้คําสั่ง get_current_revision เพื่อดึงชื่อการปรับปรุงปัจจุบันสําหรับโครงการที่ระบุ
แพคเกจต้องใช้ตัวเลือกชุด cmdline {\ { "project.arg" "" "ชื่อโครงการ" } \ { "revision.arg" "" "ชื่อการปรับปรุง" } ชุดอาร์เรย์ opts [::cmdline::getoptions quartus(args) $options] หาก { [string equal "" $opts(แก้ไข)] } { set opts(revision) [get_current_revision $opts(project)] } project_open $opts(project) -การปรับปรุง$opts(การปรับปรุง)
ชื่อการปรับปรุงแก้ไขการพิมพ์
ในบางกรณี คุณอาจต้องการชื่อการปรับปรุงหากมีการแก้ไขมากกว่าหนึ่งครั้งในโครงการ และถ้าไม่มีให้ โปรดดูรายการชื่อการปรับปรุง คุณสามารถใช้รหัสต่อไปนี้เพื่อพิมพ์การปรับปรุงทั้งหมดเมื่อไม่ได้ระบุชื่อการปรับปรุงใหม่เป็นข้อความอธิบายบรรทัดคําสั่ง และมีการปรับปรุงมากกว่าหนึ่งครั้งในโครงการ ตัวอย่างนี้ใช้คําสั่ง get_project_revisions เพื่อดึงรายการการปรับปรุงทั้งหมดในโครงการ
แพคเกจต้องใช้ตัวเลือกชุด cmdline {\ { "project.arg" "" "ชื่อโครงการ" } \ { "revision.arg" "" "" "ชื่อการปรับปรุง" } ชุดอาร์เรย์เลือก [:cmdline::getoptions quartus(args) $options] หาก { [string equal "" $opts (แก้ไข)] } { post_message "คุณไม่ได้ระบุชื่อการปรับปรุง แก้ไข" ตั้งค่าการปรับปรุงแก้ไข [get_project_revisions $opts(project)] หาก { 1 == [llength $revisions] } { set opts(revision) [lindex $revisions 0] post_message "มีการปรับปรุงหนึ่ง$opts(แก้ไข) } } อื่น { post_message "การปรับปรุงเหล่านี้มีอยู่ในโครงการ:" การปรับปรุงจุดเริ่มต้น $revisions { post_message "$revision" } ออก } project_open $opts(project) -การปรับปรุง$opts(แก้ไข)
ตัวอย่างที่รวมเข้าด้วยกัน
ตัวอย่างเหล่านี้แสดงวิธีรวมการปรับปรุงบางอย่างที่อธิบายไว้ข้างต้น
ตัวอย่างที่ 1
ตัวอย่างง่ายๆ ต่อไปนี้จะตรวจสอบความถูกต้องของโครงการที่ระบุ หากไม่มีชื่อการปรับปรุงใดที่ระบุเป็นส่วนเพิ่มเติมของบรรทัดคําสั่ง ก็จะเป็นการเปิดการปรับปรุงปัจจุบัน หรือจะเปิดโครงการที่มีชื่อการปรับปรุงที่ระบุเป็นส่วนเพิ่มเติมของบรรทัดคําสั่ง
แพคเกจจําเป็นต้องมีตัวเลือกชุด cmdline {\ { "project.arg" "" "ชื่อโครงการ" } \ { "revision.arg" "" "" "ชื่อการปรับปรุง" } ชุดอาร์เรย์เลือก [::cmdline::getoptions quartus(args) $options] หาก {[project_exists $opts $options(project)]} { ถ้า {[string equal "" $opts(แก้ไข)]} { project_open $opts(project) -การปรับปรุง \ [get_current_revision $opts(project)] } อื่น { project_open $opts(project) -การปรับปรุงแก้ไข $opts(revision) } } อื่น { post_message -พิมพ์ ข้อผิดพลาด "Project $opts(Project) ไม่มีอยู่" ออก }
ตั้งแต่เวอร์ชั่น 4.1 ของซอฟต์แวร์ Quartus II (เวอร์ชั่น 3.0 ของแพ็คเกจ ::quartus::p roject) คําสั่ง project_open จะรองรับตัวเลือก -current_revision หากคุณใช้ซอฟต์แวร์ Quartus II เวอร์ชัน 4.1 หรือใหม่กว่า คุณสามารถแทนที่คําสั่งต่อไปนี้ในสคริปต์ข้างต้น
project_open $opts (โครงการ) -การปรับปรุงแก้ไข \ [get_current_revision $opts(โครงการ)]
ด้วยคําสั่งนี้
project_open $opts (โครงการ) -current_revision
ตัวอย่างที่ 2
ตัวอย่างต่อไปนี้จะรวมการปรับปรุงต่างๆ ที่อธิบายไว้ด้านบน โดยจะตรวจสอบยืนยันโครงการที่ระบุและเปิดขึ้นหากมีการปรับปรุงเพียงฉบับเดียว หากมีการแก้ไขมากกว่าหนึ่งรายการ รายการนั้นจะพิมพ์รายการการปรับปรุงและทางออก
แพคเกจต้องใช้ตัวเลือกชุด cmdline {\ { "project.arg" "" "ชื่อโครงการ" } \ { "revision.arg" "" "" "ชื่อการปรับปรุง" } ชุดอาร์เรย์เลือก [::cmdline::getoptions quartus(args) $options] หาก { ![ project_exists $opts(project)] } { post_message -type error "Project $opts(project) ไม่มีอยู่" } หาก { string equal "" $opts(revision)] } { post_message "คุณไม่ได้ระบุชื่อการปรับปรุง ตั้งค่าการปรับปรุงแก้ไข [get_project_revisions $opts(project)] หาก { 1 == [llength $revisions] } { set opts(revision) [lindex $revisions 0] post_message "มีการปรับปรุงหนึ่ง$opts(แก้ไข)ion)" } อื่นๆ { post_message "การปรับปรุงเหล่านี้มีอยู่ในโครงการ:" การปรับปรุงจุดเริ่มต้น $revisions { post_message "$revision" } ออก } project_open $opts(project) -การปรับปรุง$opts(แก้ไข)