Neu im PCB-Design - warum gibt es keine Komponenten, die automatisch platziert werden?

23

Die Software für das Schaltungsdesign, die ich gesehen habe, bietet die Möglichkeit, Leiterbahnen usw. automatisch auf einer Leiterplatte zu routen.
Aber warum ist diese Software nicht in der Lage, Komponenten automatisch auf einer Leiterplatte zu platzieren, um die Gesamtgröße der Leiterplatte zu minimieren?
Ist das einfach zu kompliziert, um automatisiert zu werden?

Adam
quelle
8
Autorouter sollten in der Lage sein, Komponenten basierend auf Einschränkungen optimal zu platzieren (dh "Button muss hier sein", "LED kann überall in diesem Bereich sein"). Sie sollten auch in der Lage sein, die optimalen Stifte für Teile auszuwählen, die viele äquivalente Stifte aufweisen (z. B. "Verwenden Sie einen beliebigen Io-Stift mit PWM"). Leider habe ich noch nie einen gesehen, der eine dieser Funktionen ausführt. Vielleicht eines Tages.
Bigjosh
7
Platzierung (und Orientierung, Gate-Tausch, Pin-Tausch) ist wirklich sehr wichtig. Dies ist das Wichtigste für ein gutes Routing. Ich denke, ein intelligenter Autoplacer sollte von der Platzierung des Schaltplans ausgehen, es sei denn, der Schaltplan ist einer dieser modernen "Kästen, die von Gräueln der Netzlisten umgeben sind".
Markrages
2
Ausgehend von einem Hintergrund, der kein Schaltungsdesign ist, scheint es mir, dass das Rattennest ausreichen sollte, um alle Komponenten optimal anzuordnen, vielleicht unter gewissen Einschränkungen. Sind die meisten realen Schaltungen mehr manuell entworfen als dies?
Adam
3
Kurz gesagt, die optimale Auslegung von Bauteilen - auch ohne Berücksichtigung der tatsächlichen, nicht idealen Schaltung - ist ein sehr schwieriges CS-Problem. Tatsächlich handelt es sich um ein Beispiel für das Problem des Handlungsreisenden, weshalb eine optimale Lösung nicht durchführbar ist.
Nick Johnson
2
@ Gregd'Eon Ich frage mich das selbe. Sicherlich können Auto-Placer mit mehr Arbeit die Rollen der Entkopplungskappen verstehen und Schaltungsgeräusche usw. simulieren
Adam

Antworten:

19

Ich habe in letzter Zeit einige Leiterplatten entworfen und empfehle Ihnen, für Ihr Endprodukt KEINEN Auto-Placer oder Auto-Router zu verwenden. (Proteus hat Auto Placer.)

Zuallererst - Ihre Software ist so intelligent wie ein Regenwurm, wenn es um die automatische Platzierung oder das automatische Routing geht. Mit anderen Worten, es ist dumm wie eine Kartoffel.

Das automatische Routing würde nicht wissen, bei welcher Platzierung Sie ein besseres Ablaufverfolgungsmuster erhalten, wodurch Sie nicht nur ein effizientes Design erstellen, sondern auch das Rauschen in der Schaltung minimieren können. Ebenso weiß das automatische Routing nicht, dass Sie eine Spur besser routen können, wenn Sie eine Komponente leicht nach links oder rechts verschieben. Mit diesen Werkzeugen erhalten Sie nur ein Design, das der Schaltung entspricht. Aber wenn es um die Leistung in der realen Welt geht, liegen die Dinge anders.
Beispielsweise:

  • Entkopplungskondensatoren sollten sich physisch in der Nähe des IC befinden.
  • Es sollten Schleifen mit der geringsten geschlossenen Fläche vorhanden sein.
  • Die Grundplatte sollte so fest wie möglich sein.
  • Es dürfen sich keine Störsignale in der Nähe Ihres Quarzoszillators usw. befinden.

Ihre Software respektiert diese Konzepte nicht, da diese in Ihrem Schaltplan nicht erwähnt werden. Sie werden erst wissen, wenn Sie die Leiterplatte hergestellt haben und sie nicht die ganze Zeit wie erwartet funktioniert. Ich sage nicht, dass es nicht funktionieren wird. Es könnte in 90% der Fälle funktionieren, aber Sie müssen auch diese 10% berücksichtigen.

Mein Vorschlag ist, dass Sie einige PCB-Designkonzepte erlernen und versuchen sollten, diese selbst zu platzieren und zu routen. Sie können Ihr Schaltplan- und Board-Layout jederzeit in Foren veröffentlichen und Experten geben Ihnen ihre Meinung / Vorschläge.

