Ich entwerfe eine Anwendung mit einem Altera Cyclone V SoC (5CSXFC6C6U23I7N) und verbinde ADCs und DACs mit 250 MS/s. In der Zwischenzeit hat sich die Designkomplexität etwas erhöht, und jetzt gibt es Verletzungen der Zeitbeschränkung in der Nähe des DAC-Schnittstellenteils. Diese Schnittstelle verwendet die LVDS-SERDES-Hardware für das DDR-Datenformat. Der Datentakt beträgt 250 MHz und damit eine Datenrate von 500 Mb/s. Das FPGA wird intern mit der Abtastfrequenz getaktet, dh 250 MHz, was bei diesem Gerät der Geschwindigkeitsklasse I7 kein Problem sein sollte.
Jetzt das Problem: Es gibt ein paar Register in der Nähe der DAC-Schnittstelle, um die Datenbits richtig zu ordnen. Aber es gibt Timing-Verletzungen zwischen solchen Registern, obwohl es absolut keine Logik zwischen den Registern gibt. Wenn ich mir die Pfadverzögerungen in TimeQuest ansehe, sehe ich, dass durch das Routing (Interconnect) eine Verzögerung von etwa 3,5 ns verursacht wird. Zusammen mit den anderen Verzögerungen werden die geforderten 4ns nicht mehr erreicht. Wenn ich mir den Datenpfad im Chipplaner ansehe, sehe ich, dass er ungefähr von der Mitte des FPGA zum E / A-Bereich geführt wird. Nachdem ich das gesehen hatte, dachte ich, dass ich einfach eine zusätzliche Registerstufe einfügen könnte, damit die Daten irgendwo im Pfad neu getaktet werden könnten. Aber der Monteur platziert diese Register einfach auch in der Nähe der Ausgangsstufe, wodurch immer die gleichen Pfade versagen.
Ich weiß, dass die Schnittstelle selbst kein Problem darstellt, da dies in früheren Kompilierungsläufen einwandfrei funktioniert hat. Die Ressourcenauslastung liegt unter 5 %, daher gibt es auch kein Problem mit fehlenden Registern/ALMs. Wenn Sie den Fitter-Aufwand auf „aggressiv“ einstellen oder den Zieltemperaturbereich verringern, werden die Zahlen leicht verbessert, aber im Bereich von 500 ps bis 1 ns gibt es immer noch einen negativen Schlupf.
btw: Das Design als solches funktioniert auch mit den Verletzungen, wenn das Gerät hier bei Zimmertemperatur läuft. Ich möchte jedoch, dass es zuverlässig funktioniert, daher ist es definitiv keine Option, die Verstöße einfach zu ignorieren.
Irgendwelche Ideen?
Danke und viele Grüße,
Philipp
Sind Sie sicher, dass echte Verstöße vorliegen? Müssen Sie falsche Pfade oder getrennte Taktgruppen festlegen? STA-Tools sind nur so intelligent, wie Sie es ihnen sagen; Wenn Sie nach dem Lesen der Verletzung nicht glauben, dass es einen echten logischen Pfad / ein echtes Problem gibt, würde ich meinen SDC ändern, um das Tool wissen zu lassen, dass es sich keine Sorgen machen soll. Dies könnte möglicherweise auch unnötige Einschränkungen für den Synthesizer und den Router beseitigen.
Wenn es sich um ein echtes Problem handelt und alles auf eine Verbindungsverzögerung zurückzuführen ist, würde ich mich fragen, warum der Router nicht angemessen dafür platziert ist. Sie könnten versuchen, regionale Einschränkungen hinzuzufügen oder zu untersuchen, warum der Router denkt, dass es in Ordnung ist, sie so weit voneinander entfernt zu platzieren – vielleicht fehlt eine andere Einschränkung.
FarhadA
Philipp Burg
FarhadA
Philipp Burg
Philipp Burg