Hallo zusammen, Ich stehe des öfteren vor dem Problem, für eine Schaltung mit einem AVR eine Platine zu routen. Dabei gibts immer einige/viele Signale, die auf einen Port vom AVR gehen sollen, wobei rein hardware-mäßig recht egal ist welcher Port/welches Bit, weil ich das eh nachher in Software mache. Nun muss ich aber im Schaltplan natürlich schon mal Verbindungen schaffen, damit ich diese routen kann, um dann draufzukommen, dass anders besser gewesen wäre. Und dieses Spiel kann man recht oft iterieren... Momentan helfe ich mir, indem ich im Schaltplan TPs (Testpunkte) setze, einen für jeden in Frage kommenden Pin des AVR, und nochmal einen für jedes notwendige Signal. Im Routing versuch ich nun die TPs einander anzunähern, und wenn ich dann sehe welcher mit welchem am einfachsten zu verbinden wäre, ersetze ich die TPs im Schaltplan durch echte Verbindungen. Das ist aber irgendwie nicht ganz das Hellgelbe vom Ei.... Wie macht ihr das?
:
Verschoben durch User
Ich musste vor kurzem ca 40 Signale vom einem Display an einen Connector routen. Die Belegnung der Pins des Connectors war relativ egal (hatte nur immer wieder Masse Pins dazwischen), deswegen habe ich die Komponenten plaziert und dann angefangen die Leitungen zu ziehen. Damit sind alle schön als Bündel zusammen gekommen. Nebenbei habe ich die gerade geroutete Verbindung im Schaltplan eingetragen. Zum Schluss habe ich mir dann aus dem Schaltplan noch die Netzliste erzeugt und überprüft, ob alles richtig verdrahtet ist. Also nur die unveränderlichen Verbindungen im Schaltplan eintragen, routen und dann den Rest darauf angepasst routen und einzeichnen.
Nur so eine Idee: das Bauteil so erstellen, dass man "Pinswap" (heißt bei Eagle jedenfalls so) benutzen kann. Ich habe allerdings noch nicht damit gearbeitet und kenne auch nicht die genauen Möglichkeiten und Grenzen dieser Funktion. Gruß Dietrich
Pinswap ist leider nicht wirklich hilfreich: Das kann man verwenden, um z.B. einen Widerstand "umzudrehen", da beide Pins gleichwertig sind (oder die Eingänge eines NAND-Gatters etc.) Die Pins eines AVR sind aber nciht wirklich austauschbar, und das Lib-Teil ist auch nciht so definiert (aus gutem grund)
Michael Reinelt schrieb: > Die Pins eines AVR sind aber nciht wirklich austauschbar, und das > Lib-Teil ist auch nciht so definiert (aus gutem grund) Solche Pauschalsprüche sind leider wenig hilfreich, allenfalls bei strohdoofen Autoplacern und Autoroutern. Ob Pins vom µC im Layout getauscht werden können, hängt immer noch von der in der zugehörigen Software verwendeten Funktion ab.
Michael Reinelt schrieb: > Die Pins eines AVR sind aber nciht wirklich austauschbar, und das > Lib-Teil ist auch nciht so definiert (aus gutem grund) Aber auf der Steckerseite ist das egal, da kannst du tauschen. Einfach den swaplevel des connectors größer null und auf gleiche Zahl setzen und mit pinswap tauschen. Zur Routing Strategie würde ich vorschlagen die Leitungen vom Prozessor weg zu ziehen und als parallelen Bus bis zum Stecker zu routen. Dort dann mit Pinswap das ganze hin- und her tauschen und anschließend den Schaltplan nachführen. Da eagle kein push and shove kann und der follow me router das einfach wild in die Gegend legt ist das ein bisschen und zeit- nervenaufwendig, geht aber.
@Michael: Natürlich hängt es von der SW ab ob die Pins getauscht werden können. Aber davon kann das Lib-Part ja nix wissen. Und deshalb sin die Pins dort als "nicht austauschbar" konfiguriert (was ja erstmal so richtig ist) @all: ich hab mich undeutlich ausgedrückt: Es geht nicht (nur) um einen Stecker, sondern um Signale die von/zu anderen Komponenten gehen/kommen. Stecker ist ja einigermaßen easy, weil da hab ich ein Bauteil wo ich die Überkreuzungen auflösen muss.
Hallo, natürlich musst du selbst wissen, ob 2 Pins wirklich vertauschbar sind. Das ist nicht nur von der Bauteildefinition, sondern auch vom Einzelfall abhängig. z.B. interessiert es mich bei einem reinen Logikausgang wenig, ob die Ports verschieden hohe Ströme können, oder bei einem PLD gibt es Ein/Ausgänge, Nur-Eingänge und Nur-Ausgänge - da kann ich also zwischen I/O und Ionly tauschen, wenn ich einen Input brauche, sonst eben nicht. Ausserdem ist zu beachten, Dass ein Pintausch weitere erfordern kann, z.B. wenn man in einem TTL-Baustein auf ein anderes Gatter geht. In meinem System gibt es daher Gate Swap und Pin Swap. Dass in der Library Austauschregeln definiert sind, ist ein Hilfsangebot an den Layouter. Wenn man weiss was man tut, kann man sich z.B. einen Prozessor so definieren, dass alles mit allem tauschbar ist (naja, GND und VCC besser nicht). Gruss Reinhard
Ich mache das Vertauschen auch nur händisch. An der CPU stehen die Netz-Label und wenn ich sehe, daß Tracks über Kreuz sind, tausche ich die Label und "update pcb". Rückwärts (pcb -> sch) habe ich es noch nicht probiert. Peter
Also ehrlich, wenn man vor so viel geballtem "Wissen" nicht kapituliert ... Die Begründungen, warum an Pinswap einem Stecker sinnvoll ist, aber an einem AVR nicht, lassen einem ja die Haare zu Berge stehen. =:-o Solche Erklärungen an Hand vorhandener Librarys abzuleiten, ist schon sehr gewagt. Ich würde ja viel eher vermuten, dass der Ersteller der AVR-Libs sich dabei genau so wenig gedacht hat wie ein anderer bei einem SATA-Stecker, bei dem alle(!) Pins auf Swaplevel 1 gesetzt sind. Autsch! Swaplevel ersetzt nicht das selbständige Denken. @Peter Dannegger Pinswap im Board ist kein Problem, da sieht man auch direkt, welche Pins man tauschen will/muss. Aber den Schaltplan musst du hinterher trotz dem wieder "schön" machen. Grüße.
Michael L. schrieb: > Aber den Schaltplan musst du hinterher trotz dem > wieder "schön" machen. Egal ob man Forward Annotation, Back Annotation oder Handarbeit nimmt, in jedem Fall sollten am Ende Schaltplan und Leiterplatte wieder übereinstimmen, und zwar nachprüfbar. Es sei denn man mag keine Servicetechniker. Gruss Reinhard
Reinhard Kern schrieb: > Michael L. schrieb: >> Aber den Schaltplan musst du hinterher trotz dem >> wieder "schön" machen. > > Egal ob man Forward Annotation, Back Annotation oder Handarbeit nimmt, > in jedem Fall sollten am Ende Schaltplan und Leiterplatte wieder > übereinstimmen, und zwar nachprüfbar. Irgendwie hast du das mit dem "schön" machen nicht verstanden! Das bei Änderungen Schaltplan und Board konsistent bleiben, setze ich voraus. Aber nach ein paar Pinswap sieht der Schaltplan eher aus wie "Kraut und Rüben", d.h. man muss die Verbindungen wieder ausrichten. :-/
Michael L. schrieb: > Aber nach ein paar Pinswap sieht der Schaltplan eher aus wie "Kraut und > Rüben" Ja, leider gibt es für Schaltpläne noch keinen Autorouter... Gruss Reinhard
Michael L. schrieb: > Aber nach ein paar Pinswap sieht der Schaltplan eher aus wie "Kraut und > Rüben", d.h. man muss die Verbindungen wieder ausrichten. Deswegen mache ich das anders: Im Schaltplan die Änderungen rein und dann Forward annotation - zeichnen muss ich sowieso nochmal dann lieber gleich. Ist aber eben auch Philiosophie. Grüße
6A66 schrieb: > Michael L. schrieb: >> Aber nach ein paar Pinswap sieht der Schaltplan eher aus wie "Kraut und >> Rüben", d.h. man muss die Verbindungen wieder ausrichten. > > Deswegen mache ich das anders: Im Schaltplan die Änderungen rein und > dann Forward annotation - zeichnen muss ich sowieso nochmal dann lieber > gleich. Ist aber eben auch Philiosophie. > > Grüße Klar, geht genau so. Problem ist nur, u.U. mühsam geroutete Leiterbahnen zu verlieren, wenn man im Schaltplan die Leitungen auftrennt, und neu verdrahtet, ggf. auch bei Gate- oder Pinswap. Grüße.
Michael L. schrieb: > Problem ist nur, u.U. mühsam geroutete Leiterbahnen > zu verlieren Eben, da mangelt es den CAD-Systemen noch an der nötigen Intelligenz, meistens wird die gesamte geroutete Leiterbahn aufgelöst. Meistens könnte man aber den grössten Teil lassen wie er ist und nur die letzten mm ändern (wegen denen man ja das Swapping macht). Das mache ich dann lieber im PCB rein manuell, da kann ich selbst bestimmen, was geunrouted (schrecklich) wird und was nicht. Gruss Reinhard
Michael L. schrieb: > Klar, geht genau so. Problem ist nur, u.U. mühsam geroutete Leiterbahnen > zu verlieren, wenn man im Schaltplan die Leitungen auftrennt, und neu > verdrahtet, ggf. auch bei Gate- oder Pinswap. Vernünftige Programme löschen aber nicht den kompletten Leiterzug bei einer Forward Annotation. Außerdem kann man das leicht umgehen indem man die letzten mm zum Padanschluss offen lässt. Wenn ein Layout system eine solche Leitung dann auch löscht gehört ihm die Berechtigung, sich Layoutsystem zu nennen, entzogen.
Reinhard Kern schrieb: > Eben, da mangelt es den CAD-Systemen noch an der nötigen Intelligenz, > meistens wird die gesamte geroutete Leiterbahn aufgelöst. AD10 kann's, weswegen ich mich auch für die Strategie entscheiden habe. Der zeigt dann per online DRC an wo die Netze kollidieren und da kann man dann einhaken. Schön wird's dann erst wenn man in bestehende Netze noch was reinfrickeln muss (z.B. einen Schalttransistor als Inverter), dann einfach rein in den Schaltplan, man sieht dann schon was noch mal neu gemacht werden muss (bleibt halt alles drin was schon mal gemacht wurde). Ist bei Änderungen am Layout absolut umproblematisch. rgds
Ich arbeite seit ca. 10 Jahren mit EAGLE und ich benenne die Signale z.B. AVR Port A PA1= Start. Geht in EAGLE ganz einfach mit "Name" und dann mit "Label" auf den Singallayer setzen. Und ich hab beim Schaltplan zeichnen immer den den Beleungsplan des AVR dabei, so kann ich die Signale beim routen besser sortieren. Und ich hab schon beim Schaltplan zeichnen ein Layout im Kopf.
Ralf Ihle schrieb: > Und ich hab schon beim Schaltplan zeichnen ein Layout im Kopf. Wie unmodern. Der heutige Mensch weiss ja keine einzige Adresse oder Telefonnummer mehr, dafür hat man seine elektronischen Assistenten, und Layouternachwuchs wird von vielen Firmen gar nicht mehr ausgebildet oder eingestellt, weil sie fest daran glauben, dass Autoplazierer, Autorouter und Codegeneratoren in Zukunft alles von selbst konstruieren. Bei den grösseren CAD-Systemen wird Nachdenken längst durch Constraint Managment ersetzt, das kommt irgendwann auch bei Eagle und Konsorten. Gruss Reinhard
@ Reinhard Kern (Firma: RK elektronik GmbH) (rk-elektronik) >> Und ich hab schon beim Schaltplan zeichnen ein Layout im Kopf. >Wie unmodern. Der heutige Mensch weiss ja keine einzige Adresse oder >Telefonnummer mehr, dafür hat man seine elektronischen Assistenten, Wenn gleich mir die feine Ironie nicht entgangen ist, haben ICH beim Schaltplanzeichen KEINERLEI Layout im Kopf. Warum auch? Es ist der SCHALTPLAN! Der stellt die logisch/elektrischen Zusammenhänge dar, NICHT die geometrischen! Das kommt im Layout und hat mit dem Schaltplan sehr wenig zu tun. Bestenfalls Pinswap, Gate swap und ein paar eingefügte Lötbrücken.
Falk Brunner schrieb: > Wenn gleich mir die feine Ironie nicht entgangen ist, haben ICH beim > > Schaltplanzeichen KEINERLEI Layout im Kopf. Warum auch? Es ist der > > SCHALTPLAN! So sehe ich das auch. Wenn ich einen Schsaltplan zeichne ist dort in erster Linie wichtig mit möglichst wenig Aufwand die Funktion der Schaltung nachvollziehen zu können. In diesem Sinne kann es hilfreich sein, einzelne, wichtige Netze mit Namen zu versehen. Bei Spannungsversorgungen mache ich dies z.B. generell, mit dem Zusatz der Stromstärke, sodaß man im Layout entsprechende Kupferbreiten vorsehen kann. Keinesfalls jedoch benenne ich jedes kleine Netz, denn das wiederum würde zum einen eine Menge unnötige Arbeit bedeuten und zum anderen das Ergebnis eher unübersichtlicher machen. Das Layout steht und fällt imho mit der Bauteilplatzierung. Wenn man die geschickt anstellt kann man sich beim Routen jede Menge Arbeit sparen. Allerdings kann man es sich auch vollkommen erschweren, bis zur Unmöglichkeit wenn man diesen Part versaut. Pinswap oder Partswap mache ich jedoch auch ausschließlich in Forwardannotation. Ich sehe, daß der Tausch sinnvoll ist, erledige das im Schaltplan und bringe die Änderung danach ins Layout.
Christian B. schrieb: > Das Layout steht und fällt imho mit der Bauteilplatzierung. Wenn man die > geschickt anstellt kann man sich beim Routen jede Menge Arbeit sparen. > Allerdings kann man es sich auch vollkommen erschweren, bis zur > Unmöglichkeit wenn man diesen Part versaut. Affirmative! Deswegen haben ich zum Layout den Schaltplan neben mir liegen - aber nicht umgekehrt. Reinhard Kern schrieb: > Bei den grösseren CAD-Systemen wird Nachdenken längst durch Constraint > Managment ersetzt, das kommt irgendwann auch bei Eagle und Konsorten. Constraint management hilft viel, aber das intelligente Nachdenken kann es nicht ersetzen. Zumindest die günstigeren Pakete leben davon, dass für ein VERNÜNFTIGES Layout der User da selbst etwas reinsteckt. Klar - auf einer Europakarte kriegt jeder Placer und Router eine Schaltung mit 10 Bauteilen unter. Je kleiner dei Bauteile werden, der Platz wird, je weniger Sigbnallagen und bei doppelseiteiger Bestückung wird's langsam haarig. Das was ich bisher an "Bitte mal drüberscheuen - Layouts gesehen habe" ist (recht) trivial gewesen. Grüße
6A66 schrieb: > Constraint management hilft viel, aber das intelligente Nachdenken kann > es nicht ersetzen. Ich finde vor allem dass es in vielen Fällen zu aufwändig ist, jedenfalls für mich persönlich: ich weiss, was bei einer CLK-Leitung zu beachten ist und auch dass Datenbusleitungen gleich lang sein sollen - das aber alles als Constraint einzugeben mit maximaler Längendifferenz, minimaler und maximaler Signalverzögerung, maximalem Übersprechen usw. usw. ist elendig viel Arbeit für etwas, was ich (bis jetzt jedenfalls noch) im Kopf habe. Als sinnvoll sehe ich das an, wenn mehrere Personen an einem Projekt arbeiten - aber viel Arbeit bleibt es trotzdem. Wenn meine Layouts nicht mehr funktionieren, weil ich sowas übersehen habe, überdenke ich das neu, aber bisher gab es keine Beanstandungen. Ausserdem ist ein Mensch, der einen Datenbus erkennt und als solchen gebündelt verlegt immer noch besser als ein Autorouter mit Tausenden Constraints. Gruss Reinhard
Wenn sich der Router die Position der Pins aussuchen darf, dann ist das schon Autoplacement. Sowas kann wohl Bartels AutoEngineer - kenne ich nicht, und liegt wahrscheinlich auch deutlich ausserhalb meiner Preisliga. Eagle kann es definitiv nicht. So ein Automatismus ist natürlich auch gefährlich. Ich baue noch schnell einen neuen Testpunkt in den Schaltplan, schmeisse den Autorouter an und klammheimlich werden zwei Pins ausgetauscht. Und ich merke nichts und vergesse die Anpassung der Firmware. da wäre es natürlich schon, wenn der Autorouter auch eine passende *.inc-Datei erzeugen könnte, in der die aktuellen Pinzuordnungen vermerkt sind...und das ganze noch die Versionierung angebunden. Ich brauche dann ja eventuell unterschiedliche Firmwareausprägungen für verschiedene Board-Versionen... Ich verwende Eagle, das reicht für mich aus. Meine "Routing-Strategie" heisst "zwei Layer". Die Bauteile platziere ich erstmal mit eiwas großzügigem Abstand zueinander. Wenn ich dann feststelle, dass der Autorouter aufgrund suboptimaler Pinzuordnung Kreuzungen einbauen muss, wechsele ich die Pins. Wenn Kreuzungen (und somit auch die Vias) wegfallen, gewinne ich Platz auf der Platine und kann anfangen, die Bauteile näher zusammenzurücken. Eventuell kommt es nachher sogar soweit, dass ich den Top-Layer deaktivieren kann und sogar mit einer einseitigen Platine auskomme. Viele Grüße, Klaus
Klaus Stock schrieb: > Position der Pins aussuchen darf, dann ist das > schon Autoplacement Hmmmm? Ich dachte immer (seit 20 Jahren), dass autoplacement etwas mit Platzieren (engl.: to place) der Bauteile auf dem PCB zu tun hat? Klaus Stock schrieb: > schmeisse den Autorouter an und > klammheimlich werden zwei Pins ausgetauscht. Das dachte ich ist "Pinswap"? Klaus Stock schrieb: > da wäre es natürlich schon, wenn > der Autorouter auch eine passende *.inc-Datei erzeugen könnte, AD10 erzeugt dazu eine ECR-Liste (Engineering Change Request) die man dann prüfen und anstoßen kann, auch im backward annotation Prozess. Wenn der Autorouter also irgend was tut sollte das auch wieder im Schematic landen. Best case also mit Information an die Person die vorm Schirm sitzt. Alles andere ist vom Entwicklungsprozess her sehr bedenklich - da gebe ich Dir recht. BTW: ich bin kein FAN irgeneines Systems, höchstens dessen das den nominellen Entwicklungsprozess am besten und maximal fehlervermeindend umsetzt. rgds
6A66 schrieb: > Klaus Stock schrieb: >> Position der Pins aussuchen darf, dann ist das >> schon Autoplacement > > Hmmmm? > Ich dachte immer (seit 20 Jahren), dass autoplacement etwas mit > Platzieren (engl.: to place) der Bauteile auf dem PCB zu tun hat? Korrekt. Aber die Aufgabe, herauszufinden, wo welches Signal am besten am IC ankommen soll, fällt ebenfalls in diesen Bereich. Die hier notwendige "Intelligenz" hat nichts mehr mit den Routingalgorithmen gemein, sondern hier sind Platzierungsalgorithmen am Werk. Selbstverständlich ist es weniger aufwändig, zu einem Pool vorhandener Pinpositionen eine Reihe an gewünschten Signalen zuzuordnen (je ein Signal wird an einer Pinposition platziert), als sämtliche Bauteile zu platzieren. Aber mit einem einfachen Ausprobieren ist es auch nicht getan, dafür gibt es zu viele Kombinationsmöglichkeiten (abgesehen von simplen Problemen mit wenigen Pins, klar - aber die kann ich auch sehr einfach von Hand regeln). Schon bei acht Pins, bei denen sich die Software die Signale selbst aussuchen darf, gibt es schon über 40.000 Kombinationsmöglichkeiten. Damit scheidet "alles ausprobieren und nachschauen, wo das beste Routingergebnis rauskommt" aus. Ich nehme an, dass die aktuellen Autoplacer heuristisch arbeiten. Die Freiheitsgrade werden durch Regeln signifikant reduziert. Da die Regeln fallspezifisch zu erfassen sind, ergibt sich ein recht hoher manueller Aufwand. Hier das "optimale Ergebnis auf einen Knopfdruck" zu erreichen, ist noch weiter entfernt als beim Autorouter. Es gibt natürlich auch simplere Ansätze, wo tatsächlich der Autorouter ein schon platziertes Bauteil zur Seite schieben kann, wenn noch ein Signal vorbeigeführt werden soll oder Platinenplatz verschwendet würde. Keine Ahnung, ob das tatsächlich irgendwo so angewandt wird. Aber dieser Router-zentrische Ansatz taugt nichts für den "automatischen Pinswap". Aber ich denke, dass hier in der Diskussion jetzt munter Groß- und Kleinprojekte durcheinandergeworfen werden - und ich lasse mich jetzt auch noch auf Diskussionen ein, in welche Kategorie Algorithmen für einen "automatische Pinswap" fallen. Das wollte Michael Reinelt bestimmt nicht wissen :-) - Klaus
Ach ja, "Sonderfall" Altium: hier ist Pinswap ein separater Prozess. Altium nennt es weder Router noch Placer, sondern Optimizer. - Klaus
Ich weiß nicht, ob ich altmodisch oder vielleicht einfach nur dumm bin, aber ich habe noch nie einen Automatismus beim Platzieren oder routen verwendet (von Push and Shove, Online DRC u.a. Unterstüzungsprozessen mal abgesehen). Bisher hat diese Strategie selbst dichteste Platzierungen mit geringstmöglichem Lagenverbrauch zustandegebracht. Ich kann mir nicht vorstellen, daß ein Autorouter ähnlich komplexe Aufgaben lösen kann. Bei einfachsten Platinen ist hingegen der Aufwand, den Autoplacer / Router so einzustellen, daß etwas sinnvolles dabei herauskommt, jedenfalls in meiner Vorstellung, ebenso groß wie der, das gleich von Hand zu erledigen. Ok, ich muss zugeben, daß ich für mein Leben gern Layouts erstelle, evtl blockiert mich diese Vorliebe auch etwas in der Objektivität. Gestützt wird die Meinung von Personen, die schon seit 25 Jahren Layouts erstellen. Somit bin ich noch nie ernsthaft auf den Gedanken gekommen dies anzuzweifeln. Natürlich sollte man sich aber Manche Verfahren der Autorouter anschauen, so nutze ich auch bei Mehrlagigen Platinen die Lagen so, daß ich die Signale in einer Vorzugsrichtung erstelle. Dadurch kann man, gerade bei der Mitwirkung von Bussen, sehr viel dichter arbeiten als wenn man Leitungen kreuz und Quer zieht. Dadurch verbaut man sich dann regelmäßig den Weg. Natürlich benötigt dieses Verfahren mehr Via's pro Signal, ist somit nicht immer ideal / anwendbar. Gerade bei differential Pairs sollte man so wenig wie möglich Lagenwechsel im Signalverlauf haben. Da muss man dann eben "improvisieren". Und dann gibts da noch das Damoklesschwert der EMV... Die zu beherrschen ist, besonders wenn nicht nur eine Platine beteiligt ist, mit zunehmnender Komplexität auch immer mehr ein Stück "schwarze Kunst". Allerdings ist klar, daß es einige Zeit und viele Platinen braucht um einen "Blick fürs Layout" zu bekommen. Layouten ist halt nix, was man sofort kann, aber man muss schon Vorraussetzungen mitbringen. So sieht man dann eben bei der Platzierung schon, wie man bestmöglich Platz sparen kann. Daß kann auch dazu führen, daß man z.B. Bauteilgehäuse austauscht, weil man sieht, daß man in einer anderen Gehäuseform mit weniger Aufwand das gleiche erreichen kann.
Klaus Stock schrieb: > Die hier > notwendige "Intelligenz" hat nichts mehr mit den Routingalgorithmen > gemein, sondern hier sind Platzierungsalgorithmen am Werk. Klaus Stock schrieb: > weder Router noch Placer, sondern Optimizer. Hallo Klaus, einigen wir uns: das ist philosophisch :) Klaus Stock schrieb: > Aber ich denke, dass hier in der Diskussion jetzt munter Groß- und > Kleinprojekte durcheinandergeworfen werden - und ich lasse mich jetzt > auch noch auf Diskussionen ein, in welche Kategorie Algorithmen für > einen "automatische Pinswap" fallen. Das wollte Michael Reinelt bestimmt > nicht wissen :-) Gut, das ist richtig. Warum erzähle ich trotzdem etwas? Nicht damit der TO AD10 kauft - auch ich würde das für Bastelei NIE tun. Damit aber alle die hier mitlesen vielleicht über den Tellerrand sehen können, was es gibt, warum und wieso ... Und da denke ich sind neben Bastlern auch Profis dabei - im Fachjargon: gegenseitige Befruchtung :) Hallo Christian, Christian B. schrieb: > Ich weiß nicht, ob ich altmodisch oder vielleicht einfach nur dumm bin, > aber ich habe noch nie einen Automatismus beim Platzieren oder routen > verwendet Ich mache jetzt schon Jahre kommerziell Layouts , mit einer langen Unterbrechung dazwischen. Und auf verschiedenen Systemen. Früher mal mit Cadstar. Da war der Bartes so gepriesen. Da haben wir mal dem PCB Dienstleister mein letztes Layout gegebn damit er das durch den Bartels durchschiebt. Was rauskam? ich habs in THT ganz ohne VIas auf nem 4 Lager gemacht, der Bartels hat nen Haufen Vias in 6 lagen geroutet. Klar habe ich meinen Zeit gebraucht. Aber eiens habe ich gelernt: Der Autorouter mag zwar schneller gehen (Kostenersparnis in der Entwicklung) aber das Ergebnis für die Serie wird sehr wahrscheinlich (Bitte keine Schläge, ja es mag au8ch Gegenbeispiele geben) manuell besser sein. Ist für mich halt ein Tradeoff: Schnelligkeit für die Entwicklung (für ein geringe Stückzahl) oder Kostenoptimiert für eine hohe Serienstückzahl in manuellere Technik. Ich für meinen Teil bleibe bei manueller Arbeit (auch weil ich bisher kein AD10 Autorouter Lauf mit halbwegs vernünftigem Ergebis gesehen habe - auch hier: Ich stelle gerne eine Umgebung mit Board_outline und Placement zur Verfügung für jemandem der mir gerne das Gegenteil beweisen will). Pinswap: JA! Gateswap: JA - aber auch bitte manuell gesteuert. Dann kann ich beim Layout vermeiden dass ich eine Leitung so legen muss dass sie mir eine richtige Sperre legt. Aber erst jetzt beim AD10 geht das vernünftig forward und backward zu annotieren. Früher wars PITA. Autoplacement: Das ist nur was wo es etwas bringt, bei mir hat's noch nie was gebracht. Bei hochgradigen Arrays vielleicht, ja? Aber das letzte Layout das ich gemacht habe hat 32 möglichst identische analoge Funktionsblöcke erfordert. Das habe ich ohne autoplacement gemacht und platziert war in etwa 1h - etwa 600 Bauteile. Gewusst wie. Gut, was ist für denn Bastler dabei? Wer Platz hat und einen vernünftigen Autorouter hat der möge Ihn gebrauchen. Aber bitte Hirn einschalten und Ergebnis nachkontrollieren und Rahmenbedingungen so einstellen dass das Ergebnis auch fertigbar ist. Ansonsten lieber hinsetzen, Hirn einschalten und Layout manuell machen. Die Basteleien die ich bisher gesehen habe sind in maximal 8h manuell geroutet - mit gutem bis sehr gutem Ergebnis. Und die geliche Zeit stecke ich in einen vernünftigen sauberen Schaltplan auch rein (50% Schematic, 50% Layout). Pinswap und Gateswap helfen - aber nur wenn sie vernünftig mit dem Schematic zusammenarbeiten ansonsten ist die Gefahr für verlorengegangene Änderungen zu groß. Die Hilfe dieser beiden Werkzeuge halte ich im Bastelbereich aber für sehr überschaubar - wenn nicht sogar der Aufwand (Bauteile müssen entsprechend konfiguriert sein, forward/backward annotation, ...) den Nutzen überschreitet. Autoplacement: Forget it. Dann lieber ein Paket das manuelles Layout SUUUPEER unterstützt, das durchgängig den Prozess SAUBER unterstützt und keine Fehler erlaubt als eine Krücke mit vielen Automatismen. rgds
6A66 schrieb: > Dann lieber ein Paket das manuelles Layout SUUUPEER unterstützt, das > durchgängig den Prozess SAUBER unterstützt und keine Fehler erlaubt als > eine Krücke mit vielen Automatismen. > > rgds So sehe ich das auch. Bisher hat sich beim AD10 der für mich sinnvollere Workflow als mit Eagle ergeben, ähnlich zum Mentor Pads. Es gibt freilich Unterschiede zwischen beiden, und das nicht nunr im Preis, auch funktional die sind aber eher gering
6A66 schrieb: >> schmeisse den Autorouter an und >> klammheimlich werden zwei Pins ausgetauscht. > > Das dachte ich ist "Pinswap"? Ja, wäre es auch bei Bartels, und funktioniert durchaus. Ein Problem hätte BAE nicht, was man hier bei Eagle hat: dort wird jedes Bauteil aus der Bibliothek automatisch ins Projekt kopiert, man könnte also dem (in der Bibliothek nicht pin-swappenden) Controller nachträglich zu einem (partiellen) Pinswap verhelfen. Aber: die nachher notwendige Backannotation ändert zwar im Schaltplan die Nummern der Pins, aber sie kann natürlich nicht das Schaltplansymbol selbst ändern. Man hätte dann also an bspw. dem Anschluss mit dem Symbolnamen "PA5" eine völlig andere Pinnummer dranstehen ... Man müsste also am Ende auch das Schaltplansymbol nochmal mit der tatsächlichen Pin-Nummerierung in Übereinklang bringen. Trotzdem hat die Idee natürlich durchaus was, dass man einen Teil der Portpins eines Controllers im Allgemeinen problemlos beliebig beim Layouten austauschen könnte.
Jörg Wunsch schrieb: > Trotzdem hat die Idee natürlich durchaus was, dass man einen Teil der > Portpins eines Controllers im Allgemeinen problemlos beliebig beim > Layouten austauschen könnte. Es gibt da Systeme - ich nenne jetzt keine Namen mehr um nicht in den Verdacht der Webung zu kommen - da definierst Du bei jedem Bauteil was wie geswapped werden kann. Z.B. sind die Eingänge eines NANDs die Gruppe1, die Gates eines 74xx00 dann Gruppe2. Im Layout kann man dan sagen welche Swap-Gruppen enabled sind. Und manuell kann ich dann sagen, Tausche Pin x mit Pin y. Das System macht dann entweder einen Pinswap (Gruppe1) oder einen Gateswap (Gruppe2). Und dann bachward annotiert und alles passt noch. So stelle ich mir den Prozess vor und so geht er. Heißt aber: die Bauteile müssen entsprechend definiert sein (Aufwand!) Ansosnten ist es vielleicht einfacher den Schaltplan umzuverdrahten und forward zu annotieren (kommt beides bei mir vor). Jörg Wunsch schrieb: > Man > hätte dann also an bspw. dem Anschluss mit dem Symbolnamen "PA5" eine > völlig andere Pinnummer dranstehen ... An einem Controller mit festem Schaltplansymbol im Layout die Pins zu swappen und dann rückwärts zu vermuten das Schaltplansymbol würde sich ändern ist Käse - da hast Du recht. Entweder bei der Backannotation kommt dann ein Fehler raus (Netz ist an falschen Pin angebunden) da nicht auflösbar - oder der letzte Wireteil wird automatsich (z.B. Diagonal) umverlegt (finde ich auch Käse). Aus diesem Grund denke ich ist hier forward annotation besser da zuverlässiger. rgds
6A66 schrieb: > Es gibt da Systeme - ich nenne jetzt keine Namen mehr um nicht in den > Verdacht der Webung zu kommen - da definierst Du bei jedem Bauteil was > wie geswapped werden kann. Z.B. sind die Eingänge eines NANDs die > Gruppe1, die Gates eines 74xx00 dann Gruppe2. Ich hätte gedacht, dass Leute, die AD10 nutzen, an Stelle von TTL-Gräbern direkt FPGAs verwenden...und daraufhin ist der AD10-Optimizer auch ausgelegt. ;-) Ich verwende Eagle. Das erste "E" steht für "Easy", nicht für "Effizient". Ich nutze den Autorouter weil das manuelle (bzw. follow-me) Routing in Eagle mehr Frust als Freude bereitet (zum Vergleich: Altium wirbt damit, dass bei ihnen manuelles Routing Spaß bereitet!). Also gehe ich hin und versuche den Autorouter zu "überlisten". Das ist fast wie bei einem Strategiespiel/Aufbauspiel. Problem: ich muss das Ergebnis jedesmal manuell überprüfen. Und braucht mehr Aufmerksamkeit, als wenn ich den ganzen Prozess direkt manuell richtig mache. Immerhin: ich fühle mich wie ein echter Gewinner, wenn der Autorouter dann irgendwann besiegt ist und alles richtig macht. Bis zur nächsten Bauteiländerung, dann explodiert wieder alles... Okay: ich habe als Kind mit Lötstreifenplatinen gearbeitet (wie Lochrasterplatinen, aber mit durchgehenden parallelen Leiterbahnen, mit einem Messer oder Bohrer leicht zu unterbrechen). Das entsprach doppelseitigem Routing mit strikter Vorzugsrichtung (Querverbindungen per Drahtbrücke, quer zur Richtung der Lötstreifen). Da habe ich schon die Erfahrungen gesammelt, wie man Bauteile nahezu optimal platziert. Das ist etwas anderes als bei der Wirewrap-Fraktion: dort werden oft die Bauteile in einer sauberen Reihe platziert, dann greift man nach dem Verdrahtungswerkzeug, und dann bricht die Hölle los. Und wer glaubt, dass ein Autorouter bei so einem Ansatz noch was retten kann, dürfte ziemlich enttäuscht werden. Zurück zum Thema: Die Antwort auf die Frage nach "meiner Routing-Strategie" ist sehr schwammig. Es geht schon mit der Platzierung los. Durch Erfahrung kann ich (hoffentlich) nahe am Optimum bewegen. Meine Erfahrung (man könnte es auch als" erlernten Instinkt" bezeichnen) in Worte oder gar konkrete Handlungsanweisungen zu packen ist sehr schwierig. Wenn man das könnte, konnte man Heuristiken entwickeln, mit denen man wirklich brauchbare Autoplacer und -router entwickeln könnte. Hat man bisher noch nicht geschafft. Liegt also nicht nur an mir ;-) - Klaus
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.