Hintergrund
Ich arbeite an einem ziemlich dichten gemischten PTH / SMD-Komponenten-PCB-Design (plattiert durch Loch / Oberflächenmontage). Ich verwende Eagle CAD für die schematische Erfassung / das Layout und verwende die Auto-Router-Funktion zum Routen. Es ist eine zweischichtige Platine, und ich versuche, alle SMD-Komponenten auf der gleichen Seite der Platine zu halten, um die Herstellung zu vereinfachen.
Erfahrung
Normalerweise platziere ich meine Komponenten an Orten, die ich im Hinblick auf die Schnittstellennähe für sinnvoll halte, drehe QFP-Pakete um 45 Grad, wo es sinnvoll erscheint, setze das Routing-Raster auf 1 mil (dh das Minimum?), setze die DRC-Mindestspurbreite auf das von meinem Hersteller zugelassene Minimum, klicken Sie auf Los, fangen Sie ein Auge zu und sehen Sie, wie es sich am Morgen herausstellt (oder dass es fehlgeschlagen ist). Es gibt viele Einstellungen im Auto-Router und DRC, mit denen ich ehrlich gesagt nie herumspiele, weil ich nicht verstehe, wie sie sich auf die Routbarkeit auswirken (ist das ein Wort?), was zu meiner Frustration beitragen kann.
Frage
Ich habe Eagle zu diesem Zeitpunkt häufig verwendet und bin sehr zufrieden damit, aber es scheint oft eine echte Herausforderung zu sein, die automatische Route zum Abschluss zu bringen, und die Routing-Fähigkeit scheint sehr empfindlich auf die Platzierung von Komponenten zu reagieren. Es wird oft bis zu 98+% geroutet und dann aufgegeben. Was sind einige Faustregeln / Richtlinien / Ratschläge, wie man dem Autorouter helfen kann, die Arbeit zu erledigen?
Der Eagle-Autorouter ist ein anständiges Tool, und ich verwende es häufig. Wie bei jedem Tool müssen Sie jedoch wissen, wie man es gut einsetzt und seine Grenzen versteht. Wenn Sie nur erwarten, alles auf den Autorouter zu werfen, werden Sie enttäuscht sein. Kein aktueller Autorouter, und wahrscheinlich noch für einige Jahre, kann dies für irgendetwas anderes als erfundene oder Spielzeugprobleme tun.
Sie sagen, es gibt Einstellungen im Eagle-Autorouter, die Sie nicht verstehen und mit denen Sie niemals herumspielen. Das ist eine schlechte Einstellung und wahrscheinlich ein guter Teil Ihres Problems. Es gibt keinen Satz von Steuerparametern, der auf allen Karten funktioniert. Selbst innerhalb von 2-Lagen-Boards gibt es verschiedene Kompromisse. Sie müssen unbedingt das Handbuch lesen und die Parameter für Ihre spezielle Situation anpassen.
Bei zweischichtigen Platinen versuche ich oft, den größten Teil der unteren Schicht als Grundebene zu halten. Ich verwende daher die oberste Schicht so oft wie möglich für Verbindungen und die untere Schicht für kurze "Jumper", damit die Routing-Topologie funktioniert. In diesem Fall lege ich hohe Kosten für das Routing in der untersten Ebene fest.
Vor dem Autorouting muss man sich das Board anschauen und über die kritischen Bereiche nachdenken, die man einem Autorouter nicht erklären kann. Beispielsweise möchten Sie die Schleifenströme eines Schaltnetzteils lokal und von der Hauptmasseebene fernhalten. Dasselbe gilt für Hochfrequenzströme, die lokal auf einem digitalen Chip liegen, wie Bypass-Kappen und Quarz mit ihren Kappen. Wenn Sie die Pseudo-Ground-Plane-Schicht wie oben beschrieben verwenden, möchten Sie jede Masseverbindung sofort manuell mit einer eigenen Durchkontaktierung mit der Ground-Plane verbinden. Dadurch bleibt auf der obersten Ebene maximaler Platz für das Routing von allem anderen.
Der Prozess des Routings eines Boards sieht so aus, selbst wenn der Autorouter den größten Teil der Routinearbeit erledigt:
Hier ist eine Eagle-Autorouter-Steuerdatei, die ich für ein zweischichtiges Projekt verwendet habe, wobei die unterste Schicht so weit wie möglich eine Grundebene war:
; EAGLE-Autorouter-Steuerdatei [Standard] RoutingGrid = 4mil ; Trace-Parameter: tpViaShape = Rund ; Bevorzugte Anfahrt: PrefDir.1 = * PrefDir.2 = 0 PrefDir.3 = 0 PrefDir.4 = 0 PrefDir.5 = 0 PrefDir.6 = 0 PrefDir.7 = 0 PrefDir.8 = 0 PrefDir.9 = 0 PrefDir.10 = 0 PrefDir.11 = 0 PrefDir.12 = 0 PrefDir.13 = 0 PrefDir.14 = 0 PrefDir.15 = 0 PrefDir.16 = * Aktiv = 1 ; Kostenfaktoren: cfVia = 50 cfNonPref = 5 cfChangeDir = 2 cfOrthStep = 2 cfDiagStep = 3 cfExtdStep = 0 cfBonusStep = 1 cfMalusStep = 1 cfPadImpact = 4 cfSmdImpact = 4 cfBusImpact = 0 cfUmarmen = 3 cfVermeiden = 4 cfPolygon = 10 cfBasis.1 = 0 cfBasis.2 = 1 cfBase.3 = 1 cfBase.4 = 1 cfBasis.5 = 1 cfBase.6 = 1 cfBase.7 = 1 cfBase.8 = 1 cfBase.9 = 1 cfBasis.10 = 1 cfBase.11 = 1 cfBase.12 = 1 cfBase.13 = 1 cfBase.14 = 1 cfBase.15 = 1 cfBase.16 = 5 ; Maximale Anzahl von...: mnVias = 20 mnSegmente = 9999 mnExtdSteps = 9999 mnRipupLevel = 50 mnRipupSteps = 300 mnRipupTotal = 500 [Busse] @Route Aktiv = 1 cfVia = 10 cfChangeDir = 5 cfBusImpact = 4 cfPolygon = 25 cfBase.16 = 10 mnVias = 0 mnRipupLevel = 10 mnRipupSteps = 100 mnRipupTotal = 100 [Route] @Standard Aktiv = 1 [Optimieren1] @Route Aktiv = 1 cfVia = 99 cfNonPref = 4 cfChangeDir = 4 cfExtdStep = 1 cfUmarmen = 1 cfPolygon = 30 cfBase.16 = 10 mnExtdSteps = 20 mnRipupLevel = 0 mnRipupSteps = 100 mnRipupTotal = 100 [Optimieren2] @Optimieren1 Aktiv = 1 cfNonPref = 3 cfChangeDir = 3 cfBonusStep = 2 cfMalusStep = 2 cfPadImpact = 2 cfSmdImpact = 2 cfUmarmen = 0 cfPolygon = 40 mnExtdSteps = 15 [Optimieren3] @ Optimieren2 Aktiv = 1 cfVia = 80 cfNonPref = 2 cfChangeDir = 2 cfPadImpact = 0 cfSmdImpact = 0 cfPolygon = 50 mnExtdSteps = 10 [Optimieren4] @Optimize3 Aktiv = 1 cfVia = 60 cfNonPref = 1 cfPolygon = 60 cfBase.16 = 12 [Optimieren5] @Optimize4 Aktiv = 1 cfVia = 40 cfNonPref = 0 cfPolygon = 70 cfBase.16 = 14 mnExtdSteps = 5 [Optimieren6] @Optimize5 Aktiv = 1 cfVia = 20 cfBase.16 = 16 [Optimieren7] @Optimize6 Aktiv = 1 cfBase.16 = 18 [Optimieren8] @Optimize7 Aktiv = 1 cfBase.16 = 20
Autorouting ist im Allgemeinen eher lästig als sinnvoll. Auch bei superteuren Routern. Mein Unternehmen verwendet Cadence Allegro (70.000 US-Dollar pro Arbeitsplatz), und ich finde, dass es länger dauert, dem Autorouter zu sagen, wie er gute Arbeit leisten soll, als das Ding einfach von Hand zu routen. Und die Endergebnisse sind immer besser. Dies galt für jeden Autorouter, den ich ausprobiert habe, und unabhängig von der Komplexität des Boards. Die Boards, die ich mache, reichen von einfachen 2-Layer-Dingen mit nur ein paar Teilen bis hin zu 14-Layer-Monstern mit 16 BGAs und 2000+ Netzen.
Ich möchte TopoR vorschlagen . TopoR ist auf 2-Layer-Leiterplatten sehr effizient (leitet aber auch erfolgreich sowohl Single-Layer- als auch High-Density-Multilayer-Leiterplatten). Ich kann Ihnen sagen, dass Sie auf 2-Lagen-Platten das beste Ergebnis erzielen (im Vergleich zu anderen CADs).
Wenn Sie interessiert sind, könnte ich ein Beispiel-Routing Ihres Projekts erstellen (ich bräuchte eine .brd-Datei) -> diztempa{at}gmail.com
Ich habe festgestellt, dass Eagles Autorouter unzureichend ist. Viele Leute hier werden sagen, dass Autorouting schlecht ist und vermieden werden sollte, aber ich tendiere dazu, anderer Meinung zu sein. Ich hatte großen Erfolg mit Freerouting, und ich finde, dass es im Allgemeinen viel bessere Routen gibt als Eagle mit weniger Durchkontaktierungen und einer geringeren Gesamtlänge der Strecken. Sie haben Skripte zum einfachen Importieren und Exportieren von Eagle, und es ist im Allgemeinen einfach zu bedienen.
Autorouter können sehr wählerisch sein, und die Algorithmen variieren, sodass das, was für den einen gut funktioniert, für den anderen möglicherweise nicht funktioniert.
Obwohl ich einen Großteil meines Routings von Hand mache, gehöre ich nicht zu denen, die denken, dass sie vollständig vermieden werden sollten. Sie sind nur ein Werkzeug wie jedes andere und wenn es funktioniert und Ihre Arbeit erleichtert, dann verwenden Sie es. Ich persönlich bin jedoch noch nie auf einen Router gestoßen, der es besser kann als Sie von Hand, also würde ich nicht versuchen, ihn ausschließlich zu verwenden.
Wenn das Board jedoch sehr komplex oder das Routing empfindlich ist (dh Einschränkungen hat, von denen der Router nichts weiß und Sie keine anständige Möglichkeit haben, es zu "sagen"), ist es oft besser, zumindest einen Teil davon von Hand zu routen. Wenn es z. B. zu 98% fertig ist, können Sie es oft einfach selbst beenden, da Sie beurteilen können, wo Sie Einschränkungen lockern können (oder dem Autorouter mitteilen und es für bestimmte Netze erneut versuchen).
Platzierungs- und Routingraster ist sehr wichtig. Nutzen Sie auch alle möglichen Regeln, um die Leistung zu optimieren - es kann einen großen Unterschied machen, etwas Zeit mit der korrekten Einrichtung zu verbringen, anstatt nur auf "Route" zu klicken.
Manchmal ist es einfach nicht möglich, das Board zu routen und die von Ihnen festgelegten Designregeln einzuhalten. Es gibt Formeln, um die "Routbarkeit" einer Platine zu ermitteln, basierend auf Platinengröße, Anzahl der Pads, Leiterbahnbreite usw. Google wird mehr wissen.
Ich habe den Eagle-Router nicht verwendet, daher kann ich dazu keine speziellen Ratschläge geben, aber lesen Sie die Dokumentation gründlich durch und versuchen Sie herauszufinden, was jede einzelne Einstellung bewirkt. Tun Sie dies vielleicht auf einem Testboard, um zu sehen, was in verschiedenen Situationen am besten funktioniert.
Ich stimme CMP auf Freerouter zu. Es ist tatsächlich besser als die meisten nativen Autorouter, die ich in Bezug auf das Routing verwendet habe. Es ist also einen Versuch wert, um zu sehen, ob Sie bessere Ergebnisse als Eagle erzielen.
Vicatcu