Forum: FPGA, VHDL & Co. Lefthalf Clock


von Stephan H. (Gast)


Angehängte Dateien:

Lesenswert?

Ich bekomme per LVDS ein 60Mhz clock.
bekomme aber beim syntetisiren volgende fehler meldung


------------------------------------------------------------------------
ERROR:Place:1018 - A clock IOB / clock component pair have been found 
that are not placed at an optimal clock IOB /
   clock site pair. The clock component <n3e> is placed at site 
<BUFGMUX_X2Y11>. The IO component <DCLK> is placed at
   site <N6>.  This will not allow the use of the fast path between the 
IO and the Clock buffer. If this sub optimal
   condition is acceptable for this design, you may use the 
CLOCK_DEDICATED_ROUTE constraint in the .ucf file to demote
   this message to a WARNING and allow your design to continue. However, 
the use of this override is highly discouraged
   as it may lead to very poor timing results. It is recommended that 
this error condition be corrected in the design. A
   list of all the COMP.PINs used in this clock placement rule is listed 
below. These examples can be used directly in
   the .ucf file to override this clock rule.
   < NET "DCLK" CLOCK_DEDICATED_ROUTE = FALSE; >
------------------------------------------------------------------------


im Canstrain file habe ich alderdings einen CLK dekleriert (sihe anhang)
kann das damit zu tun haben das der von mir ausgewehlte pinn ein LHCLK 
pin (LEFT  HALF CLOCK) ist?
Oder mach ich da was kommplet falsch?

von Christian R. (supachris)


Lesenswert?

Klar hängt das mit dem LHCLK zusammen. Die Logik, die du damit betreiben 
willst, ist offenbar nicht (komplett) im Einzugsbereich des Taktnetzes. 
Du musst dann den Takt an einen GCLK Eingang anschließen. Ansonsten 
gibts nur die Lösung mit dem CLOCK_DEDICATED_ROUTE, aber was das für 
Folgen hat, steht ja oben. Bei 60MHz sollte man das nicht mehr machen.

von J. S. (engineer) Benutzerseite


Lesenswert?

Ralf schrieb im Beitrag #3107444:
> Wenn du so programmierst wie du deutsch schreibst wundert mich
> gar nichts.

Wenn Du ihn schon erziehen willst, musst Du aber selber auch korrekt 
schreiben: "DU" als Anrede groß, in den Satz müssen 2 Kommata und "gar 
nichts" auseinander. 5 Fehler pro Satz macht leider eine 6! :-)

Christian R. schrieb:
> Bei 60MHz sollte man das nicht mehr machen
Was wäre denn Deiner Erfahrung nach die Grenze? Wenn er timingmäßig zu 
routen packt, müsste es doch gehen, wobei halt die Frage ist ob er es 
packt.

Bei geringen Frequenzen wie 60MHz kann man den Takt wie ein Signal 
behandeln und sampeln.

von Christian R. (supachris)


Lesenswert?

Jürgen S. schrieb:
> Was wäre denn Deiner Erfahrung nach die Grenze? Wenn er timingmäßig zu
> routen packt, müsste es doch gehen, wobei halt die Frage ist ob er es
> packt.

Naja, ich hatte sowas am Spartan 3e mal mit 80MHz gemacht. Das ging zwar 
hat aber trotz korrektem Routing und getroffener Constraints immer mal 
Timing-Fehler erzeugt (Glitched im Mess-Signal).

> Bei geringen Frequenzen wie 60MHz kann man den Takt wie ein Signal
> behandeln und sampeln.

Dann muss man das aber auch so machen und nicht als Takt behandeln. Man 
braucht dann halt noch einen viel höheren Sample-Takt.

Besser ist es aber beim Platinen-Design auf solche Dinge zu achten. 
Idealerweise macht man Platine und FPGA Design gleichzeitig um zum 
Zeitpunkt der Übergabe an den Platinenhersteller sicher zu sein, dass 
zumindest alle Clock und sonstigen Spezialpins passen. Wenn man nachher 
erst damit anfängt geht man ziemlich sicher baden und/oder muss viele 
Krücken um den kleinen Fehler herumbasteln.

von Oli (Gast)


Lesenswert?

Christian R. schrieb:
> Wenn man nachher
>
> erst damit anfängt geht man ziemlich sicher baden und/oder muss viele
>
> Krücken um den kleinen Fehler herumbasteln.

Wie war! und wie oft kommt es vor, dass an fertigen Platinen die FPGAs 
nachgefrickelt werden müssen.

von Stephan H. (Gast)


Lesenswert?

Ich danke euch für aure Hilfe

Leider verwend ich als Entwicklungs umgebung Altium
dort wird das UCF file jedes mal neu erstellt

Das mit der sample tacktung würd ich interessiren
wird das in einen der constreint files eingestellt?

auf jeden dank viel danck für Euren rad!
Ps.: ich hab mitlerweile die Deutschmatura (ABI)

von Stephan H. (Gast)


Lesenswert?

PPs.: Ich nutze das Nanobord 3000 da sind leider alle GCKL vergeben =S

von Christian R. (supachris)


Lesenswert?

Vielleicht kannst du von dem LHCLK Pin auf einen DCM gehen und von da 
über einen BUFG auf das globale Takt-Netzwerk. Das könnte dann klappen.

