Hallo, ich entwickle grade ein Board, welches einen uC und einen FPGA enthalten soll. Als uC will ich einen LPC2478 benutzen, da ich diesen bei der NXP-Sample-Aktion bekommen konnte. Als FPGA habe ich mir jetzt einfach mal den kleinsten Cyclone II herausgesucht. So, nun habe ich mal einen Schaltplan gezeichnet, und wollte die passende LP dazu routen; aber ich verzweifle schier am Layout, und das, obwohl ich 4 Lagen zur Verfügung habe. Denn am Controller sind SDRAM und FLASH angeschlossen, sowie der FPGA, und Ethernet und MCI. Ich wollte mal in die Runde fragen: 1. könnt ihr mir Tipps geben, wie ich das angehen könnte? Ich leide ein bisschen an Platzmangel. Braucht es wirklich an jedem VCC Pin einen 100n Kerko? 2. kennt ihr vielleicht ein Board, was bereits ungefähr die genannten Komponenten enthält (also uC + FPGA + SDRAM + Ethernet + SD-Slot). Dort könnte man vielleicht mal schauen, wie das so gemacht ist. Grüsse André
@ André (Gast) >bisschen an Platzmangel. Braucht es wirklich an jedem VCC Pin einen 100n >Kerko? Da würde ich nicht allzuviel sparen. Die FPGAs sind SAUSCHNELL, und wollen demzufolge SEHR gut entkoppelt werden. Mit 0603 oder gar 0402 sollte das aber machbar sei. 4 Lagen sind aber für das Unternehmen schon recht sportlich, vor allem wenn es alles auf kleiner Fläche konzentriert sein soll. MFG Falk
Hallo, wenn Du eine Power- und eine GND Plane hast brauchst Du nicht an jedem Pin einen Kondensator. 100nF erscheinen mir auch immer etwas groß obwohl die in den letzen Jahren wohl besser geworden sind. Ich verwende trotzdem lieber 47nF. Wegen des Routen - es ist bei zwei freien Lagen, von der eine noch bestückt ist, schwierig und ich überlasse solche Sachen gerne dem Autorouter der nach ein paar Stunden und den richtigen Einstellungen und ggf. ein paar Optimierungen alles entflochten hat. Aber das setzt natürlich vorraus, dass man einen brauchbaren Autorouter hat. Und nein - der von Eagle gehört nicht dazu. Ansonsten halt die Regel auf einer Lage horizontal und der anderen Vertikal routen. Davon abgesehen - der Preisunterschied zwischen 4 und 6 Lagig ist nicht mehr so hoch. Überlege lieber, ob Du eine 6-Lagig Platine machst. Da kannst Du dann auch das Horizontal/Vertikal Schema einigermaßen Problemlos anwenden weil Du zwei (bzw drei) komplett freie Lagen hast. (Von den Vias mal abgesehen.) Viele Grüße, Martin L.
Hallo, vielen Dank erstmal. Ich werde mal schauen, was die 6 lagige Platine kostet, und wenn sie nicht allzu viel teurer ist, werde ich es mit 6 Lagen machen. Dann aber doch noch eine Frage: Der Daten- und Adressbus muss zu recht vielen Chips. 2 SDRAMs, ein FLASH, sowie zum FPGA. Dadurch werden die Leitungen recht lang - gibt das sicher keine Probleme mit dem Datenbustreiber des 2478? mag der circa 7 cm lange Leitungen noch problemlos treiben? Schliesslich soll der Rechner mit 72 MHz laufen. Ausserdem stellt sich mir noch die Frage, ob es Probleme gibt, wenn die Clockleitungen und Adressleitungen unterschiedlich lang sind. Immerhin habe ich bei 72 MHz nur noch 13 ns pro Takt, und es müssen ja auch Setup- und Holdzeiten eingehalten werden (?).
Hallo André, wenn du auch das Schematic selbst erstellst, dann versuche die Signale so miteinander zu verbinden, das möglichst wenige Kreuzungen (im Layout)entstehen und du die Pins ohne Vias direkt verbinden kannst (zumindest beim FPGA hast du die meisten Möglichkeiten). Zu deinen Abblock Cs: naja, 100nF ist ein Wert, der nicht totzukriegen ist. Dabei handelt es sich um ein Relikt aus "alten" Zeiten (die berühmten TTL-Gräber), dort funktionierten die noch. Um die Cs wirst du nicht herumkommen, aber 100nF ist wahrscheinlich zu viel. Welcher Wert genau lässt sich von hier aus nicht sagen, ist wohl u.a. abhängig vom Takt und Trise/ Tfall (AFAIK). Ich denke mal, wenn du an jedem zweiten Vcc Anschluss ein C setzt, sollte es immer noch funktionieren. Man kann auch mehrere grössere Cs (4.7µF-10µF Low ESR) in die Nähe der ICs setzen, diese dienen als Ladungsreserve (hier aber direkt und ohne Umwege direkt in die Powerplane kontaktieren !). Du könntest dir mal das Layout vom NGW100 (Atmel) anschauen, da ist zwar kein FPGA drauf, wohl aber Flash, SD-Card, Ethernet, RS232 und SDRAM. Wobei ich das Layout entsetzlich finde, hier "riecht" es streng nach Autorouter ... (aber es funktioniert, sicher gibt es bessere Beispiele) Dieses Board hat übrigens 6 Lagen. Ich kenn zwar dein Schematic nicht und kann die komplexität deines Projektes nicht wirklich einstufen, befürchte aber, das 4 Lagen nicht reichen werden. Zumal du die inneren Lagen nicht als Signallagen benutzen solltest (ausschliesslich als Power-Lagen). Ist der FPGA ein BGA oder noch Handlötbar ? Impedanzen ? Gruss Uwe
> Der Daten- und Adressbus muss zu recht vielen Chips. 2 SDRAMs, ein > FLASH, sowie zum FPGA. Dadurch werden die Leitungen recht lang - gibt > das sicher keine Probleme mit dem Datenbustreiber des 2478? mag der > circa 7 cm lange Leitungen noch problemlos treiben? Schliesslich soll > der Rechner mit 72 MHz laufen. Wenn die Signal impedanzgeführt sind Nein. Eventuell Terminierung vorsehen. > Ausserdem stellt sich mir noch die Frage, ob es Probleme gibt, wenn die > Clockleitungen und Adressleitungen unterschiedlich lang sind. Immerhin > habe ich bei 72 MHz nur noch 13 ns pro Takt, und es müssen ja auch > Setup- und Holdzeiten eingehalten werden (?). Wenn sie nicht extrem voneinander abweichen (mehr als 3cm) sollte es funzen. Gruss Uwe
Nur mal so - in den 14ns wandert das Signal 4m - selbst im FR4 sind es noch 2m. Nun bitte mal überlegen wie viel 3cm ausmachen. (Genau - 0.1ns) Und in Anbetracht dieser Werte möge man nun nochmal über die Leitungsführung bei diesen Frequenzen nachdenken. Viele Grüße, Martin L.
Hi Uwe, okay das mit den 100 nF werde ich sicher noch überdenken. Das war eigentlich auch klar, dass dieser Wert vom ganzen Design her abhängt. Ich denke, 10..47 nF sind eher besser, aber das muss dann durch probieren ermittelt werden. Ich habe leider kein NGW100, kann man das Layout irgendwo runterladen? Hmm, wie ist denn das beim Multilayer. Ich hätte jetzt mal gesagt: 1 Lage GND, 1 Lage VCC, der rest kann zum routen von Signalen benutzt werden. Ist dem nicht so? Der FPGA sitzt in einem QFP144 Gehäuse, was sich noch sehr gut handlöten lässt. Auf die Impedanzen wollte ich beim Routen eigentlich schon acht geben, aber das Problem ist: die Leitungen müssen (sollten) ja die gleiche Imedanz haben wie die Eingangspins der ICs. Und hier wird es knifflig: wie gross ist die Eingangsimpedanz eines SDRAMs? Im Datenblatt steht nichts. Jemand hier hat mal behauptet, die sei immer 50 Ohm, das kann ich aber nicht wirklich glauben. Wie meinst du, könnte man die Signale gut "impedanzgeführt" verlegen?
> Hmm, wie ist denn das beim Multilayer. Ich hätte jetzt mal gesagt: 1 > Lage GND, 1 Lage VCC, der rest kann zum routen von Signalen benutzt > werden. Ist dem nicht so? Das ist schon korrekt. Der Hinweis "nicht die inneren Lagen zum Signal-Routen" nutzen bezog sich nur auf deinen 4 Lageaufbau. Selbstverständlich kann man die inneren Lagen zum Signalrouting verwenden, aber immer schön getrennt: Signale haben nix in Versorgungslagen zu suchen (naja, nur im wirklichen Notfall :( Hier der Link zum Board: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4102 Wobei ich gerade die Gerber-Daten vermisse, ein Kumpel hat sich das Teil zugelegt, und in der beiliegenden Doku war es wohl enthalten. > Auf die Impedanzen wollte ich beim Routen eigentlich schon acht geben, > aber das Problem ist: die Leitungen müssen (sollten) ja die gleiche > Imedanz haben wie die Eingangspins der ICs. Und hier wird es knifflig: > wie gross ist die Eingangsimpedanz eines SDRAMs? Im Datenblatt steht > nichts. Jemand hier hat mal behauptet, die sei immer 50 Ohm, das kann > ich aber nicht wirklich glauben. Mit Eingangsimpedanz der Ics ist wohl sowas wie eine eingebaute Terminierung (manche haben sowas) gemeint und die ist bei Single Ended Signals gleich 50 Ohm (meistens, Ausnahmen sind i.d.R. Video Applikationen, dort hat man wohl 75 Ohm). Bei Differentiellen Signalen sind es 100 Ohm. Die Behauptung stimmt also. > Wie meinst du, könnte man die Signale gut "impedanzgeführt" verlegen? Indem du die richtigen Geometrien und den korrekten Lagenaufbau benutzt. Zu den Geometrien der Leiterbahnen kann ich dir später ein paar konkrete Angaben machen, allerdings setzt dies einen Lagenaufbau vorraus. Ich vermute, du lässt die Platine bei einem Pool-Fertiger machen (nein, nicht im Swimmingpool ...), hier kannst du leider nicht über den Lagenaufbau selbst endscheiden. Informier dich und uns über den LP-Hersteller deiner Wahl und den Multilayer-Bautypen. Dann kann man sich die Geometrien ausrechnen (das kann ich für dich machen). Gruss Uwe
Hi Uwe, okay dann schaue ich mir mal dieses NGW100 an. Die Gerberdaten wären zwar interessant gewesen, aber wenn man sie halt nicht runterladen kann werde ich mich mit einem Photo sowie dem Schaltplan begnügen müssen. Wegen der Eingangsimpedanz der ICs: Ich glaube nicht, dass mein Flash, das ich verwenden möchte, eine definierte Eingangsimpedanz hat (also eingebaute Widerstände). Es steht nichts davon im Datenblatt... Ebensowenig beim SDRAM. Es steht nur, wie viele pF Kapazität ein Pin hat, ansonsten nichts, was über die Eingangspins auskunft gibt. Muss man da wirklich bei jedem Signal einen 25 Ohm Widerstand als Terminierung einfügen? Das ist irgendwie auch nicht so der Hit. Ich dachte, es reicht, wenn man beim Clock und den wichtigen Steuersignalen Seriewiderstände einbaut, aber anscheinend muss man das auch beim Daten- und Adressbus, wenn man impedanzgeführt routen möchte? Hmm ja, die Leiterplatte werde ich wohl beim Conrad Leiterplattenservice machen lassen (ich kenne sonst nichts anderes, was für Einzelstücke bezahlbar ist). Ich hab auch kein Problem damit, 6 Layer zu verwenden, im Gegenteil, das gefällt mir besser. Ist zwar teuer, aber es soll ja auch einigermassen zuverlässig funktionieren und nicht irgend ein hässliches gebastel werden... Gruss & danke!
> Ich dachte, es reicht, wenn man beim Clock und den wichtigen > Steuersignalen Seriewiderstände einbaut, aber anscheinend muss man das > auch beim Daten- und Adressbus, wenn man impedanzgeführt routen möchte? Wenn man sowas wie du im Bus verschaltet (also am SD Ram hängt noch ein Flash, daran hängt nochwas etc.) ist es AFAIK besser, überall Serien Rs einzubauen. Optimal ist es, so eine Konfiguration in einer Simulation zu testen (Hyperlynx z.B.) - wenn man weiß, was man hier tut. Ja, Ja ich weiß, sauteuer und früher gings auch ohne ... . Leider habe ich sowas auch nicht, diese Art Terminierung (bei High Speed Busen)sehe ich aber häufig bei den Schematics, die ich Layouten darf. Vielleicht gibt es hier ein paar Experten, die das nicht wie ich nur aus dem Bauchgefühl heraus beantworten können. Gruss Uwe
> ... High Speed Busen ....
ich dachte immer, die gibt es nur in klein, mittel und gross ...
Sollte eigentlich "High Speed Busse" lauten.
Gruss Uwe
Hi Uwe, puuh, das mit den Serienwiderständen überall.... das ist ja ein riesen Aufwand. Wenn ich mir z.B. ein PC-Mainboard anschaue, dann hat das ja auch nicht in jeder Leitung einen Seriewiderstand. ? Es ist verwirrend - die einen Leute sagen einem, dass man Seriewiderstände braucht, andere sagen das sei unnötig. Nicht einmal die Literatur ist sich einig. Simulieren kann ich es leider nicht, da ich das passende Programm nicht besitze.... Wie siehst du das: 1. Beim SDRAM - unterschiedlich lange Adressleitungen. 2. Wie lang darf die SDRAM-Clockleitung maximal sein? 2cm? 5cm? 10cm? 3. Dasselbe beim Ethernet. Da braucht man einen 50 MHz Quarzoszillator, welcher mit dem Phy-Chip und dem MAC verbunden ist. Wie unterschiedlich dürfen diese beiden Leitungen in der Länge sein?
> Braucht es wirklich an jedem VCC Pin einen 100n Kerko? Es geht dabei nicht nur um die Vcc-Pins :-o Sieh dir mal meine Betrachtungen zum Thema Abblockkondensatoren an: http://www.lothar-miller.de/s9y/categories/14-Entkopplung Direkt am FPGA sind durchaus auch Kapazitäten um 10-22nF nicht falsch. Zum Thema Platz: du hast schon mal von 0402 SMD gehört? Wie sieht es mit doppelseitiger Bestückung aus?
Ich habe ein LPC2478 Board mit SDRAM und RMII PHY. Das Ganze ist mit Sachen wie SD Slot, LVDS Transmitter auf einer halben Europlatte, auf zwei Lagen untergebracht. Die Clockleitung vom SDRAM hat geschätze 10 cm, die 50 MHz von der PHY auch. Die Signale sehen gut aus und funktionieren tut's scheinbar auch. Serienwiderstände habe ich nur in den Steuerleitungen vom SDRAM, aber nicht in der Adress- oder Datenleitungen. Allerdings habe ich ein 32 Bit RAM und sonst nichts weiteres an dem Bus.
> Wenn ich mir z.B. ein PC-Mainboard anschaue, dann hat das ja auch nicht > in jeder Leitung einen Seriewiderstand. ? Die sind halt nicht überall von nöten oder könnte ein Indiz für einen eingebauten Terminator sein. > Es ist verwirrend - die einen Leute sagen einem, dass man > Seriewiderstände braucht, andere sagen das sei unnötig. Nicht einmal die > Literatur ist sich einig. Das kenne ich, sind halt unterschiedliche Erfahrungen der Leute, wobei sowas naturgemäss schwierig zu vergleichen ist. > Wie lang darf die SDRAM-Clockleitung maximal sein? 2cm? 5cm? 10cm? Schau dich mal auf der HP von Micron um, da gabs AFAIK ein paar brauchbare AppNotes zum Thema. Dort stehen glaube ich auch interessante Dinge über das Routen von z.B. Clockleitungen drin, die an mehr als an einen Verbraucher angeschlossen sind drin (Daisy Chain, Starpoint etc.). Die max. länge deiner Clockleitung kann man eigentlich nicht wirklich von vornherein begrenzen, denn die hängt ja davon ab, wieviel ICs damit getaktet werden sollen. Wenn die Signale impedanzdefiniert ausgeführt sind plus den Terminatoren, dann sollte es mit der Signalintegrität eigentlich passen. Das ganze Thema ist leider sehr komplex und ich kann hier nur als kleiner Layouter meine Erfahrungen weitergeben, nicht als Entwickler. Normalerweise müssen die sich um solche Dinge wie Terminierungen etc. kümmern und die Anforderungen an den Layouter weitergeben. Man muss schon aufpassen, das man es hier nicht übertreibt - ich will das ganze nicht unnötig verkomplizieren und dich gänzlich konfus machen. Gruss Uwe
Nachtrag: hier noch schnell vorm Feierabend ein Link zum Thema: http://www.xilinx.com/support/documentation/user_guides/ug072.pdf Hier geht es zwar um die Virtex FPGAs, aber vielleicht trotzdem interessant. Gruss Uwe
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.