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?
> 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.
Bei 20 MHz ist es noch nicht so kritisch. Ich würde sagen ab 100-200 MHz wirds langsam kritisch mit den Leitungslängen
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?
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.
> 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
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.
> 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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.