Forum: FPGA, VHDL & Co. EDK meldet ERROR:PhysDesignRules:755


von ChrisB (Gast)


Lesenswert?

Hallo an Allo,

ich habe gerade ein Problem mit meinem aktuellen FPGA Design.
Ich habe unter anderem einen XPS_GPIO mit 15 I/O's und einen 
XPS_UART16550 mit SIN und SOUT in meinem Design. An einigen GPIO's des 
XPS_GPIO hängen momentan die Flusssteuersignale für die 
UART-Kommunikation. Diese möchte ich jedoch jetzt vom XPS_UART16550 
steuern lassen, doch dabei ergibt sich leider folgendes Problem:

Wenn ich den Pin der /CTS Leitung im UCF-File nicht mehr an den XPS_GPIO 
hänge, sondern direkt an den XPS_UART16550 meldet das EDK für viele Pins 
die Fehlermeldung: ERROR:PhysDesignRules:755 - IOB comp <"signal-Name"> 
at location <"pin-name"> is VCCO incompatible für bank <"bank-nummer">. 
The VCCO established for this bank is <3.300000>.

Verstehen würde ich die Fehlermeldung, wenn zwei Signale, die an der 
gleichen Bank liegen unterschiedliche VCC's haben, dies ist aber bei mir 
nicht der Fall.

Hat jemand eine Ahnung woran das liegt, bzw. wie man das Problem 
beseitigen kann?

Vielen Dank!

Lieben Gruß,
ChrisB

von Georg A. (Gast)


Lesenswert?

Du schreibst nicht, welches FPGA du überhaupt hast und welchen Pin du 
nehmen willst. Dann könnte man in den Pinlayouts nachschauen. Es gibt 
AFAIR bei den Spartan 3E einige Pins, die eigentlich zum 
Konfigurationsbereich gehören und damit an den 2.5V hängen.

von ChrisB (Gast)


Lesenswert?

Hallo Georg,

ich nutze den Spartan 3E 1200 und möchte einen Pin (habe die Pin-Nummer 
leider nicht im Kopf und nicht zur Hand, trage diese aber nachher nach), 
den ich vorher als GPIO benutzt habe nun an den UART16550 hängen.
Da ich den Pin vorher ja schon als 3.3V GPIO benutzt habe sollte es doch 
kein Problem sein, diesen jetzt als Eingang für den UART zu benutzen.
Zum Konfigurationsbereich wird dieser Pin nicht gehören, da ich sonst 
auch Probleme gehabt hätte den Pin als GPIO zu nutzen oder?

Lieben Gruß,

ChrisB

von Christian R. (supachris)


Lesenswert?

Schau doch mal ins UCF rein, was für den Pin angegeben ist. Vielleicht 
steht da ja 2,5V VCCIO.

von ChrisB (Gast)


Lesenswert?

Das UCF habe ich ja selber geschrieben/modifiziert. Bei dem Pin den ich 
verwenden möchte habe ich schon mehrere Optionen versucht. Zum einen 
garkeine Spannung und zum anderen 3,3V. 2,5 Volt habe ich dort also 
nicht stehen.
Es muss an irgend etwas anderem liegen...

von Christian R. (supachris)


Lesenswert?

Die idiotischsten Fehler haben meist die einfachsten 
Ursachen.....Zahlendreher in der Pin-Nummer?

von ChrisB (Gast)


Lesenswert?

Das werde ich nachher nochmal überprüfen, aber ich glaube eigentlich 
dürfte kein Zahlendreher oder schreibfehler drin sein. Kann es sein, 
dass das Design aus irgend einem völlig anderen grund nicht geroutet 
werden kann oder ähnliches?

von Christian R. (supachris)


Lesenswert?

Ja, das gibts bei Xilinx auch immer mal. Dann musst du mal die Meldungen 
weiter oben im Log ganz genau durchlesen.

von ChrisB (Gast)


Lesenswert?

Jetzt mal der Nachtrag:
So wie unten geschrieben ist es Momentan, und so lässt sich das Design 
auch generieren:
Net GPIO_1_IO_pin<11>   LOC=R5    | IOSTANDARD = LVCMOS33;

Ich möchte den Pin R5 jedoch nur als Eingang für das /CTS-Signal des 
UART's benutzen, also habe ich folgendes ausprobiert:
Einmal:
Net UART_2_ctsN_pin  LOC=R5;
und:
Net UART_2_ctsN_pin  LOC=R5 | PULLUP;
und:
Net UART_2_ctsN_pin  LOC=R5 | LVCMOS33 | PULLUP;

All diese Konfigurationen liefen jedoch auf den oben beschriebenen 
fehler hinaus und ich habe keine Erklärung dafür.
Ich wäre für jede Idee sehr dankbar!

Lieben Gruß,

ChrisB

von Christian R. (supachris)


Lesenswert?

Was passiert mit

Net UART_2_ctsN_pin  LOC=R5 | IOSTANDARD = LVCMOS33; ?

Weil nur LVCMOS33 als Argument bringt glaube nix...gerade bei einem 
Eingang dürfte da nix schief gehn, bei einem Ausgang muss man bei S3e 
bissl aufpassen wegen der Input only Pins....

von Georg A. (Gast)


Lesenswert?

> gerade bei einem Eingang dürfte da nix schief gehn

