www.mikrocontroller.net

Forum: FPGA, VHDL & Co. PLL input ALTERA


Autor: Sabine Mühller (zizo)
Datum:

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

Autor: Harald Flügel (hfl)
Datum:

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

Autor: Sabine Mühller (zizo)
Datum:

Bewertung
0 lesenswert
nicht 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/D...
Warum wenn ich ein PLL verwende bleibt Total PLLs 0/4? Was sind die 
möglichen Fehlern?
kann mir bitte jemand helfen

Autor: Harald Flügel (hfl)
Datum:

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

Autor: Sabine Mühller (zizo)
Datum:
Angehängte Dateien:

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

Autor: Matze (Gast)
Datum:

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

Autor: Harald Flügel (hfl)
Datum:

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

Autor: Sabine Mühller (zizo)
Datum:

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

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.