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

ทําไมซอฟต์แวร์ Quartus II จึงไม่สังเคราะห์ตัวแปรอาร์เรย์ที่บรรจุไว้ใน SystemVerilog อย่างถูกต้อง

สิ่งแวดล้อม

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

    เนื่องจากปัญหาในซอฟต์แวร์ Quartus® II ตัวแปรอาร์เรย์ที่ลงทะเบียนใน SystemVerilog อาจไม่สามารถสังเคราะห์ได้อย่างถูกต้อง ปัญหานี้อาจเกิดขึ้นเมื่อกําหนดตัวแปรอาร์เรย์มิติเดียวให้กับตัวแปรอาร์เรย์ที่บรรจุที่ลงทะเบียนไว้ถ้าช่วงดัชนีไม่ได้ระบุไว้อย่างชัดแจ้ง

    ตัวอย่างเช่น ซอฟต์แวร์ Quartus II อาจสังเคราะห์รหัสต่อไปนี้อย่างไม่ถูกต้อง:

    logic clk;
    logic signed [3:0][31:0] packed_array_variable;
    logic signed [31:0] array_variable;

    always_ff @ (posedge clk)
        packed_array_variable[0] <= array_variable;
    ความละเอียด

    เพื่อแก้ไขปัญหานี้ ให้ประกาศช่วงดัชนีอย่างชัดแจ้งเมื่อกําหนดตัวแปรอาร์เรย์มิติเดียวให้กับตัวแปรอาร์เรย์ที่บรรจุไว้

    ตัวอย่างเช่น ในโค้ดข้างต้น ให้เปลี่ยนบรรทัดสุดท้ายเป็น:

        packed_array_variable[0][31:0] <= array_variable;

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

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

    อุปกรณ์ที่ตั้งโปรแกรมได้ Intel®

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