mikrocontroller.net

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


Autor: Marc08 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: dsfasd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
20Mhz ist schnell
auch 1Mhz

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

Bewertung
0 lesenswert
nicht 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.

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marc08 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marc08 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar dann versuch ich jetzt einfach mal mein "Glück"!

Vielen Dank!!!

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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.

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

Bewertung
0 lesenswert
nicht 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

Autor: Schrotty (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Schrotty (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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".

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.