Kaputt sicher nicht, aber die Schaltschwellen sind anders. Und die SW 
will einen wohl vor seltsamen Effekten durch inkonsistente H/L-Erkennung 
bewahren.

> wegen der Input only Pins....

Der OP hat zwar das Package nicht genannt, aber entweder ist R5 ein VCCO 
(beim FT256) oder sonst immer I/O. Aber die Input-Only-Pins sind schon 
das Werk von Sadisten bei Xilinx gewesen, so ausführlich wird darauf 
auch nicht eingegangen. Einer ist mir beim Layout mal durchgerutscht :(

von Christian R. (supachris)


Lesenswert?

Georg A. schrieb:
>Aber die Input-Only-Pins sind schon
> das Werk von Sadisten bei Xilinx gewesen, so ausführlich wird darauf
> auch nicht eingegangen. Einer ist mir beim Layout mal durchgerutscht :(

Da bist du nicht der einzige. Zum Glück wars keine lebensnotwendige 
Funktion, aber die nerven. Naja, bei den Virtex Typen gibts keine mehr. 
Ein Glück.

von ChrisB (Gast)


Lesenswert?

Hallo,

also ich habe den Spartan 3E im FT320 Gehäuse. Da sollte der R5 
eigentlich nen I/O Pin sein.

Net UART_2_ctsN_pin  LOC=R5 | IOSTANDARD = LVCMOS33; Habe ich glaube 
noch nicht ausprobiert, kann ich aber bei Gelegenheit probieren. 
Momentan habe ich mal versucht von der 10.1er Version auf die 11.3er 
Version der Xilinx Tools umzusteigen, was ich früher oder später eh 
gemacht hätte. Ich habe dazu ein neues Design aufgesetzt, da ich dem 
Versions-Updater nicht so ganz traue.
Nun habe ich beim generieren ein völlig anderes Problem.
ERROR:Route:472 - This design is unroutable. To evaluate the problem 
please use fpga_editor.
Routing Conflict 1:
Net:DDR_SDRAM_mpmc_clk_s on pin OTCLK1 on location PAD134
Net:dlmb_port_BRAM_Clk on pin OTCLK1 on location PAD135
Conflict detected on wire: DUMMY(104816,35425)

Kann mit der Meldung jemand was anfangen? Also ich werde nicht so ganz 
schlau darauß.

Lieben Gruß,

ChrisB

von Georg A. (Gast)


Lesenswert?

Klingt mir nach einem verkorksten Clock-Design. D.h. falsche Planung, wo 
welche Clocks, rein, raus und intern rum müssen. Schau mal, ob die 
beiden Takte auch wirklich auf einem Taktnetz geführt werden. Wenn sie 
das wären, müsste das nämlich problemlos gehen...

Und der Rat mit dem fpga_editor ist durchaus sinnvoll. Editieren kann 
man zwar vergessen, aber gerade die Besonderheiten des 
Takt/DCM/BUFG-Routings kann man sich dann wesentlich besser vorstellen.

von Christian R. (supachris)


Lesenswert?

Hm, bei der 11.er Version haben die ziemlich viele Warnungen als Fehler 
ausgegeben. Da gibts eine Umgebungsvariable XIL_CONTINUE_ON_IMPOSSIBLE 
oder sowas ähnliches, muss ich morgen auf Arbeit mal gucken. Aber ich 
schätze, die beiden Probleme hängen irgendwie zusammen, werfen nur einen 
anderen Fehler...

von ChrisB (Gast)


Lesenswert?

Ich werde das nachher mal versuchen mit dem FPGA-Editor zu öffnen. 
Leider habe ich noch nie mit dem FPGA-Editor gearbeitet. Kann mir jemand 
kurz erkären, welche Datei ich wie öffnen muss und was ich dann zu sehen 
bekomme?

Lieben Gruß,

ChrisB

von Christian R. (supachris)


Lesenswert?

Ich hab die beiden Umgebungsvariablen drin, damit routet er durch und 
zeigt auch Details an:


XIL_TIMING_ALLOW_IMPOSSIBLE 1

XIL_PAR_DESIGN_CHECK_VERBOSE 1

von Georg A. (Gast)


Lesenswert?

> XIL_TIMING_ALLOW_IMPOSSIBLE 1

Das ist aber was anderes als das obige Problem. Das verhindert nur, dass 
bei offensichtlich nicht erfüllbaren Constraints kein Abbruch passiert. 
"Offensichtlich" heisst in dem Fall, dass schon die Laufzeiten durch die 
LUTs allein grösser als gewünscht sind. Das lässt sich ja ohne Routing 
auch schon direkt mit den Mapping-Infos berechnen...

> Kann mir jemand kurz erkären, welche Datei ich wie öffnen muss

fpga_editor <design>.ncd

> und was ich dann zu sehen bekomme?

Zuviel ;) Du siehst LUTs, Pads und Netze, je nach angeknipsten Buttons 
oben alle oder nur die im Design benutzten. Man kann Netze/Instanzen 
suchen und highlighten. Nicht verlegte Signale tauchen auch auf. Ganz 
wichtig ist die Positionierung der Clock-Netze/Quadranten, DCMs, BUFGs 
und der GCLK-Pins. Nur so wird einem klar, was die diversen App-Notes 
eigentlich sagen wollen und warum manches Design nicht gehen will...

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.