Bestand wählen
Merken

Designing PCBs with code

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
and and and
and the when it's Caspar and
I am here to talk to you about designing PC these that's printed circuit boards with code
so just a little bit about me I'm a freelance electonic engineer and suffered a developers and the pictured here to my current project sponsor virtual reality check controller another is braille e-book reader and I love writing code and I'll of open source and especially open-source electronics people coming together working on something all of from all over the globe really inspires me so um
you know as I said I love electronics and of code uh but I don't actually enjoy a designing electronic so much uh I I get very frustrated with the design tools and this is how typically you design a printed circuit board you have your schematic 2 on 1 side where you define your components in the connections between them and then you move over to your layout tool where you then route those connections and place components so if
you designing digital hardware if you design it something to be run on an FPGA you can actually use schematic entry as well uh but hardware description languages were invented in the eighties and that's pretty much how we largely now design digital circuits uh
because the schematic entry for this sort of task 2 becomes very confusing and there is a little puzzle found if you go to the euro there you can get it and you can try and so that's um yes so we use
code to describe the logic circuits because it's much easier to manage the complexity uh so these are known as hardware description languages but this is a very very low there and thank or is
it yes it is true and
so if you're doing a schematic and especially with high income devices such as FPGA is asthmatics a really just uh there's a lot of labels and the jump all over the place and it's kind of hard to follow what's going on really and very tedious t you know defined hundreds of connections that just because kind of go in parallel so no that's the motivation that's behind exploring the space of of using code to uh to define fair to define atlas from 4 to do to make semantics so
can we use HDLs analog circuits well there's actually uh analog in mixed-signal extensions to the the popular HDLs uh Verilog a was defined in 1993 and it was were then merged into a mess which stands for analog and mixed-signal and in 2000 um
there's also uh an analog and mixed-signal extension for the HTML and there's another 1 that I came across with in a paper from 1999 with call the circuit description language darkened find any implementation of it the so the focus of these this simulation and verification really so rather than just do pure schematic entry you are describing the behavior of your circuit and you know you need to know a lot of details about the behavior of you components so what we want what what I want anyway is something to Due schematic entry to do create netlists are rather than the analog simulation because the same of models work so I came across this which is
called the PCB hardware description language and this is the project from 2011 it it has quite a clean syntax for defining uh devices in the connections is a more advanced features that kind of didn't fit on the slide uh but it this is a concise notation to do connections in parallel and of and in you can see it as a sort of a native module system so you have all your different circuits spread across different files so it's a new language
and which has its pros and cons and you get a clean syntax uh but it's not as expressive as a general purpose language there is a compiler it's written in Java and it can happen that this is for quite a few different PCB design tools it does some natively and then there is some translation software for others it was as an Eclipse plug-in so you can write descriptions with the help of an ID stored and managed to try this um
that's what I came across this skittles so this is the python around there's a bit of operator overloading not going on here so even if you use to reading Python you might be a bit confused but it's essentially a set of classes to help you design circuits and you can do the rest of your design in the car I can lay out and is another reason 1 who which is another reason uh come embedded in the domain space of specific language for designing circuits in Python which is by circuit um and this is also the this is quite influx of moment so this slide kind of went out of date in the last few days uh on the example of how the circuit is defined there and has a very interesting experiment of features uh so 1 of that 1 or that 1 of those ideas is to break it a bonus up into into different there's some functions and then define connections on those and it also does that the footprint of missions in layout um
so ph dl still and by circuit the date the yes the prose of area you that you can define something once and reuse that's the idea it and you can use for a loop slice notation and look at programming features to speed up the design process this image it so it's hard to visualize what's going on from code to your actual necklace uh all your circuit uh thicker definitions can still be very tedious so uh it's hard to associate footprints and then make sure those footprints a right to make sure you connections alright and if you if there's any mistake in that it can be quite it could would be quite hard to debug so i'm gonna just some of these um this realization
so even though I find 2 drawings medics quite tedious I like to read them and like to refer to them there you really really useful uh visual too so I was experimenting with trying to that visualisations to some these
languages and contributed this to skilled services uh graph this graph if you don't know graph is a supreme program where you can programs programmatically define your graphs there so so I tried to make this look kind of similar to schematic so you know what's going on but it's of obviously it's not a schematic but it has similarities and I we haven't really tried to scale this up here but this is a conventional experiment um by circuit
or date and has a a graph is output as well yeah which be created data-driven dead the the reason of this looks like this is because in place that you can do layout as well so there's a lot of this initial implementation of a sort of interactive you away you can click on uh you all nodes on the graph and then it highlights what's going on in your layout the terms so queries there came across a
political metaplasticity and that takes your users uh so your or your uh the output from the log yeah and it tries to what made it draws quite quite good the choir always I'm really impressed with the schematic state that comes up with and this is using played yes all world very soon it's going to be using select the this successor which is objects so that's the eclipse layout kernel and that uses very similar algorithms to what's being used in reference to lay out these graphs um so B and
that creates a new so we have been experimenting event with use the using this fall analog when mixed signals kinetics and the the summit in show a kind of the products of that experimentation and 1 is not exactly what people Woodrow it's quite readable and um on on on very happy with it so the the nerves so that is that the the flow of go there has to be defined so you your schematics were generally flow we using this from uh you do flow up up to down and up and left to right so as we scale this up it'll be interesting to see if that actually doesn't make it I I think it will make uh schematics much worried because all of this all schematics defined in this way will flow in the same direction and will be easier to follow uh you'll be interesting to see how to steer scales of for higher hierarchical schematics them so I'm really looking forward to experimenting with us the so kind of on the 2nd
point there is still quite tedious to actually define your circuits even in code and but mean by charisma called
the lecture grammar which is currently a JavaScript module to pass electronic component descriptions uh so the idea here is that as electronic hobbyists engineers we already use quite a specific language to quite a restricted language to to to describe what are circuits and the components so but if we if we take advantage of that what people already know we could see it get that use that fall as a parameter k input as well so it is true as it as set is this is just a modular I'm working on a Python vote to contribute to that that to these other next uh a domain-specific which isn't in Python the um the yeah so
the I've been playing with this idea of also kind of uh creating another another domain-specific language possibly in JavaScript no have which just to confirm that would slow which is everything that can be written in just will be written in JavaScript and so my goal so this would be to make it easier to design a reason about says it's circuits and you static analysis to make it very hard to create box parents with John scripts is the best uh uh choice if for that goal I'm not sure yet so maybe at some point we will switch language that and yes of adults to have an interactive editor we you can visualize a circuit with something something like the analysis Fiji and at at the code at the same time the so you probably wondering
about you know whether you should use these projects to define circuits and I don't know how I think if you are interested in the idea should the flea tried out I wouldn't use it for any thing important yet have um so ph dl was created and its I think 1 when I tried it it's it's it's you know it works for previous versions of the legal and nearest so is the I think this has a much use so there's been some the chart skittle I would say is that out of our budget and sort of just coming up with the sense that these are not official cut off from the creators and tend to my own experience I haven't even got sort yet so I've just over a bed
and the layout of 4 principal there's this but the domain-specific languages as well for creating footprints and layouts kike montre is 1 fork I cared parents I haven't tried it but it it looks pretty good actually until do use it quite a bit in circuit a b there is also a language it for creating footprints and uh this an experimental layout and routine using an SMT solvers um a I'll secreted experiments about a year ago to that makes a racket scheme and Chi act as expressions uh that would be kiken S-expression format into an editor uh door without hasn't seen much work lately um so the
I guess the question is it and injustice effective it what what what we want achieve by making hardware design more like software and really we want to be able to um we want to be able to have the fast iteration cycles and iterate on our designed so that we we uh get somewhere and quick of it we want to use programming constructs for of the fast the fast and better design process so I've kind of so to lot about already and really they we want modularity and reusability um sold the they are having covered much of that but all of these languages we have uh module systems so that you can reuse this encoding and into to them and so on the yeah you will hopefully make use of other people's work and kind of collaborate in that way uh an idea
Mr. mention not to mention my own project here which is uh a website a service to the of a registry for for electronic designs so my hope here is really that um that this could can become a collaborative space for pick the readers other people's circuits um the
so I think if initiative earlier um I really want thank all the creators of all these projects because really large samples presenting other people's works income my thoughts on top of that and sober Nelson uh and and others that have created Pht
LJ Vanderbilt unstable and David Craven on circuit and new ltaly for listed as cities and of course all the contributors to graph is an alg make this kind of experimentation possible after
all we go now to their Q and made the signal light the signals that the Internet has no questions so please line up at the microphones if you have any questions for our speaker costs there's someone already ready
and to make a phone number to please in which also solutions of small for what if you want to do what's the simulations some was it possible image exported to spice or something who uh um there I don't know uh I think if you want to do simulation you should look
into the the Verilog supernovae she'll solutions and possibly all 1 you probably don't want to write spice directly here in make a phone number for please the so what can you say something about the
process or process of the placement of the circuitry of sources of the interface to the spices 1 and very interesting aspect but on the other hand I want to have an interface therefore the actual placing of the complements did you think about this well yeah so uh it serve for
both pH well for P still you really export to or kernel go or then use the translation program to translated to another program um so you then you do your layout in in those programs and the same for skilled you export to Python
there's certain guy can't and then do your layout Inc I can't bicycles until only 1 really uh experimenting with doing layout program sickly um yeah microphone number 3
places by your experiments with our netlist SVG schemes published anywhere so we can all build on that and know what our stuff the yeah there merged into netlists SPG it's sorry my workers kneel totally working on it as well a kind of both experimentally and it's just
being merged into the master branch of that necessity and all the other all the links are in the top 1 that include the stuff to interfaces with the of programming languages you listed above but know what that's kind of uh largely imaginary at this point so what we need to do
is outpost network that here uses netlists and then use that elasticity for that it's really it seems pretty straightforward to once we get around to it I think OK there is someone has to
make a phone number 4 OK so my question is do you think it would be possible to create ultimately crude to constrain best place that could actually work for placement of the elements for I mean I don't know we will but I
I find that the experiments that have been done in place like a really interesting whether they're actually gonna lead somewhere I don't know um now come come much more on the unfortunate thank you thank you you thank you for the took small the Signal angel doing more questions they are no more questions from
the Internet and I think you also run out of questions so cost of thank you again for the torque and please give a warm round of applause thank you very much so what and you hear
the I and the each but the peak but back back back pay
Code
Softwareentwickler
Bit
Virtuelle Realität
Open Source
E-Book-Reader
Strömungsrichtung
Code
Open Source
Software
Datenverarbeitungssystem
Datenverarbeitungssystem
Code
Gamecontroller
Projektive Ebene
Softwareentwickler
Einfach zusammenhängender Raum
Datenverarbeitungssystem
Hardwarebeschreibungssprache
Dreizehn
Digitaltechnik
IRIS-T
Routing
Zusammenhängender Graph
Code
Task
Architektur <Informatik>
Hardwarebeschreibungssprache
Verknüpfungsglied
Digitaltechnik
Programmbibliothek
Komplex <Algebra>
Code
Quick-Sort
Einfach zusammenhängender Raum
Wechselsprung
Mereologie
Architektur <Informatik>
Verknüpfungsglied
Field programmable gate array
Programmbibliothek
Code
Formale Semantik
Architektur <Informatik>
Beschreibungssprache
Digitaltechnik
Hardwarebeschreibungssprache
Logische Schaltung
Stichprobe
Programmverifikation
Systemaufruf
Implementierung
Fokalpunkt
Variable
Informationsmodellierung
Ganze Zahl
Funktion <Mathematik>
Analogieschluss
Konstante
Parametersystem
Ein-Ausgabe
Digitaltechnik
Simulation
Zusammenhängender Graph
Programmbibliothek
Maßerweiterung
Ideal <Mathematik>
Analogieschluss
Einfach zusammenhängender Raum
Subtraktion
Navigieren
Compiler
Hardwarebeschreibungssprache
Formale Sprache
Applet
Plug in
Programmierumgebung
Elektronische Publikation
Bildschirmfenster
Quick-Sort
Rechenschieber
Deskriptive Statistik
Zahlensystem
Formale Sprache
Digitaltechnik
Projektive Ebene
Compiler
Programmbibliothek
Maschinelle Übersetzung
Hilfesystem
Modul <Software>
Fitnessfunktion
Domain <Netzwerk>
Bit
Mereologie
Prozess <Physik>
Momentenproblem
Digitaltechnik
Klasse <Mathematik>
Formale Sprache
Program Slicing
Programm
Zahlensystem
Template
Raum-Zeit
Code
Loop
Domain-Name
Zahlensystem
Gewicht <Mathematik>
Bildgebendes Verfahren
Einfach zusammenhängender Raum
Umwandlungsenthalpie
Nichtlinearer Operator
Lineares Funktional
Rechenschieber
Menge
Flächeninhalt
Loop
Formale Sprache
Rechter Winkel
Einheit <Mathematik>
Digitaltechnik
Dienst <Informatik>
Graph
Digitaltechnik
Formale Sprache
Programm
Visualisierung
Ähnlichkeitsgeometrie
Ungerichteter Graph
Visualisierung
Objekt <Kategorie>
Open Source
Knotenmenge
Algorithmus
Graph
Implementierung
Ungerichteter Graph
Term
Kernel <Informatik>
Aggregatzustand
Funktion <Mathematik>
Arithmetisches Mittel
Punkt
Analogieschluss
Digitaltechnik
Mixed Reality
Kinematik
Biprodukt
Datenfluss
Code
Ereignishorizont
Analogieschluss
Richtung
Hydrostatik
Domain <Netzwerk>
Abstimmung <Frequenz>
Punkt
Texteditor
Quader
Digitaltechnik
Formale Sprache
Formale Grammatik
Parser
Analysis
Code
Deskriptive Statistik
Interaktives Fernsehen
Vererbungshierarchie
Skript <Programm>
Zusammenhängender Graph
Analysis
Formale Grammatik
Parametersystem
Logische Schaltung
Ein-Ausgabe
Domänenspezifische Programmiersprache
Modul
Texteditor
Menge
Formale Sprache
Datenverarbeitungssystem
Digitaltechnik
Message-Passing
Bit
Texteditor
Jensen-Maß
Formale Sprache
Versionsverwaltung
Nummerung
Nummerung
Domänenspezifische Programmiersprache
Dateiformat
Quick-Sort
Dampf
Texteditor
Arithmetischer Ausdruck
Betafunktion
Digitaltechnik
Vererbungshierarchie
Dateiformat
Projektive Ebene
Chi-Quadrat-Verteilung
Web Site
Prozess <Physik>
Formale Sprache
Programm
Iteration
Benutzerfreundlichkeit
Raum-Zeit
Open Source
Methodenbank
Freeware
Iteration
Modul <Datentyp>
Entwurfsautomation
Software
Konfigurationsdatenbank
Hardware
Konstruktor <Informatik>
Prozess <Informatik>
Raum-Zeit
Physikalisches System
Konstruktor <Informatik>
Kollaboration <Informatik>
Dienst <Informatik>
Software
Dreiecksfreier Graph
Digitaltechnik
Projektive Ebene
Speichermodell
Algebraisches Modell
Graph
Digitaltechnik
Asymptotik
Projektive Ebene
Benutzerfreundlichkeit
Diskrete Simulation
Acht
Zahlenbereich
Simulation
Bildgebendes Verfahren
Gerade
Internetworking
Graph
Prozess <Physik>
Zahlenbereich
Quellcode
Schnittstelle
Graph
Digitaltechnik
Translation <Mathematik>
Programm
Zahlenbereich
Ranking
Kernel <Informatik>
Programmiersprache
Graph
Modallogik
Punkt
Verzweigendes Programm
Nummerung
Binder <Informatik>
Schnittstelle
Digitaltechnik
Software
Zahlenbereich
Element <Mathematik>
Elastische Deformation
Gammafunktion
MUD
Graph
Digitaltechnik
Unrundheit
Internetworking
Hypermedia
Medianwert
Systemprogrammierung

Metadaten

Formale Metadaten

Titel Designing PCBs with code
Untertitel Is designing circuits with code instead of CAD the future of electronic design automation?
Serientitel 34th Chaos Communication Congress
Autor Kaspar
Lizenz CC-Namensnennung 4.0 International:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
DOI 10.5446/34950
Herausgeber Chaos Computer Club e.V.
Erscheinungsjahr 2017
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract An overview and history of various tools and languages that allow you to use code rather than CAD software to design circuits.
Schlagwörter Hardware & Making

Zugehöriges Material

Folgende Ressource ist Begleitmaterial zum Video

Ähnliche Filme

Loading...
Feedback