
Sample Efficient Evolutionary Algorithm for Analog Circuit Design - headalgorithm
https://bair.berkeley.edu/blog/2019/09/26/circuits/
======
deepnotderp
Fascinating.

We've been working on an internal project for layout of digital circuits using
stochastic search and ML and have been having good results. ML and AI in
general will likely have a pretty big impact on circuit design in the near
future, excited to see other work in this area ^_^

~~~
ultrasounder
Board level EE here of about 15 years here. Right now the most advanced PCB
layout tool is Allegro which can route up to 20 positive layers. BUT, the
autorouter is unusable. Wonder why Apple/Google/LAB126/MSFT maintain an army
of "eCAD" engineers. If you can point me in the direction of any publication
that your "internal project" has contributed to that would be great. IMHO, PCB
layout is the most underappreciated engineering task in product development
right now. At the speeds of PCI-E Gen4 the traditional lumped elements theory
no longer hold good. So, interested to see whats coming my way so that i can
be ready to pivot when "computers can actually make computers themselves".

~~~
ChuckNorris89
_> BUT, the autorouter is unusable. Wonder why Apple/Google/LAB126/MSFT
maintain an army of "eCAD" engineers._

Because:

1\. They're working on the cutting edge of miniaturization and autoroute
functionality just doesn't cut it at that level. You need a human
understanding of the end product as in consumer electronics you have to plan
in advance several (often for lower cost) revisions of the same product for
the future.

2\. All the ML/AI experts are expensive and they have much lucrative fish to
fry such as getting you to buy or click on things rather than optimize PCB
aoutoroute for some eCAD company that can't justify their expense as most of
their customers will still route by hand since the hardware business is very
resilient to change.

3\. PCB layout is done(in Western Europe at least) mostly by technicians, not
engineers, and their labor costs are cheap as technical high-schools churn
hundreds every year. You don't need a university degree and sometimes the
company will pay your training for the eCAD tool they're using. In my area, a
city with lots of hardware industry, it's basically a blue collar job.

Source: FW dev in the consumer electronics business

~~~
radarsat1
Also from my limited experience in Eagle, the autorouter output is terrible. I
mean, it works, but it makes it very hard to "read" the layout and tweak it if
necessary. Sometimes it helps do some percentage of the work, but you almost
always end up ripping it all out and redoing most of it. Or running it
multiple times until you get something that is semi-usable.

Perhaps some kind of GAN approach could be used to force an optimizer to
perform autorouting with a bias towards "human-like" circuits that actually
readable and understandable.

------
gumby
This looks just like the simulated annealing work AI researchers were using on
chip design and verification in the 1980s.

~~~
B1FF_PSUVM
I think the trick is here:

 _" In our proposed method, we devised a model to predict the performance
before simulation and only simulate those samples which have better predicted
performance."_

In other words, build a model for the system, use that for (cheap) sample
point evaluation, occasionally check (doing an expensive circuit simulation)
and adjust.

P.S. back in 80s the guys doing simulated annealing were not claiming to be AI
researchers, and the actual AI researchers were doing other stuff (neural
networks and knowledge-based systems, among others).

~~~
peterwoerner
Surrogate modeling techniques have been around for a while. They come standard
in many optimization software e.g. DAKOTA.

[https://dakota.sandia.gov/](https://dakota.sandia.gov/)

------
vessenes
I'd love to see some sample circuits evolved -- I feel like humans might get
stuck in known patterns, and I'm curious to see more 'random' circuits that
still work.

~~~
the8472
There's Tompson's famous work with evolving circuit design on physical
FPGAs[0] where the algorithms exploited analog properties of the discrete
circuit elements, something no human would have done.

[0]
[https://static.aminer.org/pdf/PDF/000/308/779/an_evolved_cir...](https://static.aminer.org/pdf/PDF/000/308/779/an_evolved_circuit_intrinsic_in_silicon_entwined_with_physics.pdf)

~~~
EvanAnderson
Discover Magazine had a very approachable article on this work:
[http://discovermagazine.com/1998/jun/evolvingaconscio1453](http://discovermagazine.com/1998/jun/evolvingaconscio1453)

~~~
the8472
He asked to see some evolved circuits. The linked slides do (well, FPGA
schematics), the magazine article does not.

~~~
EvanAnderson
What motivates somebody to make a comment like this, out of curiosity? Was my
link to an article that some people might find interesting hurting the
discussion?

------
amelius
Bad news for Qualcomm?

This makes me wonder, what if the algorithm finds a patented circuit, would it
be allowed?

Another thing I wonder is if instead of starting with a fixed topology, you
start with a complete graph, would the algorithm automatically find the
correct topology (where e.g. resistors that are dropped simply become very
large). Or would it get stuck in a local minimum?

------
ycui1986
Assuming the AI work perfectly, it will only be as good as the circuit
simulation it can do. Unfortunately, there are some many things the start-of-
art circuit simulation software cannot do. I really doubt the claim the author
made here.

Back in time around year 2000, Scientific American had published an article
about using genetic evolution algorithm to create circuits. 20 years later,
the same idea keeps pop up again and again, but no commercial product has
really claimed they were generate by algorithm.

~~~
rusticpenn
Because all such projects are purchased by cadence and other biggies and
killed. The workflow is also completely different that it takes time for
engineers to trust the new workflow. The difference between 20 years and now
is the computing power. ( I have worked on such an automation tool )

------
proc0
So circuit design can be similar to certain software patterns. I wonder if
this can be adapted to produce AST's and/or logic gates such that it can be
run in some language. Interesting, will need to read through.

