ID บทความ: 000097611 ประเภทข้อมูล: การแก้ไขปัญหา การตรวจสอบครั้งล่าสุด: 15/04/2024

ทําไมตัวอย่างการออกแบบการกําหนดค่าใหม่แบบไดนามิก F-Tile ในตัวแปรพื้นฐาน 400GE-4 FHT ที่เปิดใช้งาน AN/LT ทํางานไม่ถูกต้องในฮาร์ดแวร์

สิ่งแวดล้อม

  • Intel® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    คำอธิบาย

    เนื่องจากปัญหาในซอฟต์แวร์ Quartus® Prime Pro Edition เวอร์ชัน 23.4 F-Tile Dynamic Reconfiguration Design ในตัวแปรพื้นฐาน 400GE-4 FHT เมื่อเปิดใช้งาน AN/LT จะทํางานไม่ถูกต้องในฮาร์ดแวร์

    โดยเฉพาะอย่างยิ่ง หลังจากดําเนินการสคริปต์ tcl เพื่อเรียกใช้ตัวอย่างการออกแบบ คอนโซลระบบจะค้างในขณะที่แสดงข้อความต่อไปนี้:

    อ่านพอร์ต 16 CSR Register ออฟเซ็ตสําเร็จ = 0x142c0, ข้อมูล = 0x2006
    อ่าน ETHERNET ANLT Channel 16 Register anlt_seqcfg_csr4, ออฟเซ็ต = 0x2c0, ข้อมูล = 0x2006
    อ่านพอร์ต 16 CSR Register ออฟเซ็ตสําเร็จ = 0x240, ข้อมูล = 0x0
    ข้อมูล: ค่า port_state = 0x00000000
    อ่านพอร์ต 16 CSR Register ออฟเซ็ตสําเร็จ = 0x240, ข้อมูล = 0x0
    ข้อมูล: ค่า port_state = 0x00000000
    อ่านพอร์ต 16 CSR Register ออฟเซ็ตสําเร็จ = 0x240, ข้อมูล = 0x0
    ข้อมูล: ค่า port_state = 0x00000000
    อ่านพอร์ต 16 CSR Register ออฟเซ็ตสําเร็จ = 0x240, ข้อมูล = 0x0
    ข้อมูล: ค่า port_state = 0x00000000

    ความละเอียด

    เมื่อต้องการหลีกเลี่ยงปัญหานี้ในเวอร์ชัน 23.4 ของซอฟต์แวร์ Quartus® Prime Pro Edition ให้ทําตามขั้นตอนต่อไปนี้:

    1. เปลี่ยน ไดเรกทอรี ไดเรกทอรี<ไดเรกทอรีโครงการตัวอย่างการออกแบบ>/hardware_test_design/hwtest_f/eth_f_dr
    2. เปิดแฟ้ม ftile_eth_anlt_cfgcsr_inc.tcl ในตัวแก้ไขข้อความที่เหมาะสม
    3. ค้นหา ส่วนย่อยของรหัสต่อไปนี้:

    get_reset_port_state_status_0 proc {ch} {

    ใส่ "\tINFO: Channel $ch: Checking port state..."

    ตั้งค่าการหมดเวลา 10

    ตั้งค่า i 0

    ขณะ{1} {

    หาก {$ch > 0xf} {

    ตั้งค่า rdata0 [reg_read [0x200 expr + [expr $ch * 0x4]]]

    } อื่นๆ {

    ตั้งค่า rdata0 [reg_read [expr 0xc0 + [expr $ch * 0x4]]]

    }

    ใส่ $::fileid "\t\tINFO: port_state value = $rdata 0"

    ชุด port_state_value [expr ($rdata 0 >> 29) &0x1]

    ถ้า {($port_state_value == 1) || $i >= ตัวแบ่ง $timeout }

    incr i

    }

    ถ้า {$port_state_value == 1} {

    ใส่ "\tINFO: สัญญาณ port_state เป็นสูง "

    } อื่นๆ {

    ใส่ "\tERROR: mport state ไม่สูง"

    }

    }

    1. เปลี่ยนบรรทัดต่อไปนี้

    จาก:

    ตั้งค่า rdata0 [reg_read [0x200 expr + [expr $ch * 0x4]]]

    ถึง:

    ตั้งค่า rdata0 [reg_read [0x200 expr + [expr [expr 0x0f & $ch] * 0x4]]

    1. บันทึกไฟล์
    2. รันตัวอย่างการออกแบบในฮาร์ดแวร์โดยใช้ไฟล์สคริปต์ที่แก้ไขในคอนโซลระบบ

    ปัญหานี้ได้รับการแก้ไขแล้วตั้งแต่เวอร์ชัน 24.1 ของซอฟต์แวร์ Quartus® Prime Pro Edition

    ผลิตภัณฑ์ที่เกี่ยวข้อง

    บทความนี้จะนำไปใช้กับ 1 ผลิตภัณฑ์

    เอฟพีจีเอและเอฟพีจีเอ SoC Intel® Agilex™ 7

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