Whiskeyjack
quelle
5
+1 für den Regenwurm und die Kartoffel. Jedes Mal, wenn ich Auto Placer und Autorouter benutzte, hatte ich die kritischen Punkte erledigt und den einfachen Punkt belassen, aber auch das war zu viel, um zu fragen: 60% des Boards wurden nach dem letzten Durchgang platziert und geroutet. Es ist besser, alles selbst zu machen, außer vielleicht für Entwürfe mit großen Anforderungen und viel freiem Speicherplatz.
Herr Mystère
1
@Mister - Ja, du hast recht. Sogar ich benutze ab und zu Auto-Router, um mir ein Bild vom Routing zu machen, und beende die kritischen Abschnitte. Allerdings benutze ich Eagle in diesen Tagen und es hat keine Auto-Placer.
Whiskeyjack
1
Tippfehler in meinem Kommentar oben: "Für riesige LOW * -Anforderungsdesigns". Offensichtlich funktioniert eine digitale Hochfrequenzfrequenz beim Autorouting und beim Autoplacing nicht gut ...
Mister Mystère
1
Ich sehe keinen theoretischen Grund, warum ein Auto-Router beim automatischen Platzieren von Teilen nicht alle oben genannten Einschränkungen und Best Practices berücksichtigen konnte. Tatsächlich sollte ein idealer Auto-Router in der Lage sein, die optimale Position zu finden, die diese Ziele besser erfüllt als ein Mensch. Es ist ein schweres Problem, aber nicht unmöglich, und ich wette, dass wir bald Cloud-basierte Auto-Router mit Auto-Placern sehen werden, die selbst die besten Menschen schlagen können.
Bigjosh
1
@bigjosh - Dein Kommentar macht sehr viel Sinn. Bei der korrekten Weiterleitung und Platzierung gelten einige Richtlinien, die es Computern ermöglichen sollten, die Leistung eines Menschen zu übertreffen, wenn sie auf einfache Logik heruntergebrochen werden. Alles, was übrig bleibt, sind vielleicht Billionen von Berechnungen - die Überprüfung Tausender vollständig gerouteter Platinen und die Ermittlung der optimalen Lösung. Bei Cloud-basierten Systemen sollte dies nicht zu schwierig sein. Hoffen wir, dass bald ein Open-Source-Projekt startet, um dies zu verwirklichen. Es könnte in einer Weise besser sein als Menschen, dass Menschen nicht wirklich mehrere Iterationen machen, wenn sie eine funktionierende Lösung gefunden haben - zumindest nicht ich.
Whiskeyjack
13

Mein Router hat einen Platzierer und Unterstützung für "Räume". Damit können Sie Bereiche zeichnen und Teile aus dem Schaltplan "Räumen" zuordnen. Der Autoplacer gruppiert sie in dem Raum, dem das Teil zugewiesen ist. Ich bin mir ziemlich sicher, dass es Unterstützung für diesen Connector gibt. Es gibt auch ein Tool, das die automatische Entkopplungsplatzierung und Teileauswahl / -optimierung basierend auf Simulationsergebnissen durchführen kann. Es ist zwar nicht billig :) aber es funktioniert.

Der Autoplatzierer kann Ihnen ein wenig Zeit sparen, indem er alles so zusammenfügt. Aber ich bevorzuge immer noch das Cross-Probing des Schaltplans gegenüber dem Layout-in-Place-Modus.

Genau wie beim Auto-Router erfahren Sie, was Sie in Bezug auf Einschränkungen eingegeben haben und wie gut Sie es verwenden können. Wenn Sie nur versuchen, Ihren Auto-Router zu verwenden, ohne ihn richtig einzuschränken, wird er einfach überall hin geroutet. Bei ordnungsgemäßer Einrichtung werden damit große DDR-Abschnitte mit angepasster Länge korrekt geroutet. Bei viel größeren und dichteren Boards ist dies fast eine Notwendigkeit und sicherlich eine Voraussetzung für einen Layout-Service-Shop, der die Geschwindigkeit benötigt. Für jemanden, der nur ein paar kleine Bretter im Jahr macht, lohnen sich diese Dinge jedoch möglicherweise nicht.

