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

ทําไมฉันจึงเห็นฟังก์ชันการทํางานที่ไม่ถูกต้องในฮาร์ดแวร์สําหรับ DCFIFO และการทํางานแบบผสม DCFIFO ของฉัน

สิ่งแวดล้อม

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

    เนื่องจากข้อจํากัดด้านเวลาแบบฝังไม่ถูกต้อง คุณอาจพบพฤติกรรม IP DCFIFO ที่ไม่ถูกต้องในฮาร์ดแวร์
    ข้อจํากัดด้านเวลาที่ผิดพลาด (ซึ่งมีอยู่ในโค้ด DCFIFO) จะตั้งค่าการมอบหมายfalse_pathสําหรับการถ่ายโอนรหัสสีเทาระหว่างโดเมนการอ่านและเขียนสัญญาณนาฬิกาไม่ถูกต้อง
    แม้ว่าความล้มเหลวของฮาร์ดแวร์จะไม่ค่อยมีมากนัก แต่ก็เป็นไปได้ที่การบิดเบี้ยวระหว่างการถ่ายโอนโดเมนที่มีรหัสเป็นสีเทาเหล่านี้อาจมีขนาดใหญ่พอที่ความเสียหายนั้นอาจเกิดขึ้นในโดเมนสัญญาณนาฬิการับสัญญาณ
    ความน่าจะเป็นของความล้มเหลวของฮาร์ดแวร์จะเพิ่มขึ้นเมื่อการใช้ตรรกะและอัตราสัญญาณนาฬิกา DCFIFO เพิ่มขึ้น

    ความละเอียด

    หากการออกแบบของคุณได้รับผลกระทบ Alteraแนะนําวิธีแก้ไขปัญหาต่อไปนี้ โปรดทราบว่าการอัปเกรดเป็นซอฟต์แวร์ Quartus® Prime v15.1 และเป็นต้นไปจําเป็นสําหรับการแก้ไขปัญหา การแก้ไขปัญหานี้ใช้ได้กับตระกูลอุปกรณ์ด้านล่างเท่านั้น:

    • Cyclone® V
    • Arria® II GX
    • Arria V และ Arria V GZ
    • Stratix® IV
    • Stratix V
    • MAX® 10

    โปรดทําตามขั้นตอนด้านล่างเพื่อจํากัดอย่างถูกต้องและเพิ่มประสิทธิภาพการถ่ายโอนโดเมนที่มีรหัสเป็นสีเทา:
    1) ใช้การบ้านต่อไปนี้ในไฟล์การตั้งค่า Quartus Prime (.qsf):
    เปิดset_global_assignment -name DISABLE_EMBEDDED_TIMING_CONSTRAINT
     
    2) ตรวจสอบว่าไม่มีผู้ใช้สร้างclock_groupsหรือfalse_pathงานเพื่อลดการกําหนดเวลาสําหรับเส้นทางที่ข้ามโดเมนนาฬิกาเหล่านี้
    ใช้รายงาน "report_clock_transfers" เพื่อระบุว่ามีการกําหนดfalse_pathสําหรับการข้ามโดเมนนาฬิกาหรือไม่

    3) ใช้ข้อจํากัดด้านเวลาต่อไปนี้:
    สําหรับ DCFIFO ลําดับชั้นของ = |dcfifo_component|*auto_generated
    สําหรับ DCFIFO ที่มีความกว้างผสม ลําดับชั้นของ = |dcfifo_mixed_widths_component|*auto_generated

     

    ตั้งค่าfrom_node_rdptr_list [get_keepers |rdptr_g*]

    ตั้งค่าto_node_rdptr_list [ลําดับชั้นของ get_keepers |ws_dgrp|dffpipe*|dffe*]

    set_max_skew -from $from_node_rdptr_list -to $to_node_rdptr_list -get_skew_value_from_clock_period src_clock_period -skew_value_multiplier 0.8

    set_net_delay -from $from_node_rdptr_list -ไปยัง $to_node_rdptr_list -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.8

    set_max_delay -from $from_node_rdptr_list -ไปยัง $to_node_rdptr_list 100

    set_min_delay -from $from_node_rdptr_list -ไปยัง $to_node_rdptr_list -100

    ตั้งค่าfrom_node_wrptr_list [get_keepers |delayed_wrptr_g*]

    ตั้งค่าto_node_wrptr_list [ลําดับชั้นของ get_keepers |rs_dgwp|dffpipe*|dffe*]

    set_max_skew -from $from_node_wrptr_list -ไปยัง $to_node_wrptr_list -get_skew_value_from_clock_period src_clock_period -skew_value_multiplier 0.8

    set_net_delay -from $from_node_wrptr_list -ไปยัง $to_node_wrptr_list -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.8

    set_max_delay -from $from_node_wrptr_list -ไปยัง $to_node_wrptr_list 100

    set_min_delay -from $from_node_wrptr_list -ไปยัง $to_node_wrptr_list -100

    ตั้งค่าfrom_node_mstable_ws_list [ลําดับชั้นของ get_keepers |ws_dgrp|dffpipe*|dffe*]

    ตั้งค่าto_node_mstable_ws_list [ลําดับชั้นของ get_keepers |ws_dgrp|dffpipe*|dffe*]

    set_net_delay -from $from_node_mstable_ws_list -to $to_node_mstable_ws_list -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.8

    ตั้งค่าfrom_node_mstable_rs_list [ลําดับชั้นของ get_keepers |rs_dgwp|dffpipe*|dffe*]

    ตั้งค่าto_node_mstable_rs_list [ลําดับชั้นของ get_keepers |rs_dgwp|dffpipe*|dffe*]

    set_net_delay -from $from_node_mstable_rs_list -to $to_node_mstable_rs_list -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.8

     

    4) ใช้รายงานreport_max_skewและreport_net_delayใน TimeQuest II Timing Analyzer เพื่อตรวจสอบว่าการกําหนดเวลาถูกปิดแล้วหรือไม่

    สําหรับอุปกรณ์ Arria 10 และเป็นต้นไป จะมีการตรวจสอบพารามิเตอร์ "สร้างไฟล์ SDC และปิดใช้งานข้อจํากัดด้านเวลาแบบฝัง" ภายใต้ส่วนข้อจํากัดการกําหนดเวลาตามค่าเริ่มต้น ซึ่งช่วยให้คุณสามารถข้ามข้อจํากัดด้านเวลาแบบฝังที่ใช้set_false_pathในการลงทะเบียนการซิงโครไนซ์ ไฟล์ SDC ที่กําหนดค่าได้โดยผู้ใช้จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อ DCFIFO สร้างอินสแตนซ์จากแคตตาล็อก IP ข้อจํากัดด้านเวลาใหม่ประกอบด้วยset_net_delay set_max_skew set_min_delay และset_ max_delayถูกนํามาใช้เพื่อจํากัดการออกแบบอย่างถูกต้อง

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

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

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

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