Hallo, eine Frage zum Thema constraints bei Xilinx. Ich habe ein VHDL-Design, welches vom Timing her ziemlich auf Kante genäht ist. Das Design umfasst mehrere Hierarchieebenen. Mit der Synthese-/Mapoption keep_hierarchy=false wird das gewünschte Timing (meist) eingehalten, bei true of nicht. Nun enthält das Design Xilinx-FIFOs, welche bei Taktübergängen setup/hold-Verletzungen anzeigen, die ignoriert werden können (siehe auch Beitrag "Constraint Problem am BlockRAM FIFO Xilinx" bzw. im pg057). Da ich am Timingreport sehen möchte, ob eine "echte" constraint-Verletzung stattgefunden hat bzw. den Tools (PAR) mitteilen möchte, dass sie die FIFO-Timings ignorieren können, habe ich es mit dem TIG constraint aus o.g. Thread bzw. aus pg057 (in etwa das gleiche für konkrete Signale) im ucf versucht. Damit funktioniert es wie gewünscht, dass die FIFO-Taktübergänge ignoriert werden. Mein Problem ist nun, dass ich dafür die Synthese-/Mapoption keep_hierarchy=true setzen muss, da sonst die interne Hierarchie und damit der Pfad zu den constrainten Taktsignalen beim PAR , wo die ucf ins Spiel kommt, nicht mehr bekannt ist (zumindest mir nicht, ich schreibe den Hierarchiepfad ins ucf). Wie schon gesagt, klappt dann aber das Timing oft nicht. Gibt es eine Möglichkeit, diese in der Hierarchie vergrabenen Signale trotzdem zu constrainen, wenn die Hierarchie durch die Synthese plattgemacht wird? Evtl. schon in einer xcf, die von der Synthese verarbeitet wird und dann bis zum PAR (automatisch?) "weitergereicht" wird? Oder mit irgendeiner Option doch in der ucf? Danke für Vorschläge. Markus
Markus schrieb: > Gibt es eine Möglichkeit, diese in der Hierarchie vergrabenen Signale > trotzdem zu constrainen Normalerweise kann man Wildcards bspw '*' für beliebige Zeichenkette verwenden, da benötigt man nicht den kompletten Hierarchiepfad solange der Signalname einmalig ist. Also sowas wie NET "*einmaligersignalname*" OFFSET = IN 6 ns VALID 7 ns BEFORE "sys_clk" HIGH; sollte passen. Ansonsten schau mal im constraint guide unter naming oder Wildcards.
Das ist dasselbe Problem wie bei ChipsScope: Man setzt "keep hierarchie" auf "soft". Dann fliegen die überzähligen Signale erst beim Mappen raus.
Danke für die Vorschläge. Die Wildcard-Methode funktioniert bei mir leider nicht, obwohl der Signalname eindeutig ist. Wer weiß, was die Synthese daraus macht. Mit keep hierarchie auf soft scheint es erstmal zu funktionieren, muss noch ein paar Testläufe machen Danke. Markus
Ich würde so oder so, das keep hierchie verwenden, weil es ansonsten Signale munter wegoptimiert. Wenn dadurch die Clusterung über Hierarchieebenen hinweg behindert wird, muss es eben selektiv geschehen: Du gehst in die Unterkomponente und setzt dort ein keep constraint auf das Signal selber.
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.