Wednesday, October 30, 2013

So you have to design something new?

I am now reaching a bit for posts but this one comes to mind every now and then.  Its basically a process you can go through to create a new circuit.

So it comes down to it your name is drawn from a hat or your manager comes by and says "we have a problem we need you to solve...".  What do you do?

Creative problem solving requires thinking.  Not simply voting on the best idea or gathering around a fire and singing songs.  As engineers we are paid to think.  I am frustrated lately by colleagues who want me to convert my experience into a simple methodology or simple procedure eliminating a thought process.  "Thinking hurts" - For me at least, I do feel some mental discomfort when solving a tough problem, this feeling is temporary and is feedback in some ways that I may not be taking the best approach.  Of course it all depends on the problem and the situation.  In general the problem solving method described here is the same, however the constraints are different for each problem.  The goal should be described as accurately as possible an understood before starting.  

What is it I need to build??
Well, the first part of problem solving is understanding the problem.  Some less experienced analog managers always think that the designers are "pushing-back" or asking for justification of the design.  (I may have heard that on the phone today even.)  This is almost always misinterpreted as an attack, but an analog designer understands how much effort will go into the work.  I never take design casually even if its a basic one.  The first step is always getting more information on the problem that needs to be solved.  In some cases, a circuit design is not even required.  There could be a feature or a way of configuring another circuit to eliminate the need for a new one.   Getting information including maximum power consumption? When the circuit is required? What modes require it?  how big can it be? whats nearby on chip? Does it touch a pad or signal that goes off chip?  Does its non-function render the chip useless?  Does it have any special requirements such as 10,000V ESD or high DC voltage?  Does it interact with circuits off chip? Does it operate at 60GHz?

Is it all unique?
Is the design completely new in a new process or is there an existing design that can be leveraged?  Getting a good analog circuit in your process technology can be a huge leap in getting the circuit done on a short time schedule.  Some people do not like to use other people's circuits (called NIH), however those are normally designers that have taken more than some abuse.  Even getting schematics and simulation test-benches from another designer can same time.  I try to avoid starting with a blank sheet as much as possible.  So first thing after understanding is an "IP" search.  Now something behind the times is the ability to search for IP within a company.  I worked on a idea with a friend (Anasym) on an early concept of this technology.  The next best thing is a good memory.  I have discovered that in the San Jose area, many of the better analog circuit designers are capable of memorizing many of their own as well as their colleague's circuits.  "I think I saw a similar circuit on the LXT9785, Sumant designed it, ask him."  Also your network inside the company helps, talking to your manager or an engineering director/vp and they may have an idea.  Normally its good to ask around at the beginning since people can give their inputs.  Finally when you get to the design review it will make sense to them, and if you used one of their ideas your design review should be all the smoother.     Another place to look for circuits is in the literature such as in textbooks and/or the IEEE Explore.  I pay $35/mo for IEEE explore and its well worth it.  I have pulled several circuits out of there, stick with bigger university names and avoid the small conferences.

Break it into bits:
Any circuit of significant complexity has more than one device.  Normally there are groups of devices that need to work together to complete some sort of function.  For example, 5 transistors may be grouped together to form an amplifier.  This amplifier could be part of something else.  So after getting information and previous circuits, the next step is to partition the function.  Normally this starts as a block diagram or sketch.  Often some hand calculations are required, what is the jitter? How much noise can I handle?  Is a decoder needed?  Memory?  How will I test it?  All these and more constraints will help define the architecture of the overall circuit.  I always try to go for simplicity first, then increase complexity as performance requires.  If you can get away with one transistor and meet all specs, more power too ya.  The more elements the more iteration is needed since there are almost always trade-offs.  I like breaking designs into pieces if possible since you can leverage parallel resources (people) to assemble your design.  C, Matlab, Simulink, System Verilog, Verilog-a are all ways of refining the architecture by means of behavioral simulation.  Hand calculations, math and behavioral simulation help to determine the specifications of the sub blocks.  Normally I write a "master document" covering the top-level of the proposed design as well as some architectural comments on the sub-blocks and how the specs were determined.  If you are lucky you may have a system team or applications team capable of helping with the performance requirements.  Once you have broken the block into partitions, then its time to start.

Where do I start?
Well at this point you have a analog "system" of some sort with circuit ideas and blocks but you don't know where to start.  One method I find to be very useful from Covey is "Begin with the end in mind."  That is, start designing the circuit at the output.  I find this useful for DACs, transmitters, voltage references and buffer amplifiers.  Often the load and its electrical properties define the circuit driving them.   Find the largest and most difficult subsystems and then size them up next, if they are not already at the output.  Large blocks are expensive chip wise and should have thought put into them up-front.  This is especially true if the circuit is repeated many times.  Also, "op-amps are always way bigger in the layout than expected."  So be careful trading re-use of area intensive or non-optimal circuit blocks when high repetition is needed.  The next thing I would look for after big blocks are blocks with high impedance.  Those blocks are very low-power circuits and very high-gain amplifiers.  These circuits tend to be very sensitive to their environment and may actually require interaction with the environment.  For example, if you want a constant voltage somewhere you probably need a bias current that tracks your resistor sheet resistance.  Others circuits exist (Constant-gm, proportional to temperature, voltage.. etc)  that track out elements in the environment.


