Forum: FPGA, VHDL & Co. PLL direkt auf Ausgang und abschaltbare Clock mit Output DDR Registern


von Matthias (Gast)


Lesenswert?

Hallo,

ich kombiniere mal zwei Fragen in diesem Thread.

Das erste betrifft die Ist-Situation: Ich habe einen Ausgang mit SPI 
Protokoll und einer 62.5 MHz Clock. Derzeit führe ich auf diesen 
Clock-Ausgang direkt den Ausgang der PLL, die den Takt aus 125 MHz 
erzeugt. Das ganze funktioniert aber es würde mich aus theoretischen 
Gründen interessieren, ob das suboptimal ist. Ich denke da in die 
Richtung lange Signalwege von der PLL zum Ausgangspin oder 
unterschiedliche HIGH-LOW zu LOW-HIGH Zeiten oä. Weiß hier jemand etwas 
diesbezüglich?


Das zweite betrifft einen notwendigen Umbau: Die Clock läuft derzeit die 
ganze Zeit und soll jetzt nur für die Datenübertragung aktiviert und 
danach wieder abgeschalten werden. Mir schwebt vor, ein Output DDR 
Register dazwischenzuschalten, dessen beide Eingänge ich während der 
Idle-Zeiten auf '0' lasse, sobald Frames gesendet werden sollen schalte 
ich einen der beiden Eingänge auf '1' und aktiviere damit die Clock. Das 
kommt mir recht elegant vor aber gibts damit Probleme bzw geht das noch 
besser?

LG
Matthias

von Der Besucher (Gast)


Lesenswert?

Kannst du mit halbem PLL-Takt als SCK leben?

von Matthias (Gast)


Lesenswert?

Ich habe einige Möglichkeiten, das zu machen, ich habe den 125 MHz Takt 
auch in die Entity geführt, also könnte ich auch ein Register damit 
togglen. Warum mir der DDR Ansatz gut gefällt ist dass ich im Idle-State 
sicher sein möchte, dass die Clock auf logisch '0' ist, das ist mit den 
DDR einfach zu erreichen, wenn ich das Register toggle könnte es schon 
komplizierter werden.

von Der Besucher (Gast)


Lesenswert?

Hast du mal eine Beschreibung, wie das DDR genau funktioniert und 
angesteuert wird? Vielleicht sogar ein Datenblatt?

von Matthias (Gast)


Lesenswert?

Oh, sorry, hab vergessen zu sagen dass es sich um ein Xilinx Virtex 5 
FPGA handelt. Ich hab an zwei anderen Taktausgängen schon DDR Register, 
die sich dort bewährt haben, jetzt ist eben ein Umbau notwendig weil ich 
den Takt abschaltbar machen muss.

Die ganze Thematik macht mir schon ziemlich Kopfweh, der Empfänger nimmt 
so ziemlich jeden Blödsinn als Paket an, den man ihm schickt und der 
Effekt eines falschen Pakets kann alles ruinieren, also zb ein Spike auf 
der Enable-Leitung im falschen Moment und ein Tag Arbeit sowie Material 
um einige 100 Euronen ist beim Teufel. Daher auch der Bedarf, den Takt 
abzuschalten, um die Wahrscheinlichkeit so eines Ereignisses zu 
verringern.

von Der Besucher (Gast)


Lesenswert?

Dann würde ich vorschlagen den Takt direkt vom Ausgang eines Registers 
zu nehmen. Alles, was mit Generierung und Aktivierung zu tun hat kommt 
vor das Register.
Vorteil: keine Spikes auf der Taktleitung
Nachteil: maximal halber PLL-Takt
Auf jeden Fall achte dadrauf, das die Protokolle korrekt generiert 
werden. Aber das hast du selbst in der Hand.

Der Besucher

von Matthias (Gast)


Lesenswert?

Naja, Output DDR sollte das Spike-Problem erschlagen, es geht aber auch 
um die Probleme auf einer anderen Leitung.

Gerade bin ich dabei, das ganze noch näher anzuschauen, da wie gesagt 
ein falscher Puls alles ruinieren kann muss man da unheimlich aufpassen, 
zb stellt sich die Frage des genauen Einschaltverhaltens. Ich bin 
inzwischen bei der Frage angelangt, was die Ausgänge des DS90LV047A 
sind, wenn mein FPGA während der Konfigurationsphase 'Z' an die Eingänge 
legt. Leider schweigt sich das Datenblatt hier aus.

Nachdem es sonst keine Einwände gegen die DDR Lösung gab plane ich das 
mal so umzusetzen.

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.