หมายเลขเวอร์ชัน Quartus® II Tcl ใน Verilog Register Bank

author-image

โดย

ขั้นตอนตัวอย่างนี้สร้างไฟล์ Verilog ที่มีมูลค่าฐานสิบหกที่จัดเก็บไว้ในการลงทะเบียนของธนาคาร คุณสามารถใช้ขั้นตอนนี้เพื่อเขียนข้อมูลจํานวนน้อยโดยอัตโนมัติ (เช่น หมายเลขการปรับปรุง) ไปยังธนาคารลงทะเบียนในการออกแบบของคุณ

ไฟล์ Verilog ที่สร้างขึ้นชื่อว่า version_reg.v โทรติดต่อขั้นตอนด้วยหมายเลขฐานสิบหกที่คุณต้องการจัดเก็บไว้ในธนาคารลงทะเบียน มีตัวอย่างวิธีโทรติดต่อขั้นตอนที่ด้านล่างของหน้านี้

เมื่อคุณเรียกใช้กระบวนการในสคริปต์ Tcl คุณควรห่อหุ้มการเรียกขั้นตอนในคําชี้แจงเนื่องจากขั้นตอนส่งคืนข้อผิดพลาดหากมีปัญหาในการสร้างไฟล์ Verilog คุณสามารถเกิดข้อผิดพลาดและแสดงผลได้

proc generate_verilog { hex_value } {

    set num_digits [string length $hex_value]
    set bit_width [expr { 4 * $num_digits } ]
    set high_index [expr { $bit_width - 1 } ]
    set reset_value [string repeat "0" $num_digits]

    if { [catch {
        set fh [open "version_reg.v" w ]
        puts $fh "module version_reg (clock, reset, data_out);"
        puts $fh "    input clock;"
        puts $fh "    input reset;"
        puts $fh "    output \[$high_index:0\] data_out;"
        puts $fh "    reg \[$high_index:0\] data_out;"
        puts $fh "    always @ (posedge clock or negedge reset) begin"
        puts $fh "        if (!reset)"
        puts $fh "            data_out <= ${bit_width}'h${reset_value};"
        puts $fh "        else"
        puts $fh "            data_out <= ${bit_width}'h${hex_value};"
        puts $fh "    end"
        puts $fh "endmodule"
        close $fh
    } res ] } {
        return -code error $res
    } else {
        return 1
    }
}

 

การใช้งบแสดงความได้เปรียบ

ต่อไปนี้เป็นตัวอย่างวิธีเรียกขั้นตอนข้างต้นและแสดงข้อผิดพลาดใดๆ:

set my_hex_number "A5"
if { [catch { generate_verilog $my_hex_number } res] } {
    post_message -type error "Couldn't generate Verilog file\n$res"
}
# If the script gets here, there were no errors.

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