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


von Stefan R. (stefripp)


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?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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?

von Klaus F. (kfalser)


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?

von Stefan R. (stefripp)


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.

von Stefan R. (stefripp)


Lesenswert?

Bei Quartus kannst du eine PLL mit Clock Enable generieren.

von Sym (Gast)


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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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".

von Sym (Gast)


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.

von Stefan R. (stefripp)


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.

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.