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

ทําไมฉันจึงสังเกตเห็นการตรวจสอบข้อผิดพลาดเป็นระยะๆ เมื่อทําการรีเซ็ตหลายครั้งของตัวอย่างการออกแบบการควบคุมเครื่องสถานะ IP RTL204B

สิ่งแวดล้อม

  • Intel® Quartus® II Subscription Edition
  • Intel® Quartus® Prime Standard Edition
  • IP เอฟพีจีเอ Intel® JESD204B
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT

    ปัญหาสำคัญ

    คำอธิบาย

    เมื่อทําการรีเซ็ตหลายครั้งของการออกแบบการควบคุมเครื่องสถานะ IP RTL ของ JESD204B ดําเนินการใน Intel® Arria® 10 Stratix® V, Arria® V Cyclone® หรืออุปกรณ์ V คุณอาจสังเกตเห็นพินที่ขัดจังหวะ (jesd204_tx_int และ/หรือ jesd204_rx_int) ที่กําลังถูกตรวจสอบเนื่องจากข้อผิดพลาด ซึ่งสามารถอ่านได้จาก tx_err (0x60), rx_err0 (0x60) และการลงทะเบียนrx_err1 (0x64)

    ความละเอียด

    สําหรับอุปกรณ์ Intel Arria 10 ให้ใช้ตัวอย่างการออกแบบโปรเซสเซอร์ Nios® II แทน

    สําหรับอุปกรณ์ Stratix V, Arria V หรือ Cyclone V ให้ดําเนินการแก้ไข RTL ดังต่อไปนี้ :

    1. ปรับเปลี่ยน jesd204b_edโมดูลระดับบนสุดในไฟล์ jesd204b_ed.sv

    กําหนด สายรีเซ็ตสูงที่ใช้งานอยู่:

    tx_link_rst_syncสายไฟ

    tx_frame_rst_syncสายไฟ

    rx_link_rst_syncสายไฟ

    rx_frame_rst_syncสายไฟ

    global_rst_syncสายไฟ

     

    ปรับเปลี่ยน ขั้วการรีเซ็ตในการบ้านสายต่อไปนี้:

    ถือคอร์ในโหมดรีเซ็ตจนกว่าตัวรับส่งสัญญาณจะพร้อม

    กําหนดglobal_rst_n_sync = ~global_rst_sync; เพิ่มการบ้านglobal_rst_n_sync

    กําหนดtx_avs_rst_n = avs_rst_n;

    กําหนดrx_avs_rst_n = avs_rst_n;

    กําหนดtx_frame_rst_n = ~tx_frame_rst_sync;

    กําหนดrx_frame_rst_n = ~rx_frame_rst_sync;

    กําหนดtx_link_rst_n = ~tx_link_rst_sync;

    กําหนดrx_link_rst_n = ~rx_link_rst_sync;

     

    altera_reset_controllerคือตัวซิงโครไนซ์การรีเซ็ตระดับสูงที่ทํางานอยู่ ปรับเปลี่ยนอินพุตและเอาต์พุตของการสร้างอินสแตนซ์ตัวซิงโครไนซ์รีเซ็ตตามที่แสดงถึงขั้วที่ถูกต้อง:

    //

    รีเซ็ตตัวซิงโครไนซ์สําหรับการรีเซ็ตทั่วโลก (โดเมนนาฬิกา mgmt)

    //

    altera_reset_controller #(

    . NUM_RESET_INPUTS (1),

    . OUTPUT_RESET_SYNC_EDGES ("deassert")

    . SYNC_DEPTH (2)

    ) u_avs_rst_sync (

    .reset_in0 (~global_rst_n)

    .clk (mgmt_clk),

    .reset_out (global_rst_sync)

    );

     

    ดําเนินการ AND ตามบิตบนwire_tx_ready &wire_rx_ready ซึ่งเป็นสัญญาณบัส

    //

     

    รีเซ็ตตัวซิงโครไนซ์สําหรับการรีเซ็ตเลเยอร์การขนส่ง (โดเมนเฟรมนาฬิกา)

    //

    altera_reset_controller #(

    . NUM_RESET_INPUTS (1),

    . OUTPUT_RESET_SYNC_EDGES ("deassert")

    . SYNC_DEPTH (2)

    ) u_tx_frame_rst_sync (

    .reset_in0 (~(wire_frame_rst_n &wire_tx_ready),

    .clk (frame_clk),

    .reset_out (tx_frame_rst_n_sync)

    );

     

    altera_reset_controller #(

    . NUM_RESET_INPUTS (1),

    . OUTPUT_RESET_SYNC_EDGES ("deassert")

    . SYNC_DEPTH (2)

    ) u_rx_frame_rst_sync (

    .reset_in0 (~(wire_frame_rst_n &wire_rx_ready),

    .clk (frame_clk),

    .reset_out (rx_frame_rst_n_sync)

    );

     

    //

    รีเซ็ตตัวซิงโครไนซ์สําหรับการรีเซ็ตคอร์พื้นฐาน (โดเมนลิงก์นาฬิกา)

    //

    altera_reset_controller #(

    . NUM_RESET_INPUTS (1),

    . OUTPUT_RESET_SYNC_EDGES ("deassert")

    . SYNC_DEPTH (2)

    ) u_tx_link_rst_sync (

    .reset_in0 (~(wire_link_rst_n &wire_tx_ready),

    .clk (link_clk),

    .reset_out (tx_link_rst_n_sync)

    );

       

    altera_reset_controller #(

    . NUM_RESET_INPUTS (1),

    . OUTPUT_RESET_SYNC_EDGES ("deassert")

    . SYNC_DEPTH (2)

    ) u_rx_link_rst_sync (

    .reset_in0 (~(wire_link_rst_n &wire_rx_ready),

    .clk (link_clk),

    .reset_out (rx_link_rst_n_sync)

    );

     

    ----------------------------------------

     

    2. ในโมดูล control_unit (control_unit.sv) ให้ เปลี่ยน ค่าการรีเซ็ตสําหรับframe_rst link_rst avs_rst และxcvr_rst

    //

    ทะเบียนเอาต์พุตสําหรับการรีเซ็ตตัวรับส่งสัญญาณคอร์ฐาน

    //

    เสมอ @ (posedge clk หรือ negedge rst_n)

    เริ่ม ต้น

    ถ้า (~rst_n) เริ่มต้น

    frame_rst

    link_rst

    avs_rst

    xcvr_rst

    สิ้นสุดอย่างอื่นเริ่มต้น

     

    ไม่มีแผนแก้ไขปัญหาสําหรับปัญหานี้

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

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

    Intel® Arria® 10 FPGA และ SoC FPGA
    Stratix® V FPGA
    Arria® V FPGA และ SoC FPGA
    Cyclone® V GX FPGA
    Cyclone® V GT FPGA
    Cyclone® V SX SoC FPGA
    Cyclone® V ST SoC FPGA

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