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?
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?
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?
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.
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.
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".
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.