Hallo, ich habe in diesem Thread Beitrag "Timing constraints für LVDS" über Timingürobleme mit einem 160MHz LVDS Signal am Spartan 3A DSP berichtet. Um diese zu lösen möchte ich gerne die Pinzuordnung von ISE übernehmen lassen. Bisher habe ich mich an mein schematic gehalten und die benötigten I/Os im ucf File fest vorgegeben. Wie kann ich generell mit Vorgabe von Timingconstarints die Pinzuordnung von ISE verwalten lassen? Wie kann ich Pins teilweise vorgeben und teilweise frei von ISE vergeben lassen? Ist es überhaupt hilfreich, wenn ich ISE Freiheiten bei der Pinzuordnung gebe, oder bringt es in Sachen Timing generell gar nichts? Wie gebe ich die differentiellen Paare an, dass P und N auch wirklich automatisch auf ein Pin-paar gelegt werden? Eine partielle Definition der I/Os im ucf FIle führte leider nicht zum Erfolg. Ich habe mich schon durch viele pdf's gewühlt, aber ich habe keinen Anhaltspunkt, nachdem ich suchen kann. Ich kann das Problem also nicht korrekt umschreiben bzw. nicht auf einen Suchbegriff reduzieren, um diesen Abschnitt in den Datenblättern zu finden. Vielen Dank, Andi
Andreas B. schrieb: > Hallo, > Wie kann ich generell mit Vorgabe von Timingconstarints die Pinzuordnung > von ISE verwalten lassen? Normalerweise, indem man die Pins im UCF File nicht erwähnt. > Wie kann ich Pins teilweise vorgeben und teilweise frei von ISE vergeben > lassen? Sollte möglich sein. > Ist es überhaupt hilfreich, wenn ich ISE Freiheiten bei der Pinzuordnung > gebe, oder bringt es in Sachen Timing generell gar nichts? Bei einem FPGA ist es normalerweise weniger nützlich. Besonders in Deinem Fall werden die Daten im IOB abgetaktet, und diese IOBs sind überall gleich. Durch den OFFSET IN constraint soll erreicht werden, dass da IFF verwendet wird und dass eventuell (ich weiss nicht ob die Software das macht), die Input Delay automatisch angepasst wird. > Wie gebe ich die differentiellen Paare an, dass P und N auch wirklich > automatisch auf ein Pin-paar gelegt werden? Normalerweise würde ich das manuell machen, aber durch die Instatierung eines IBUF_LVDS Primitive teilst Du der Software mit, dass ein LVDS Eingangssignal verwendet werden soll.
Hallo Namensvetter (Andreas B.), wie Klaus Falser schon geschrieben hat, werden Pins welche nicht in der UCF erwähnt sind von dem P&R automatisch vergeben. Früher (10J+) war es ein ungeschriebenes Gesetz sein Design einzuhacken und die Tools die Pins erst einmal vergeben zu lassen... Die Tools und die Bausteine haben in den vergangenen 2 Jahrzehnten deutliche Verbesserungen im Hinblick auf Placement der IOs mitgemacht. Eine händische Vergabe ist wirklich nur noch in den wenigsten Fällen von Nöten. Vielmehr sollte man sich mit ein paar anderen Sachen beschäftigen: Es existieren Constraints um den maximalen Skew zwischen IO Zelle und dahinterliegendem Element festzunageln. Des weiteren kann es sinnvoll oder notwendig sein die nach der IO-Zelle liegende Logic zu platzieren oder Areas hierfür zu reservieren und die Area für andere Logik zu sperren. Teilweise kann es Sinn machen die Innerein des FPGAs zu kennen ( z.B. wenn man grosse Rams direkt nach dem Eintakten in einen FPGA benötigt, der entsprechende FPGA aber gar nicht so viel Ram in der Nähe der IOs hat ( sondern nur am anderen Ende des FPGAs). Ich denke Du solltest Dich mit Areaconstraints etc. vertraut machen, oder am besten mit PlanAhead (welches ab der LogicEdition V11 nunmehr enthalten ist). Ggfls. wäre noch auf die Platzierung von Globalclockbuffern; DCM-Positionierung etc. zu achten. Hier scheinen die Tools noch immer nicht sattelfest zu sein. Von Zeit zu Zeit gibt es Artikel von Xilinx in denen empfohlen wird die Position von Globalclockbuffern und DCM festzulegen... Gruß Andreas
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.