Hi Guys,
I wanted to seek your guidance and opinion about the area that I want to target after graduating from this course. I work with Texas Instruments as Design Manager and have been working on analog circuit design for last 10+ years. I have been thinking for past few months if it is possible to leverage the ML tools for designing analog circuits or not. The most important aspect of that is to define and frame the problem statement. Circuit design is usually done on GUI tools where we instantiate the transistors, resistors and capacitors. Later, it is compiled into a text file and sent to simulator for the type of simulation specified by us. Based on the results of that simulation, we either change our circuit or optimize its parameters. Now this was a really simplistic view of the design world but in reality, it involves lot of mathematical calculations and iterations. I would say we spend only 10% on design and 90% time optimizing circuit parameters to achieve desired specifications. But most of the innovation happens only in the earlier 10% of time.
Generally, any product that we design uses hierarchical design technique where circuits are designed independently and then integrated with each other and next level of hierarchy is generated to work on. Whenever we start a design, we first derive the specifications for top level design and then propagate down to each sub design that will be required.
Now, coming back to the problem of leveraging AI/ML tools for design, I am not very clear on what exactly will be required but I have a given some thought on the architecture. Since all the transistors, resistors and capacitors are connected using wires, and every designer connects and combines them in one’s own unique way, I don’t think image classification could work here. Even if we have designs that functions exactly the same, we would find that they are drawn in extremely different way by designers. But I still think convolution can play a great role in defining since convolutions inherently look for localize patterns and that localized patterns are preserved in circuits using the wire connections between the components. So may be, we can’t work with images but can work with CNN on circuit/network with the network represented in a way that can help us extract localize features. Hence, I think some kind of representation is warranted for the network. We usually compile drawn circuits into a text file before simulation. I think from this file we can extract the connections between different components. Some ideas that I have are extracting connections and representing them like CountVectorizer for text documents. Essentially, the entire circuit is finally converted into a text file before simulating and that text file has it’s own syntax and language to express the network connections. So, I thought may be NLP is the way out here with convolutions. And since the designs are inherently hierarchical, may be some kind of hierarchical CNN.
There is one more problem that we might have to address – the training samples won’t be too large for each category of design. So, may be we will have to look at GANs for generating additional samples or may be GANs would be the final design.
I know I might have confused you along the post but I am not able to get my head around as to how to approach the problem. I simply want to get my foot in essentially in this domain with AI and then have a long term view to improve the design. For my first target, if I am able to represent circuit in a way that can classify it to a particular kind of function that it is performing would itself be great. Then, I plan to start modifying circuits using AI to add some functionality.
In addition, we have an extremely powerful simulator that we use which can really help us if we take the reinforcement learning path for optimizing or designing circuits. I will try to share some generic pics about circuits and the language it is expressed in text file.
I apologize for the long post and am extremely grateful for patience. Really looking forward to your insights and guidance on this.
Thanks much!!
Regards,
Rishubh