Hallo, ist die Taktfrequenzangabe nach der Synthese eine obere Grenze, also kann ich mir das Implement Design schon sparen wenn die Frequenzangabe nach der Synthese zu klein ist? Gruß Andreas
@ Andreas Schwarz (andreas) >ist die Taktfrequenzangabe nach der Synthese eine obere Grenze, also >kann ich mir das Implement Design schon sparen wenn die Frequenzangabe >nach der Synthese zu klein ist? Jain. Diese Angabe ist eine, wie ich meine, äusserst grobe Abschätzung, die meistens zu HOCH ist. MfG Falk
Es bestehen gute Chancen bei den meisten Designs, sie durch geschicktes Placement einige Prozent schneller zu bekommen. Insofern hilft meist nur ausprobieren. Dass die Angabe nach der Synthese hoeher ist, als der endgueltige Wert liegt haeufig aber auch an den gesetzten Constraints: Bei der Implementierung wird nur darauf geachtet, die Constraints einzuhalten, auch wenn eine deutlich schnellere Implementierung moeglich waere.
Dank! Noch eine verwandte Frage: der langsamste Pfad besteht zu > 60% aus Routingverzögerung. Das erscheint mir ungewöhnlich viel. Gibt es für solche Fälle irgend ein "Patentrezept" um die Geschwindigkeit zu verbessern?
Die Verzoegerung durch eine lookuptable ist gewoehnlich kleiner als das net delay auf dem Weg zu einem anderen Slice, das womoeglich noch nicht einmal benachbart ist. Zum Beispiel bei einer Operation, die viele Signale aus verschiedenen Teilen der Logik verbindet, ist das also ganz normal. Manchmal hilft es beispielsweise, die Logik etwas umzustrukturieren, so dass die Synthese weniger luts verwendet und dafuer set- und clear-Eingaenge an Flipflops benutzt. "Patentrezept" wuerde ich das aber nicht nennen.
@ Andreas Schwarz (andreas) >Noch eine verwandte Frage: der langsamste Pfad besteht zu > 60% aus >Routingverzögerung. Das erscheint mir ungewöhnlich viel. Gibt es für Ist nicht ungewöhnlich. >solche Fälle irgend ein "Patentrezept" um die Geschwindigkeit zu >verbessern? Pipelining. MFG Falk
Das pipelining ist ein Designkonzept. Du meinst sicher flipflops dazwischen, um das Routing zu überbrücken. Das führt dann zu pipelined Strukturen. (Man beachte Ursache und Wirkung) Die Idee ist nicht schlecht, haut nur im FPGA nicht hin, weil mit speziellen Interconnections gearbeitet wird, und nicht mit "langen Leitungen", wie im ASIC. Dort geht die Laufzeit mit der Länge im Quadrat und kann durch FFs merklich reduziert werden. Wenn er - wie oben angedeutet - 60% fürs Routing braucht, dann hat das seinen Grund: (von mir aus spezieller Pins an BRAM oder an die Multiplier. Den Weg kann man kaum verkürzen.) pipelining bringt im FPGA nur Schaltgeschwindigkeit (man unterscheide zum Datendruchsatz), wenn man einen extrem langen kombinatorischen Pfad hat. Ein FF mehr dort im Zweig kann etwa die Hälfte von den 40% bringen, wobei einem wieder einige ns aufgebrummt werden. MAcht also maximal 15% verbesserung. Könnte natürlich sein, daß die reichen. Was man vorab probieren sollte: "Timing Driven Placement"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.