mikrocontroller.net

Forum: FPGA, VHDL & Co. Ein paar Takte zuviel.


Autor: Stefan R. (stefripp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
folgendes Problem: In meiner Schaltung nutze ich unterschiedliche 
Clocksignale. Jetzt kann ich die verschiedenen Takte auf PLLs geben und 
mir die diversen Teiler davon abgreifen. Leider bietet Altera aber für 
jede PLL nur ein Clock Enable.
Deshalb die Frage: wenn ich anzwischen den PLL-Ausgang und den 
Takteingang eine Logic in der Art

clock_eingang <= clock AND enable;

setze mache ich mir doch die Vorteile der stabilen PLL größtenteils 
wieder zunichte?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan R. schrieb:
> setze mache ich mir doch die Vorteile der stabilen PLL größtenteils
> wieder zunichte?
Du erzeugst dir einen "Gated Clock" und die Xilinx Tools würden sagen: 
"this is no good design practice"... :-o
Hauptsächlich deshalb, weil du dann mit dem Takt erst mal in die 
Logikverdrahtung und dann zurück auf ein Taktnetz mußt.

Ganz arg schlimm wird es dann aber, wenn dieser Enable asynchron zum 
gegateten Clock kommt. Dann kann dir schlicht und einfach alles 
passieren...

BTW:
> In meiner Schaltung nutze ich unterschiedliche Clocksignale.
Warum? Wieviele? Und warum willst du die noch Enablen/Sperren?

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan R. schrieb:
> Leider bietet Altera aber für jede PLL nur ein Clock Enable.

Seit wann haben die Clock Enables mit der PLL zu tun?

Autor: Stefan R. (stefripp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe eine VGA Zeile mit 800 sichtbaren Pixeln. Dazu habe ich 720 
Y-Werte. Diese werden mit 100MHz paarweise aus dem SDRAM in ein FiFo 
gelesen. Bildfrequenz sind 72Hz = 50MHz "Pixelfrequenz". Vor den 800 
sichtbaren Pixeln liegen 165 Pixel Austastlücke. D.h. beim ersten 
sichtbaren Punkt muss mein Fifo 2 Takte Vorlauf bekommen haben um dann 
mit 25MHz jeweils ein Päarchen Y-Werte auszuspucken.

Autor: Stefan R. (stefripp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei Quartus kannst du eine PLL mit Clock Enable generieren.

Autor: Sym (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke, da gibt es ein Missverständnis zum Thema clock enable. clock 
enable bedeutet NICHT, dass Takt und enable signal "und" verknüpft 
werden und so im FPGA verteilt wird.
Die clock wird - as is - verteilt und die Register werden mittels clock 
enable auf aktiv oder inaktiv geschalten.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sym schrieb:
> clock enable bedeutet NICHT, dass Takt und enable signal "und" verknüpft
> werden und so im FPGA verteilt wird.
Diese logische Verknüpfung ist der bereits angeführte "Gated Clock".

Autor: Sym (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> Sym schrieb:
>> clock enable bedeutet NICHT, dass Takt und enable signal "und" verknüpft
>> werden und so im FPGA verteilt wird.
> Diese logische Verknüpfung ist der bereits angeführte "Gated Clock".

Absolut richtig. Und gated clocks sollte man tunlichst vermeiden, es sei 
denn man weiß ganz genau was man tut.

Autor: Stefan R. (stefripp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke mitlerweile auch, dass der Begriff "Clock Enable" von Altera 
hier irreführend ist. Eigentlich sollte es eher "PLL Enable" lauten.

Das Problem habe ich auf andere Weise gelöst. Ursprünglich war der 
Fehler, dass ich eine Art Übersprechen auf dem Ausgang meiner Fifos 
hatte, da während des Auslesens gleichzeitig Daten am Eingang anlagen, 
die ich aber verwerfen wollte. Probehalber habe ich also ein UND auf den 
Takt gelegt und ihn während des Auslesens ausgeblendet. Das hat so auch 
funktioniert, war aber nicht wirklich gut gelöst. Mitlerweile läuft die 
Schaltung, indem ich den Dateneingang über einen Multiplexer laufen 
lasse und nur noch dann Freigebe, wenn ich wirklich einlesen will.

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.