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

ทําไมฉันจึงได้รับข้อความ "Found 1 instance of uninferred RAM logic" เนื่องจาก /*synthesis preserve*/ ในพอร์ตที่ไม่เกี่ยวข้อง

สิ่งแวดล้อม

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

    สําหรับตัวอย่างในโค้ดด้านล่าง Quartus® Standard จะมีปัญหาเกี่ยวกับการอนุมาน RAM เนื่องจากการรักษาการสังเคราะห์ /*/

     

    โมดูล Mem

    #(parameter DATA_WIDTH=8, parameter ADDR_WIDTH=6) (

    ข้อมูลอินพุต [(DATA_WIDTH-1):0]

    อินพุต [(ADDR_WIDTH-1):0] read_addr, write_addr

    อินพุตเรา, clk,

    เอาต์พุต [(DATA_WIDTH-1):0] q,

    เอาต์พุต reg [3:0] สถานะ = 0/*การรักษาการสังเคราะห์*/

    );

    simple_dual_port_ram_single_clock simple_dual_port_ram_single_clock_inst (

    .data (ข้อมูล),

    .read_addr (read_addr)

    .write_addr (write_addr)

    .we (เรา),

    .clk (clk),

    .q (q)

    );

    ความละเอียด

    ปัญหานี้เกิดจากข้อจํากัดที่ทราบกันดีว่ามีการใช้การเก็บรักษาใดๆ ในการประกาศโมดูลกับโมดูลทั้งหมดเมื่อใช้สไตล์ Verilog 95 ในการแก้ไขปัญหานี้ ให้ใช้สไตล์คุณลักษณะของ Verilog 2001 คือ:

    แทน:

    เอาต์พุต reg [3:0] สถานะ = 0/*การรักษาการสังเคราะห์*/

    กับ:

    (* การเก็บรักษา *) สถานะเอาต์พุต [3:0] = 0

    ปัญหานี้ไม่มีอยู่ในซอฟต์แวร์เวอร์ชั่น Quartus® Pro สําหรับเวอร์ชัน Quartus® Standard โปรดใช้วิธีการแก้ไขปัญหา

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

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

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

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