www.mikrocontroller.net

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


Autor: Andreas B. (loopy83)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.