Ein Hardware-Typ
quelle
4
Was ist Ihr CAD-Paket?
Herr Mystère
5
Die High-End-Version von Allegro, die Entkopplung von Sigrity, gehört jetzt der Trittfrequenz. Ich mag auch Pads. Der neue wegbasierte Auto-Router, der wie Handrouting aussehen soll, sieht interessant aus.
Einige Hardware Guy
Ich hatte eine Ahnung, dass dies Kadenz sein könnte. Ich habe es für eine Einführung in das IC-Design verwendet, es ist in der Tat ein ausgezeichnetes Paket, und ich glaube, dass sein Autorouter und Autoplacer nur dann effizient sein können, wenn die Einschränkungen richtig formuliert sind (was auf Erfahrung / Training hinausläuft).
Herr Mystère
Gut gesagt. Das Platzieren von Teilen und das Fräsen ist nicht unmöglich, es ist nur viel schwieriger und unübersichtlicher als das Erfassen von Schaltplänen. Erstens ist der Schaltplan weit von einer vollständigen Eingabe zum automatischen Platzieren von Teilen entfernt. Normale Leiterplattenpakete sind für die Verdrahtung und nicht für die automatische Platzierung ausgelegt.
Tomnexus
12

Eine Sache, die Sie nicht berücksichtigen, ist, dass ein Schaltplan nicht genügend Informationen enthält, um eine Platine richtig anzuordnen .

Grundsätzlich erfordert das PCB-Layout die Berücksichtigung und Anpassung von ein paar Dutzend Layoutanforderungen pro Teil , von denen keine im Schaltplan kodifiziert ist. Betrachten Sie nur die Bypass-Kondensatoren. Damit ein automatisiertes System den Überbrückungskondensator für jede Komponente ordnungsgemäß anordnet, müssen im Schaltplan einige zusätzliche Anweisungen enthalten sein, die dem Autorouter vorschreiben, dass die Spur zwischen den beiden Knoten eine bestimmte Länge unterschreiten muss.
Vermutlich benötigen Sie dann weitere Anweisungen, um die Priorität der Längenminimierung für verschiedene Netze zu kodieren , um Differentialpaare / kontrollierte Impedanz, Schutzspuren (falls erforderlich) usw. festzulegen.
Grundsätzlich gibt es eine Menge zusätzlicher Variablen, die die Platzierung steuern und die in schematischen / Ratsnest-Dokumenten normalerweise überhaupt nicht codiert sind.

Selbst wenn Sie davon ausgehen, dass Sie alle oben genannten Designbeschränkungen haben, ist der Platzbedarf für ein allgemeines Layout enorm . Dies entspricht dem Versuch, eine Gleichung mit Tausenden von Eingaben zu lösen, wobei jede Eingabe einen anderen, nichtlinearen Effekt auf alle anderen hat. Tatsächlich ist das Problem aus Brute-Force-Sicht völlig unlösbar. Jede Lösung muss daher einen heuristischen Mechanismus beinhalten, der seine eigenen Komplexitäten aufweist.


Realistisch ist der Hauptgrund, warum es nicht mindestens bessere Autorouter gibt, dass es einfach keinen Markt gibt. Der EDA-Markt ist im Vergleich zu vielen anderen Nischenmärkten für Spezialsoftware vergleichsweise klein, und selbst der beste Autorouter, der jemals existiert, wird einem realen Layout von einem tatsächlichen Menschen nicht einmal nahe kommen.

Wenn ich mich inmitten eines besonders langweiligen Layouts befinde, habe ich normalerweise einige Fantasien, meinen eigenen Autorouter zu entwerfen, indem ich etwas mit Vektorfeldern und simuliertem Tempern mache, aber selbst das würde sich nur einem lokalen Optimum nähern, anstatt einem allgemeinen optimalen Layout.

Connor Wolf
quelle
10

