Forum: FPGA, VHDL & Co. CPLD bei 20MHz Clock


von Marc08 (Gast)


Lesenswert?

Hallo,

Ich würde gern eine Platine machen, bei der ich einen CPLD (MAXII) bei 
einem 20MHz-Clock betreibe...

Ist es auch bei solch "langsamen" Clocks wichtig auf Leitungsverlegung 
und Wellenwiderstände zu achten, oder benötigt man dies nur bei höheren 
Clocks?

von dsfasd (Gast)


Lesenswert?

20Mhz ist schnell
auch 1Mhz

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


Lesenswert?

> Ist es auch bei solch "langsamen" Clocks wichtig auf Leitungsverlegung
> und Wellenwiderstände zu achten...
Ausschlaggebend ist nicht (nur) die Grundfrequenz, sondern die 
Flankensteilheit der Signale. Wenn du ein Rechteck mit 20MHz übertragen 
willst, hast du auch die ungeraden Harmonischen mit 60MHz, 100MHz, 
140MHz usw. Und das ist dann schon einen Blick aufs Layout wert... ;-)

Am einfachsten sind die Regeln:
- Fasse dich kurz.
  Keine unnötigen Schlenker in der Leiterbahn, keine unnötigen Vias.

- Strom fliesst im Kreis.
  Wo ein Strom hinfließt fließt auch einer zurück. Gib dem Rückstrom
  (z.B. auf einer Masselage/-leiterbahn) einen möglichst kurzen Weg.

von Timmo H. (masterfx)


Lesenswert?

Bei 20 MHz ist es noch nicht so kritisch. Ich würde sagen ab 100-200 MHz 
wirds langsam kritisch mit den Leitungslängen

von Marc08 (Gast)


Lesenswert?

Gut das ganze klein zu halten habe ich sowieso vor...

Aber spielt es eine Rolle welche Form die Leiterbahnen haben (Rund oder 
Eckig)?

Da ich von dem MAXII sowieso nur ca 20 Pins brauche habe ich eigentlich 
vor die einzelnen pins immer so weit wie möglich voneinander zu trennen 
und die dazwischen auf Masse zu legen... ist das denn überhaupt 
sinnvoll?

von Timmo H. (masterfx)


Lesenswert?

Also bei 20MHz würde ich sagen nein, insbesondere weil es sich ja hier 
um digitale Signale und nicht analoge. Man sollte drauf achten wenn die 
Leitungslänge nahe an die Wellenlänge rankommt. Bei 20 MHz ist die 
Wellenlänge 15m, da bist du mit einem Platinenlayout noch weit davon 
entfernt. Selbst bei 200 MHz würde ich den Wellenwiderstand nicht 
beachten, hier muss du jedoch schon auf Laufzeiten achten, insbesondere 
wenn du Speicher (DDR etc) ansteuern willst.

von Marc08 (Gast)


Lesenswert?

Alles klar dann versuch ich jetzt einfach mal mein "Glück"!

Vielen Dank!!!

von Olaf (Gast)


Lesenswert?

> Also bei 20MHz würde ich sagen nein, insbesondere weil es sich ja
> hier um digitale Signale und nicht analoge.

Das stimmt nicht. Es kommt nicht darauf an wie hoch die Taktfrequenz
ist sondern wie schnell sie sein koennte, also wie schnell die
Taktflanken sind. Ausserdem kann man bei CPLDs auch schnell freude
haben weil die Eingaenge sehr fix sind. Ich hatte z.B Probleme
mit einem I2C im inneren eines CPLD obwohl der Clock da nur 10khz
betraegt und die Leitungslaenge etwa 15cm war.
Man kann es natuerlich hin bekommen, aber ein programmierter PCF8574 in 
einem CPLD war auf jedenfall deutlich kritischer als ein echter!

Olaf

von Timmo H. (masterfx)


Lesenswert?

Bei 10 kHz kann ich mir nun wirklich nicht vorstellen. Bei 10 kHz liegt 
der Pegel ja 0,1ms an. Selbst wenn du die Datenleitung doppelt so lang 
machst wie die CLK Leitung geht das immernoch, das sind ja nur etwas 
mehr als 1/2 ns Verzögerung. Es geht hier ja um die externe und nicht um 
die interne "Verdrahtung". Was man im CPLD mach ist erstmal unerheblich.

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


Lesenswert?

> Bei 20 MHz ist die Wellenlänge 15m, da bist du mit einem Platinenlayout
> noch weit davon entfernt.
Der gute alte PCI-Bus hatte "nur" 33MHz und da gab es schon recht rigide 
Anforderungen fürs Layout  :-/

> Bei 10 kHz kann ich mir nun wirklich nicht vorstellen.
Ja, wenn die Flanke in 2ns hochknallt, dann gibt das mit dem passenden 
Layout hübsche Überschwinger. Und wenn der Baustein darauf etwas 
sensibel reagiert...   :-o

von Schrotty (Gast)


Lesenswert?

Also ich seh bei 20 MHz auch noch kein Problem.. einfach die Leitung 
nicht unnötig lange machen und die Masse ebenso gut und kurz verbinden.
Der CPLD ist jetzt auch an seinem Clock-Eingang nicht soo empfindlich, 
dass er auf nen Überschwinger etc. gleich beleidigt reagiert.

von Christian R. (supachris)


Lesenswert?

Timmo H. wrote:
> Bei 10 kHz kann ich mir nun wirklich nicht vorstellen. Bei 10 kHz liegt
> der Pegel ja 0,1ms an.

Auch wenn du dir es nicht vorstellen kannst, ist es so. Man kann sich 
massive Probleme einhandeln. Gerade die CoolRunner II CPLD schalten 
dermaßen schnell ihre IOs, dass man sich locker Frequenzen im Bereich 
von einigen hundert MHz erzeugen kann. Und dabei ist es völlig 
unerheblich, wie oft die schalten. Denn die Flanke ist das 
entscheidende, nicht die Häufigkeit. Wir hatten hier schon CPLD-Designs, 
die die verrücktesten Sachen gemacht haben, selbst bei quasi-statischer 
Ansteuerung. Wo es geht, setzen wir aktive Terminatoren ein, z.B. die 
Pericom Chips.

von Schrotty (Gast)


Lesenswert?

ahh okay, ich bezog meine Angabe nur auf die Verdrahtung 
Oszillator-FPGA.
Was die Signale generell angeht, ist es natürlich sicher so, dass die 
Flankensteilheit das entscheidende ist und nicht die Frequenz. Und wenn 
die Ausgänge schalten, dann ist es unahbängig von der Frequenz mit der 
sie schalten, sondern die Flankensteilheit spielt die entscheidende 
Rolle. Und diese wird von der Treiberleistung des Ausgangs bestimmt.
Daher ist es natürlich richtig, dass es zu sehr hochfrequenten Anteilen 
im Signal kommen kann.
Man muss sich aber generell fragen, WAS in dem umliegenden Bereich 
negativ beeinflusst werden kann: Hat man z.B. auf dem System ein 
empfindliches Messystem, dann muss man natürlich drauf achten, dass sie 
die Frequenzen nicht störend in die Schaltung einkoppen. Lässt man nur 
ein paar LEDs blinken, ist es völlig wurscht, wenn da Störungen auf der 
Leitung sind.

Ich weiss nicht, ob du die slew-rate an dem CPLD einstellen kannst. Wenn 
ja, dann stell sie so langsam, wie möglich. Weiterhin könntest du mit 
Widerständen und/oder kleinen Kapazitäten uf den Leitungen die Flanken 
ein wenig "plattklopfen".

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.