Hallo Leute, ich würde gernde wissen ob und welche Timing constraints die Synthese auch beeinflussen? Ich benutze Xilinx Vivado und man kann bei jeden constraint file anhaken ob es für die Synthese und oder für die Implementierung verwendet werden soll. Bisher ist mein Eindruck das es ausreicht den Hacken nur für die Implementierung zu setzten. Meiner Meinung nach sind Timing Constraints( false path ) und Placement Constraints (set_property) nur für die Implementierung (also Place & Route) relevant. Stimmt das so? Danke schon mal für eure Antworten mfg Tobi
Was ist das für eine Frage? Synthese-Constraints sind natürlich nur zum Spass drin, um Neulinge zu verwirren. Erfahrene Profis lassen die einfach weg, dann klappen Synthese und Routing viel besser. Probiere es aus.
Naja, bei Xilinx ISE hatte ich nicht den Eindruck, das XST die Constraints tatsächlich berücksichtigt. Aber bei Vivado soll ja alles besser sein... Duke
Moin, Tobi. Ich kenne mich jetzt leider mit Xilinx-Tools nicht so gut aus, daher Vorsicht mit meiner Aussage. Ein gutes/fortgeschrittenes FPGA-Tool (Fimen wie Xilinx, Altera und Synopsys sind für gute Tools bekannt) nutzt Timing-Constraints schon bei dem ersten Synthese-Schritt aus, um Logik-Einheiten mit unkritischem Timing weniger Ressourcen zuzuteilen und die guten/meisten Ressourcen dann für kritische Logikteile aufzusparen. Ich benutze zB. eine kastrierte Synplify-Version für die Synthese (also das vor Place und Route). Die liefert unterschiedliche Ergebnisse, wenn ich ihr Timing-Constraints gebe oder sie weglasse. Grüße, Chris
Chris schrieb: > um Logik-Einheiten mit unkritischem > Timing weniger Ressourcen zuzuteilen und die guten/meisten Ressourcen > dann für kritische Logikteile aufzusparen. Was sind denn solche "guten Resourcen" und "kritische Lögikteile"?
Berti schrieb: > Was sind denn solche "guten Resourcen" und "kritische Lögikteile"? Gute Ressourcen sind die, die zuerst ausgehen: BRAMs oder DPS-Blöcke. Die kritische Logikteile sind da, wo das Timing zu eng ist. Da geht dann jede Synthese anders aus... Duke
Ok danke für die Antworten, mir ist einfach nur aufgefallen, dass wenn ich ein timing constraint schreibe, das Resultat immer das gleiche ist, egal ob ich das consraint nur für die implementierung oder für beides einstelle. Von da an hab ich jedes Timing/Debug Constraint immer nur für die Implementierung angehackt. Jetzt wollte ich nur mal fragen ob das gut so ist? mfg Tobi
1) anhacken -> anhaken! 2) Es gibt constraints, die nur bei der IMPL wichtig sind und umgekehrt. Dann macht es keinen Sinn, sie in zwei files zu haben oder sie auf andere Bereiche anzuwenden 3) Es gibt welche, die für beide Bereiche wichtig sind. die müssen mit einem Haken (nicht Hacken) versehen werden. Siehe constraint guide
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.