Forum: FPGA, VHDL & Co. PLL input ALTERA


von Sabine M. (zizo)


Lesenswert?

hi,
ich habe ein Programmin VHDL geschrieben, dann habe ich ein Block 
erzeugt, der Programm läuft(LED blinkt). ich möchte gern ein PLL 
verwenden. dann habe ich ein PLL erzeugt, dann habe ich mit dem Block 
verbunden. das Problem es funktioniert nicht nach der Compilation bleibt 
Total PLLs 0/4 und bekomme ich der folgendes:

Critical Warning: The following clock transfers have no clock 
uncertainty assignment. For more accurate results, apply clock 
uncertainty assignments or use the derive_clock_uncertainty command.
  Critical Warning: From c0 (Rise) to c0 (Rise) (setup and hold)

kann mir jemand sagen, wasdas bedeutet;
Danke

von Harald F. (hfl)


Lesenswert?

Altera Quartus ist da etwas pienzig mit den Warnungen und stuft Sachen 
als kritisch ein, die es in den meisten Designs nicht sind. Die Meldung 
kommt vom TimeQuest Timing Anlyzer und sagt aus, dass Du keine Angaben 
über die Unschärfe eines Taktes gemacht hast. Auch ein Quarzoszillator 
jittert etwas, und TimeQuest will wissen, wie arg. Aber wie gesagt kann 
man das in den meisten Fällen zunächst ignorieren, wenn du unterhalb 100 
MHz bleibst.

von Sabine M. (zizo)


Lesenswert?

Danke für dein Antwort,
ich habe die DE0 Board , ich habe der Clock Eingang von PLL zu G21 
angeschlossen, ist es richtig?
http://www.terasic.com.tw/attachment/archive/364/DE0_User_manual_v1.1.pdf
Warum wenn ich ein PLL verwende bleibt Total PLLs 0/4? Was sind die 
möglichen Fehlern?
kann mir bitte jemand helfen

von Harald F. (hfl)


Lesenswert?

Ich kann jetzt gerade nicht prüfen, ob das der richtige Pin ist, aber 
wenn er es nicht wäre, dann würde Quartus schon meckern. Gehen wir also 
mal davon aus, dass das stimmt.

Quartus optimiert alles weg, was nicht benötigt wird. Wenn Du eine PLL 
instanzierst und den Takteingang der PLL an einen Clockpin anschließt, 
dann wirft Quartus das trotzdem alles wieder weg, wenn kein Ausgangspin 
von einem der von der PLL erzeugten Takte abhängt. Also selbst wenn Du 
den Ausgangstakt der PLL in einer Logik verwendest aber kein Signal 
diese Logik an einem Ausgangspin herauskommt, dann wird das alles 
wegoptimiert und die Auslastung bleibt bei 0/4.

von Sabine M. (zizo)


Angehängte Dateien:

Lesenswert?

ich verwende der Ausgang von PLL, im Anhang ist der Programm. kann man 
der Fehler erkennen?
warum inclk0 bei Assignment Editor nicht definiert ?

danke

von Matze (Gast)


Lesenswert?

Hallo Harald,
bezieht sich diese Warning auf den externen Quarztakt zur PLL ? Und wenn 
ja wird diese Warning erst kritisch wenn der externe 'Quarztakt' 100MHz 
beträgt ? wäre für Aufklärung dankbar. Gruss & schönen Sonntag
Matze

von Harald F. (hfl)


Lesenswert?

Hallo Sabine,

Du hast fast alles richtig gemacht. Die Bildschirmabzüge zeigen 
allerdings, dass Quartus nur einen Teil deiner Schaltung synthetisiert. 
Wahrscheinlich hast Du zuerst die Schaltung der Entity pll modelliert 
(also den rechten Block, der gar keine PLL enthält) und später die PLL 
und den Schaltplan dazugebaut. Quartus weiß das aber nicht, sondern 
kennt nur die Datei pll.vhd. Deswegen findet Du im Assignment Editor 
auch nicht die Pins des Top levels (block1) sondern die Ports der Entity 
pll. Du musst Quartus schon sagen, was der Top level der Synthese sein 
soll. Also klick mal in den block1, definiere das als Top level 
(Ctrl-Shift-J, glaube ich) und dann müsste es gehen, falls Quartus nicht 
noch die alte Einschränkung hat, dass der top level so heißen muss, wie 
das Projekt.

@Matze: TimeQuest sagt ganz genau, was ihm nicht passt. Wie hieß das 
doch gleich?

Critical Warning: The following clock transfers have no clock
uncertainty assignment. For more accurate results, apply clock
uncertainty assignments or use the derive_clock_uncertainty command.
  Critical Warning: From c0 (Rise) to c0 (Rise) (setup and hold)

Aha, Clock c0 gefällt ihm nicht. Das ist der Takteingang der Entity 
rechts im Schaltplan. Wenn Sabine das mit dem top level korrigiert hat, 
dann wird TimeQuest außerdem noch über den Takt inclk0 meckern, also den 
Eingangstakt der PLL.

Das mit den 100 MHz ist so eine Hausnummer. Eine Taktperiode ist da 10 
ns lang und der Jitter eines Quarzoszillators liegt da um 
Größenordnungen darunter. Das geht im Rundungsfehler unter. Der richtige 
Weg wäre allerdings, eine entsprechende Angabe in die sdc-Datei zu 
schreiben, dann gibt TimeQuest Ruhe.

von Sabine M. (zizo)


Lesenswert?

danke  Harald Flügel
es ist sehr nett von dir,  ich habe das probiert und es funktioniert 
ganz gut.
danke

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.