Review it:
Your peers are your best bet at finding the best solution and or smoking out a bad one.  (Not every idea I have is a good one.  Its ok to admit that, its street smart.)  This requires exposure to other peoples opinions, who should understand that you are "out there/exposed" when doing a design review.  I don't think anyone really likes doing a design review, but they can be insightful.  Maybe the circuit already exists and you don't know about it?  Possibly a circuit can be copied from another chip or ported to the process of the present chip. Maybe the problem was "over thought", having additional complexity which requires more complexity to manage. (band-aids when they are not needed).  Ideally you should send your design review material out ahead of time for the team to review.  Some people don't absorb information or bring them selves to communicate as quick as others so this allows everyone to participate.

Don't be afraid to get experts involved or leverage from them.  Reading the recent IEEE article on a noted brilliant but tough analog designer I didn't agree that a design review has to be a painful experience.  I understand the more experienced trying to make an impression, but there are more powerful approaches that motivate through understanding.  The analog industry is changing, the age of the "crazy analog guy" is over.  You need to make an effort to connect with your company's experts, since they are often busy/overloaded.  However, a good expert should help a less experienced designer since it will improve execution and the success of the company. 

Cost of the circuits:
The cost of your circuit is in design time, performance and area.  The goal is to try to find the balance custom tailored to the circuit problem at hand.  The first priority should be functionality followed optimization.  In some cases there may only be one solution, and in others many.

To make things more confusing, the correct answer is also process technology dependent.  In an older process such as 0.35u digital logic gates are expensive and fewer routing layers are available.  Analog solutions can do wonders with the higher available power supply in that process.  However, in deep submicron (ex: 32nm) analog solutions can be expensive compared to one leveraging digital.  Lower supply voltages in deep submicron combined with device noise.  Deep submicron does have its advantages with matching.  Since the devices are closer in proximity, the process control is better and analog components such as capacitors match better.  Devices also match (locally better) than in the older processes especially when using large device sizes.  Klaas Bult wrote about the benefits of scaling in "The Effect of Technology Scaling on Power Dissipation in Analog Circuits" Springer  2006 in his conclusion.

     "Matching dominated designs exhibit a decreasing or equal power dissipation for shrinking technologies whereas noise dominated designs show an increasing or equal power dissipation. " -Klass Bult

Noise dominated designs are those with many active devices operating with large bandwidths.  An example of a "matching" dominated design is a flash or SAR ADC.  A pipelined/algorithmic ADC would be considered noise dominated by Klass. 

How long..?
Finally there is the design time involved.  Over the years I have related this to analog device count.  The more analog circuitry the longer the schedule.  When in doubt, I do a devices/per_day evaulation and multiply by a factor depending on the performance of the block based on my experience.  Combined with a difficult (or worlds best) performance spec this can eat up considerable schedule.  Marketing often has demands to have many features/modes/functions for an analog design.  These sound great but can lead to huge verification times.  Also, spec changes late in the game often require re-work of other blocks. Sometimes, the late additions can make a design impossible to complete in the time and area available.  The later the change, the higher the cost which increases exponentially on complex designs.  This is a huge problem in the industry since re-work and cancelled programs lead to poorer work quality and more of the same.  The reason for the complexity creep is that the larger designs have more interaction between the blocks.  As Mr. Scott from Star Trek said "The more plumbing the easier it is to stop up the sink".  Since so few people have worked on larger designs the cost of verification of a new function can be shockingly high.  In addition, if a picky customer forces extra verification or their own methodology this should be accounted for in the schedule.   Its easy to say "layout extracted monte-carlo 500 times over 26 process corners please".  However mixed signal simulation extracted  500 monte-carlos that may not be possible to to take months using a 100 CPUs. PLLs are notoriously tough due to time constants and harmonic balance simulators don't find everything.   (I recall a 2^-22 bit error rate transient sim monte-carlo ADC request some years ago.)  You could send the chip to fab and get the results faster.  In fact, if that is the case do it since its more accurate!  Again.. paid to think not just turn a crank.  This is not implying that you shouldn't check for or understand what random effects occur inside your circuit.  Monte Carlo is also good as a tool when an analog designer wants to focus on mismatch in a part or section of a circuit.  This needs to be judged depending on cost and schedule.

In summary, break complicated design problems into manageable chunks.  Think about what you are building and what you want in the end up front.  Leverage existing knowledge of your peers, IEEE publications and books.  Try to "wing it" as little as possible since innovation can sometimes have hidden pitfalls, so innovation should be focused.  Your ideas (architecture) should be run by your peers before you pour a lot of effort into solving the circuit problem at hand.

Next up...  RESET

No comments:

Post a Comment