ตัวอย่าง Quartus® II Tcl: การเปิดโครงการ

author-image

โดย

สคริปต์ 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(แก้ไข)

เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้