Ist es immer sinnvoll, einen I/O-Port einzuschränken?

Ich nehme an einem Online-Kurs von Altera über ihre Timing-Analyzer-Software namens TimeQuest teil. Darin empfehlen sie, dass zumindest alle Takt- und I/O-Ports eingeschränkt werden.

In meinem FPGA-Design generiere ich einen Ausgangstaktpin für einen ADC , indem ich verschiedene Takte (einige davon intern generiert) muxe. Soweit ich weiß, besteht die Möglichkeit, Ausgangsports einzuschränken, darin, den SDC-Befehl zu verwenden set_output_delay, indem Sie Setup-and-Hold-Einschränkungen in Bezug auf eine Uhr angeben .

In meinem Fall scheint es keine sinnvolle Uhr zu geben, set_output_delayauf die sich die Einschränkung stützen könnte. Wie sollte mein Ausgangstakt eingeschränkt werden? Ist es überhaupt sinnvoll zu versuchen, diesen bestimmten Ausgabeport einzuschränken?

Antworten (1)

Nun, es ist sinnvoll, sinnvolle Einschränkungen anzuwenden, wenn Sie sich tatsächlich um das Timing kümmern, und es spielt eine Rolle. Wie Sie es einschränken, hängt stark von Ihrem Design ab. Zum Glück hat Altera unzählige Beispiele für verschiedene Fälle.

Aber wenn Sie sich überhaupt nicht darum kümmern, ist es am besten, diesen Pfad als falschen Pfad zu markieren, damit Time Quest zufrieden ist und der Synthesizer nicht stundenlang hängt und versucht, Ihr Design zu routen, um die von Ihnen gestellten Timing-Anforderungen zu erfüllen habe nicht wirklich. Das können Sie mit set_false_pathBefehl tun. Zum Beispiel:

set_false_path -from * -to [get_ports { output_port }]

(wobei output_portder Top-Level-Port eines Moduls einem Pin zugewiesen ist)

Wenn Time Quest Ihnen eine Diagnose gibt, dass nicht jeder Ausgangsport eine Verzögerung hat, möchten Sie vielleicht auch eine Dummy-Verzögerung hinzufügen, wie hier:

set_output_delay -clock [get_clocks src_clk] 2 [get_ports { output_port }]

Ein praktischeres Beispiel finden Sie in dieser SDC-Datei für dieses Modul der obersten Ebene. Der Pfad zu led_nwird dort als falscher Pfad vermarktet, da mir das Timing von meiner Logik zu den LEDs ziemlich egal ist.

Ich hoffe es hilft.

Welchen Takt geben Sie in dieser Dummy-Verzögerung an, wenn mehrere Quelltakte vorhanden sind? Und wie hast du die Nummer gewählt 2?
@Randomblue: Ich habe einen Takteingang für das FPGA (in_clk_100) angegeben, der eine Wurzel aller Takte in diesem Design ist. Es spielt keine Rolle, welche Uhr Sie angeben, da alle möglichen Pfade als falsch ( -from *) vermarktet werden. Dasselbe gilt für 2- es spielt keine Rolle, machen Sie es, 3wenn es Ihnen besser gefällt, solange es nicht 0 ist - Zeitsuche wird sich freuen.