Von 1974 bis 1975 arbeitete ich in der Design Automation-Abteilung von Honeywell. Das Problem hat sich seitdem nicht geändert:

  1. Eine Optimierung ist rechnerisch nicht möglich. Wie die meisten globalen Optimierungsprobleme ist es NP-Complete, was bedeutet, dass die Komplexität der Berechnung furchtbar schnell zunimmt. Da Sie nicht Billionen Jahre (oder noch schlimmer) warten können, können wir die optimale Lösung für unmöglich halten.
  2. Dem Programm ist nicht klar, was Sie optimieren möchten. Logische Gruppierung nach Ihrem Modell der Schaltungsorganisation? Länge verfolgen? Board-Bereich? Parasitäre Kopplung? Ausbreitungsverzögerung? Wärmeableitung (max. Temperatur)? Wärmeableitung von leistungsstärkeren Abschnitten zu temperaturempfindlichen Bauteilen? HF-Aussendung? Lärm? Mechanische Eigenschaften (z. B. Platzieren von massiveren Bauteilen in der Nähe der mechanischen Halterungen. Servicemerkmale, wie z. B. nicht näher beieinander liegende Steckverbinder als menschliche Finger, können externe Einschränkungen wie die Position der Steckverbinder oder die Anpassung an den verfügbaren Raum bewältigen (keine Konflikte mit Koffer, Fans usw.)

Es gibt AI-basierte Ansätze, um mit solchen Problemen umzugehen. Irgendwann ist es für den Designer jedoch einfacher, einfach Dinge auszuprobieren und Feedback von der Software zu den Entwurfskriterien zu erhalten, an denen er interessiert ist. Wenn Sie AI-Software alles mitteilen, was Sie wissen, kann dies eine endlose, undankbare Aufgabe sein. Letztendlich muss die Software Sie, den Designer und Ihre Kompromisse befriedigen.

Dies funktioniert am besten, wenn Sie es als eine Zusammenarbeit zwischen Designer und Software betrachten, wobei der Designer die endgültigen Entscheidungen trifft. Die Software kann Informationen zu den Eigenschaften bereitstellen und Vorschläge zur Verbesserung einer Eigenschaft von Interesse sowie zur Ermittlung der Konsequenzen einer Änderung enthalten.

Aber ich gehe davon aus, dass wir niemals ein vollautomatisiertes Layout sehen werden - solange wir Menschen haben, die sich um das Ergebnis kümmern.

Bob Kerns
quelle
Soviel zur Singularität ...
Peter Mortensen
@PeterMortensen Nach der Singularität spielen menschliche Meinungen keine Rolle.
Spehro Pefhany
1
Ich denke Punkt 2 ist wirklich der einzig relevante Teil der Antwort. Es gibt viele Algorithmen, die sehr schnell NP-vollständige Probleme mit erheblichen Problemgrößen zu einem "ausreichenden" Grad mit sehr akzeptablen Zeitkosten lösen können, wobei diese häufig innerhalb von 2-3% des Optimums liegen.
Whatsisname
Das ist ein guter Punkt über "gut genug"! Um technisch völlig korrekt zu sein, sollten wir das Wort "lösen" (wie Sie) sorgfältig einordnen. Die Kosten für CPU und Speicher waren damals jedoch ein großes Problem. Aber obwohl die Problemgrößen gewachsen sind, ist unsere Rechenkapazität noch weiter gewachsen.
Bob Kerns
9

Meine Software hat einen Platzierer. Ich habe es einmal gemacht, um zu sehen, was passieren würde. Es raste durch das Board und brachte alle Komponenten auf. Wenn ich es mir ansah, waren Teile ÜBERALL. Der IC befand sich in einer Ecke und die Entkopplungskappe in der anderen. Der kritische Pfad ging im Zick-Zack auf der ganzen Linie vor und zurück.

Mein Punkt hier ist, dass die Platzierung der schwierigste Teil des Layouts ist, um es richtig zu machen. Erstens gibt es die mechanischen Einschränkungen. Der ME / Industriedesigner möchte, dass Ihr Stecker / Schalter / Poti / LED / jede andere externe Schnittstellenkomponente an einer bestimmten Stelle von der Platine kommt. Einige Komponenten sind möglicherweise zu hoch, um sich in bestimmten Bereichen des Gehäuses zu befinden. Es kann Teile des Stromkreises geben, die einen bestimmten Abstand zur Isolierung einhalten müssen.

Software kann so konfiguriert werden, dass sie mit einigen dieser Faktoren zurechtkommt. Sie kann jedoch niemals so gut funktionieren oder Probleme visuell so erkennen, wie es ein Mensch kann. In einer perfekten Welt sollte ein schneller Durchlauf des Autorouters in der Lage sein, das Layout fertigzustellen, wenn Sie die richtige Platzierung haben, die Stromversorgung, die Erdung und das Routing für kritische Pfade durchführen.

Matt Young
quelle
Ich mag diese Antwort, obwohl es immer noch zu einem gewissen Grad scheint, dass die Software nicht dem Job entspricht, den sie sein sollte.
Adam
6
@Adam Je mehr Erfahrung Sie sammeln, desto besser werden Sie verstehen. Der Platzierungsprozess ist unglaublich komplex und das Nest einer Ratte erzählt nur einen Teil der Geschichte. Nehmen Sie zum Beispiel Entkopplungskappen. Wie soll der Placer wissen, wo er diese ablegen soll? Soweit es sich handelt, können diese Kappen alle zusammen an einem beliebigen Ort platziert werden.
Matt Young
2
Entfernungsbeschränkungen scheinen dafür eine praktikable Option zu sein.
Tim Seguine
Wie heißt Ihre Software?
Daniele Testa
2

Ich habe schon früher Auto-Placer benutzt, und sie sind in der Tat so dumm wie ein Steinhaufen. Das einzige, wofür Sie sie gebrauchen können, ist ein Haufen Fußabdrücke zu entwirren, die alle an derselben Stelle in Ihr Board importiert wurden. alles andere ist einfach zu viel verlangt.

Dreiphasenaal
quelle