von J. S. (engineer) Benutzerseite


Lesenswert?

Christian R. schrieb:
> von dem LHCLK Pin auf einen DCM gehen
Ist aber auch nur eine Notlösung, weil der eigentliche Sinn des Taktes 
ja sicher ist, dass er vorgibt, wann die Daten passen, d.h. er "jitter" 
mit seinen Daten mit. Die DCM entkoppelt das.

von Christian R. (supachris)


Lesenswert?

Das sollte bei 60MHz aber weit weniger ins Gewicht fallen als den Clock 
über ein normales Routing-Netzwerk zu schicken und zu hoffen, dass er 
gleichzeitig an allen betreffenden Flipflops ankommt.

von T.G. (Gast)


Lesenswert?

Habe gerade ein ähnliches Problem / eine gleichlautende Meldung. Wie 
gehe ich damit nun um:

Habe ich bezüglich des Problems eine Disfunktion der Schaltung zu 
befürchten oder kann ich davon ausgehen, dass mein Design i.O. ist, 
sofern er die Timings schafft und hätte durch die suboptimale 
Verdrahtung nur ein Taktreserveproblem.

??

von Duke Scarring (Gast)


Lesenswert?

Jürgen S. schrieb:
> Die DCM entkoppelt das.
Du kannst die DCM auf SOURCE_SYNCHRONOUS stellen. Dann sollte sie als 
zero-delay-buffer arbeiten.

Stephan H. schrieb:
> Leider verwend ich als Entwicklungs umgebung Altium
> dort wird das UCF file jedes mal neu erstellt
M.E. konnte man früher dem Altium-Designer noch zusätzliche Constraints 
(in einer eigenen Syntax) mitgeben. Mich würde wundern, wenn das heute 
nicht mehr geht.

Duke

von Stephan H. (Gast)


Lesenswert?

Ich Danke vielmals um für alle radschläge

Ich kann euch leider nicht sagen ob es geholfen hätte
mein nanoboard fährt leider nicht mehr hoch

Dennoch herzlichen Danke

von J. S. (engineer) Benutzerseite


Lesenswert?

Duke Scarring schrieb:
> Jürgen S. schrieb:
>> Die DCM entkoppelt das.
> Du kannst die DCM auf SOURCE_SYNCHRONOUS stellen. Dann sollte sie als
> zero-delay-buffer arbeiten.
"source_synchronous" bedeutet ja nur, dass die Phase an der 
Eingangsphase orientiert wird, die glättende Wirkung der PLL als solcher 
bleibt ja bestehen, wodurch die Taktoffsetreserve insgesamt sinkt - 
jedenfalls, wenn es sich um eine richtige PLL handelt. Die Frage ist, 
wie stark es sich auswirkt. In jedem Fall sollte man das Regelverhalten 
auf "Fast" stellen - bei (Xilinx ist das "Bandwidth = High", bei Altium 
weiss ich es nicht) damit der Takt schneller folgt.


Stephan H. schrieb:
> alle ra*d*schläge
:-)

> mein nanoboard fährt leider nicht mehr hoch
elektrisch nicht oder funktionell nicht?
will sagen: FPGA defekt / board defekt, oder vielleicht nur das flash 
überschrieben?

>Altium
Was genau macht Altium im Entwicklungsprozess? Es muss ja 
Informations-Quellen und Randbedingungen geben, aus denen er das UCF 
erzeugt.

Ich würde das UCF einmal kopieren, umbennenen und in Xilinx als anders 
benanntes UCF eintragen. AM Besten die toolchain gleich ganz auftrennen, 
das macht IMHO nur Probleme.

von Stephan H. (Gast)


Lesenswert?

Die Dioden die anzeigen das er Strom hat leuchten.
Die Dioden die anzeigt das er ready ist nicht.
Und nach ca 24-36 stunden Fährt er wieder hoch ^^
Dann hab ich wieder einen versuch
Ich werd mal das bord mit einen aus der Schule vertausen

Altium benutzt das XILINX ISE.
hat aber eigene Constraint
diese wandelt es zu ein UCF file um.

mit dem clk bin ich schon draufgekommen
FPGA_NOCLOCK=TRUE  wird dann zu NET "DCLK" CLOCK_DEDICATED_ROUTE = 
FALSE; übersetzt.

Wie ich den Tackt beschleunige muss ich noch rausfinden.
Ich nehme an "Bandwidth = High" wird ins UCF file eingetragen?

von Christian R. (supachris)


Lesenswert?

Stephan H. schrieb:
> Wie ich den Tackt beschleunige muss ich noch rausfinden.
> Ich nehme an "Bandwidth = High" wird ins UCF file eingetragen?

Was willst du da beschleunigen? Wenn es kein Takt -Netz ist, dann ist 
es keins, sondern ein normales Logik-Netz.

von Stephan H. (Gast)


Lesenswert?

Hat er nicht sowas wie eine Sample tackt?
Ich Mus ja dann Daten mit 60mhz verarbeiten.
Ich weis nur nicht ob er das so ohne definierten Clock einfach schafft.
Prinzipiell ist mir sogar egal wenn hi und da ein Fehler ist
Ist nehmlich nur EMPG.

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.