 Mein Name ist Casper und ich rede mit euch über das Design von PCBs mit Code. Ein bisschen über mich. Ich bin ein Freelancer elektronischer Ingenieur. Ich liebe es, Code zu schreiben und das besondere Open Source Code. Und Leute auf allen überall zu sehen, inspiriert mich. Ich sagte, ich liebe Elektronik und ich liebe Code. Aber ich mag eigentlich Elektronik nicht gerne entwerfen. Ich werde von den Design Tools sehr schnell frustriert. Das hier ist etwa wie du typischerweise eine Leiterplatte erwürst. Du hast deine Schematik auf einer Seite, wo du deine Komponenten und ihre Verbindungen spezifizierst und dann hast du einen Tool, wo du die platzierst und die Verbindungen auslegst. Wenn du die digitale Hardware Designs, etwas, das einem FPGA laufen soll, dann kannst du auch eine schematische Darstellung machen, aber es gibt auch Hardware Beschreibungsstrachen und das ist, wie wir heutzutage digitale Schaltkreise entwerfen. Weil schematische Darstellungen für diese Art von Aufgaben sehr schnell, sehr verwirrend wird. Es ist sehr verwirrend. Also benutzen wir Code um logische Schaltkreise zu beschreiben. Das ist viel einfacher, die Komplexität zu handhaben. Die werden als Hardware Beschreibungssprachen bezeichnet. Das hier ist VeryLog. Wenn man Schaltbilder entwirft, mit Komponenten, mit hohen, vielen Pin-Zahlen wie FPGAs, dann gibt es sehr viele Labels und das springt alles hin und her und es ist sehr schwierig zu verfolgen, wohin die Verbindungen aller gehen. Es gibt hunderte Verbindungen. Das ist die Motivation hinter der Untersuchung, den Raum zu untersuchen, wie man mit Codeschaltungen beschreiben kann. Können wir Hardware Beschreibungssprachen für Analog-Schaltkreise verwenden? Es gibt tatsächlich Analog- und Mix-Signal-Erweiterung zu Hardware Beschreibungssprachen. VeryLog A ist von 1993 und es gibt VeryLog AMS für Analog- und Gemischtesignale von 2000. Es gibt auch Analog- und Mix-Signal-Erweiterung für VHDL, die andere, die ich in seinem Paper von 1999 gefunden habe, aber dafür habe ich keinerlei Implementierung gefunden. Der Fokus davon, von der Simulation und der Bestätigung davon, liegt auf dem Eintragen der Schematik. Und man muss eine Menge Details wissen über was ich und wir wollen, ist etwas, wie man die Schematik eintragen kann, um Netzwerke zu erstellen und den Analog-Schaltkreis zu simulieren. Ich habe das hier gefunden. Das ist eine Beschreibungs-Software für PCBs. Es hat eine relativ klare Syntax für die Beschreibung und auch mehrere erweiterte Features. Und man kann mehrere Verbindungen in Parallel beschreiben und das hier ist eine neue Sprache. Sie hat ihre Vor- und Nachteile. Sie hat eine klare Syntax. Sie besitzt einen Compiler in Java und unterstützt verschiedene Design-Tools wie Eagle. Es hat einen Eclipse-Plugin, das ich leider noch nicht ausprobieren konnte. Das Nächste ist Giddle. Es ist in Pfeifen. Selbst wenn man mit Pfeifen vertraut ist, kann man etwas verwirrt werden, wenn man versucht den Code zu lesen. Es ist ein anderes Pfeifen-Modul. Es ist eine eingebundene Sprache in Pfeifen, die es ermöglicht, Schaltkreise zu beschreiben. Sie ist sehr im Fluss gerade und in Entwicklung. Hier sieht man ein Beispiel, wie ein Schaltkreis definiert wird. Sie hat ein paar interessante Features. Eine davon ist, die Komponenten in einzelne Subfunktionen zu unterteilen. Und die kann desweiteren auch die Footprints definieren und beschreiben. Die drei im Vergleich. Auf der Pro-Seite kann man Schaltteile einmal definieren und immer wieder benutzen. Man kann Schleifen benutzen und andere Features, die das Design vereinfachen. Auf der negativen Seite ist es schwer, sich vorzustellen, wie das dann hinterher aussieht. Die Definition aufzustellen, kann relativ aufwendig sein, und es kann sehr schwer sein, die entstehenentschaltungen zu debacken. Zum Visualisierung. Auch wenn ich es sehr anstrengend, und finde Schaltkreise zu zeichnen, lese ich sie sehr gerne. Ich habe ein bisschen damit experimentiert, Visualisierung zu einigen dieser Sprachen hinzuzufügen. Das hier ist eine Grafis-Darstellung, basiert auf Grafis. Das hier ist eine Grafis-Darstellung, basiert auf Grafis. Wenn ihr Grafis nicht kennt, das ist ein hilfreiches Programm, um Grafen darzustellen. Ich habe versucht, das so ähnlich aussehen zu lassen, wie ein Schaltplan. Offensichtlich ist es keiner, aber es hat ein paar Ähnlichkeiten. Wir haben noch nicht versucht, das jetzt zu skalieren. In PyCircuit hat bereits ein Grafis-Output, was der ursprüngliche Entwickler schon geschrieben hat. Das sieht so aus, wenn man in PyCircuit auch Layout machen kann. Es gibt da eine erste Implementierung eines interaktiven Viewers, in dem man Knoten im Grafen klicken kann. Das Programm zeigt dann, was in dem Layout passiert. Vor kurzem habe ich dieses Protokoll Netlist SVG gefunden, das den JOSES Output nimmt. Es schreibt eigentlich ganz gute Schaltpläne. Ich war relativ beeindruckt davon, womit es produziert ist. Ich benutze jetzt klar, das ist der Eclipse-Layout-Körner. Das ist ähnlich zu dem, wie Grafis-Grafen layoutet. Ich habe damit experimentiert, auch für Analoge und gemischt signalisch Schaltpläne zu benutzen. Das hier sind ein paar Körner, die ich in diesem Video gemacht habe. Ich habe auch ein paar Körner, die ich in diesem Video gemacht habe. Das hier sind ein paar Ergebnisse von diesen Experimenten. Es ist nicht ganz das, was Leute zeichnen wurden, aber es ist ganz gut lesbar. Ich bin eigentlich ganz glücklich damit, dass man beachten muss, dass der Fluss definiert werden muss. Es gibt immer ein Fluss von oben nach unten und von links nach rechts. Und wenn wir dies jetzt weiter skalieren, wird es interessant sein zu sehen, ob das tatsächlich Schaltpläne besser lesbar macht, weil alle Schaltpläne, die in dieser Art geleihoutet wurden, ähnlich sind und in der gleichen Richtung fließen. Es wird auch interessant zu sehen, ob man das für hierarchische Schaltpläne erweitern kann. Ich freue mich darauf, damit zu experimentieren. Der zweite Punkt ist, auch wenn man die Schaltpläne in Code definiert, noch relativ zäh und anstrengend das zu tun. Versuche ich etwas, dass ich Elektrogramma benutzen, was im Moment ein JavaScript-Modul ist, die Komponentenbeschreibung passt. Die Idee ist, dass wir als Elektronik-Hobbyisten ohnehin schon eine relativ beschränkte Sprache benutzen, um zu beschreiben, was unsere Schaltungen und unsere Komponenten sind. Und wenn wir das ausnutzen, was Leute schon wissen, dann können wir das benutzen in unsere Tools. Wie gesagt, dies ist ein JavaScript-Modul. Ich arbeite gerade an einem Python-Port, um das zu diesen anderen domain-spazifischen Sprachen hinzuzufügen. Ich habe auch diese Idee gespielt, eine andere domain-spazifische Sprache zu entwickeln, möglicherweise in JavaScript. Und gerade nur, um AdWords-Gesetz zu bestätigen, dass alles, was in JavaScript geschrieben werden kann, in JavaScript geschrieben wird. Meine Idee ist es, dass es einfacher wird, über Schaltungen nachzudenken und statische Analyse darüber durchzuführen, damit es schwieriger wird, Bucks einzubauen. Aber JavaScript ist vielleicht nicht das beste Tool dafür, und vielleicht werden wir irgendwann die Sprache dafür wechseln. Und ja, ich hätte gerne einen interaktiven Editor, in dem man den Schaltplan visualisieren kann, mit etwas wie Netlist, SVG und dann an der gleichen Zeit den Code editieren kann. Ihr fragt euch jetzt sicherlich, solltet ihr diese Projekte benutzen, wie sie sich so entwickeln? Nun, ich weiß nicht. Wenn ihr in der Idee interessiert seid, solltet ihr es sicherlich ausprobieren. Aber ich würde es noch nicht für wirklich etwas Wichtig-Würchtiges benutzen. PHDL wurde 2012 entwickelt und als ich es versucht habe, funktioniert es für ältere Versionen von EGEL, aber nicht für die aktuell. Es gibt einiges in BitRot. Skiddle ist Alpha. Gut, die Klassifizierung ist von... Von meiner Erfahrung, ich habe damit noch gar nicht begonnen. Ich bin gerade erst mit den Layern und Footprints vorangekommen. Und Keycard-Motry ist für Keycard. Und ich habe es noch nicht ausprobiert. Es sieht aber relativ gut aus. In PyCircuit gibt es auch eine Sprache, die Footprints erzeugen kann. Und man kann damit experimentieren, ich habe auch ein Experiment gemacht vor etwa einem Jahr für gemischte Schematamen und habe das Keycard-Format in einem Editor. Also ich denke, die Frage ist, wenn man einen Schritt zurückgeht, was wollen wir erreichen? Wir wollen in der Lage sein, schnell die Designs durch zu iterieren, sodass wir schneller zum Ziel kommen. Wir würden gerne Konstrukte aus der Programmierung benutzen, um wir wollen modulares System haben. Ich habe da noch nicht viel drüber geredet, aber die ganzen Sprachen, die wir hier vorgestellt haben, haben Bits Stücke von Code, die man immer wieder neu verwenden kann. Das ist die Arbeit von vielen Leuten und ich hoffe, dass man da zusammenarbeiten kann. Das hier ist eine Webseite, Kitspace. Eine Art Bibliothek für Elektro-Designs und meine Hoffnung ist, dass es ein kollaborativer Platz werden könnte, wo man keine wieder benutzen kann. Ich glaube, ich bin etwas zu früh fertig. Ich möchte den ganzen Kreatoren schreiben dieser Projekte danken. Nämlich Bret Nelson und andere, die für P.A.D.L. zuständig waren. David Craven für Niel und all den anderen Beteiligten. Vielen Dank. Wir gehen jetzt zu den Fragen und Antworten. Haben die Signalangel Fragen aus dem Internet? Bitte gehen sie zu den Mikrofonen, wenn sie Fragen haben. Eine Frage von Mikrofon 2. Welche dieser Lösungen ist am robustesten, wenn man auch Simulationen machen kann? Ich weiß es nicht. Ich glaube, wenn ihr Simulationen machen wolltet, dann könnt ihr in die VeryLoc.v.a.D.L. Lösungen gucken. Man möchte vielleicht Spice nicht direkt schreiben. Hallo. Kannst du etwas sagen über den Prozess, wie man die Teile platziert? Wie ist das Interface? Ich möchte nicht nur gerne für das Design des Schaltkreises haben, sondern auch für die Platzierung. Nun, für PHDL exportiert ihr zu ORCARD oder EGLE, musst du ein anderes Programm zu übersetzen und dann macht ihr das Layout in diesen Programmen. Das Gleiche für Skiddle, man exportiert nach KaiCat und dann macht man das Layout in KaiCat. KaiCat ist das einzige, das mit programmatischem Layout experimentiert. Sind deine Experimente mit NETLIST SVG irgendwo veröffentlicht? Ja, sie sind in NETLIST SVG gemerged. Es ist nicht nur meine Arbeit, es ist auch meine Arbeit. Neil Charlie, der daran gearbeitet hat, wir experimentieren dabei, dran ist es in den Masterbrunch gemerged. Und die Links und alle im Fahrplan. Beinhaltet das die Interface mit anderen Sprachen? Nein, aber das ist im Moment ohnehin im Wesentlichen imaginär. Was wir brauchen, wir brauchen ein JOSES NETLIST und dann benutzen wir NETLIST SVG dafür. Das dürfte relativ gerade nicht sein, soweit wir da zu kommen. Meine Frage ist, glaubst du, dass es möglich ist, automatische Routing-Mechanismen zu finden, die die Teile platzieren? Ich weiß es nicht. Ich finde die Experimente, die bei Pi-Circuit gemacht werden, sehr interessant. Aber ob sie irgendwo hinführen werden, weiß ich nicht. Da kann ich leider nicht viel mehr zu sagen. Vielen Dank für den Talk. Vielen Dank! Vielen Dank! Danke für das Talk. Danke. Danke für das Talk. Danke für das Talk. Danke. Danke. Danke.