Aufgrund einer falschen Embedded-Timing-Einschränkung können Sie in der Hardware ein falsches DCFIFO-IP-Verhalten sehen.
Die fehlerhafte Timing-Einschränkung (die im DCFIFO-Code eingebettet ist) setzt fälschlicherweise eine false_path Zuweisung für die grau codierte Übertragung zwischen den Lese- und Schreib-Takt-Domains.
Obwohl Hardware-Ausfälle extrem unwahrscheinlich sind, ist es möglich, dass die Schieflage bei diesen grau codierten Domain-Übertragungen groß genug sein könnte, dass es zu Schäden in der Empfangs-Takt-Domain kommen könnte.
Die Wahrscheinlichkeit eines Hardwareausfalls steigt mit steigender Logikauslastung und DCFIFO-Taktraten.
Wenn Ihr Design betroffen ist, empfiehlt Altera die folgende Problemumgehung. Beachten Sie, dass ein Upgrade auf die Quartus® Prime Software v15.1 und höher für die Problemumgehung erforderlich ist. Die Problemumgehung gilt nur für die folgenden Gerätefamilien:
• Cyclone® V
• Arria® II GX
• Arria V und Arria V GZ
• Stratix® IV
• Stratix V
• MAX® 10
Bitte führen Sie die folgenden Schritte aus, um die Übertragungen grau codierter Domain-Domains korrekt einzuschränken und zu optimieren:
1) Wenden Sie die folgende Zuweisung in Ihrer Quartus Prime Settings-Datei an (.qsf):
set_global_assignment -Name DISABLE_EMBEDDED_TIMING_CONSTRAINT AKTIVIERT
2) Stellen Sie sicher, dass kein Benutzer clock_groups oder false_path Zuweisungen zum Durchschneiden des Timings für Pfade, die diese Taktdomänen kreuzen, erstellt wurden.
Verwenden Sie den Bericht "report_clock_transfers", um zu identifizieren, ob eine false_path Zuweisung für das betreffende Clock-Domain-Crossing vorhanden ist.
3) Wenden Sie die folgenden Timing-Beschränkungen an:
Für DCFIFO = |dcfifo_component|*auto_generated
Für DCFIFO mit gemischter Breite = |dcfifo_mixed_widths_component|*auto_generated
setzen Sie from_node_rdptr_list [get_keepers |rdptr_g*]
einstellen to_node_rdptr_list [get_keepers |ws_dgrp|dffpipe*|dffe*]
set_max_skew -von $from_node_rdptr_list -zu $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 $to_node_rdptr_list -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.8
set_max_delay -von $from_node_rdptr_list -zu $to_node_rdptr_list 100
set_min_delay -von $from_node_rdptr_list -zu $to_node_rdptr_list -100
from_node_wrptr_list festlegen [get_keepers |delayed_wrptr_g*]
festlegen to_node_wrptr_list [get_keepers |rs_dgwp|dffpipe*|dffe*]
set_max_skew -von $from_node_wrptr_list -zu $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 $to_node_wrptr_list -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.8
set_max_delay -von $from_node_wrptr_list -zu $to_node_wrptr_list 100
set_min_delay -von $from_node_wrptr_list -zu $to_node_wrptr_list -100
einstellen from_node_mstable_ws_list [get_keepers |ws_dgrp|dffpipe*|dffe*]
einstellen 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
einstellen from_node_mstable_rs_list [get_keepers |rs_dgwp|dffpipe*|dffe*]
einstellen to_node_mstable_rs_list [get_keepers |rs_dgwp|dffpipe*|dffe*]
set_net_delay -von $from_node_mstable_rs_list -zu $to_node_mstable_rs_list -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.8
4) Verwenden Sie die report_max_skew- und report_net_delay-Berichte im TimeQuest II Timing Analyzer, um zu überprüfen, ob das Timing geschlossen ist.
Für Arria ab 10 Geräten ist der Parameter "Generate SDC file and disable embedded timing constraint" (SDC-Datei generieren und embedded Timing-Beschränkung deaktivieren) unter dem Abschnitt Zeitbeschränkung standardmäßig aktiviert. Auf diese Weise können Sie eingebettete Timing-Beschränkungen umgehen, die set_false_path in den Synchronisierungsregistern verwenden. Eine vom Benutzer konfigurierbare SDC-Datei wird automatisch generiert, wenn DCFIFO aus dem IP-Katalog instanziiert wird. Neue Timing-Beschränkungen bestehen aus set_net_delay, set_max_skew, set_min_delay und set_ max_delay werden verwendet, um das Design ordnungsgemäß einzuschränken.