Forum: FPGA, VHDL & Co. Automatische Pinzuordnung im ISE


von Andreas B. (loopy83)


Lesenswert?

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

von Klaus F. (kfalser)


Lesenswert?

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.

von Andreas (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.