Towards the end of last October I set out to design an analog IC. I figured a good first step in that process (given I knew nothing about analog design) would be to go through a textbook dedicated to the subject, namely Design of Analog CMOS Integrated Circuits by Behzad Razavi. Problem was, I was on a time crunch and this book is designed to take an entire semester in a first year graduate course. Still I figured at 13 pages a day, it would be feasible to get through it in 2 months, leaving me 3 months before the deadline for design submission.

Well, just a bit over a week ago I finished the textbook right on schedule, December 31st. I figured it’d be good to write down my thoughts and advice for anyone looking to do something similar.

Before I start giving you advice, let me clarify exactly who this guide is for. This guide is for someone (hopefully you!) who has a goal, which as a prerequisite requires them to gain a lot more knowledge than they currently possess. Ideally, this person has examined all their options for knowledge acquisition, whether it be looking at Wikipedia articles, binging a lecture series or purchasing a Nautilus subscription, and has decided that their best option is the (rapid) consumption of a particular textbook. If you are simply reading a textbook for pleasure, this guide may be of less use to you.

One last thing before we get into step 1. While I say “speedrun”, I strictly mean on the macro scale. While going through a whole textbook in 2 months may sound fast, I still had to spend upwards of 200 hours studying in order to finish it. While there’s definitely more efficient ways to take notes and such, there’s no real shortcuts! This guide is just advice on how to do the work.

Step 1: Create Your Strategy:

This strategy is going to be what guides your studies throughout the entire textbook. Your strategy is a product of two things: pace, and depth. How much content do you need to cover a day, and how deeply you need to cover it? These two things together determine approximately how much time you’ll need to spend a day to stay on pace.

I recommend you start by determining your deadline and dividing the days you have by the amount of pages in the textbook to find how many pages you’ll need to get through a day. In my case, I needed to go through 12.2 pages a day so I set my goal at 13 pages a day. This gives me built in leeway for days I can’t finish all my pages.

After determining the amount of content you’ll need to cover a day you need to determine how thoroughly you’ll be covering the content. Are you going to take notes? Do you just need an intuitive grasp, or do you need to become quantitatively proficient with the material? Your answers to these questions are going to change how much time it takes you to cover the same content. Some people may be limited in the time they can give per day. In that case you’ll either need to compromise on depth, push back your deadline, or just find more time in the day.

My chosen strategy was governed by my goal, and yours will be too. I needed an intuitive grasp of these concepts as a prerequisite to thoughtfully designing analog ICs. I wanted to take thorough notes so that I could have a “reference guide” of sorts to quickly reintuit any forgotten concepts. And I could skip out on a thorough quantitative understanding (AKA doing the practice problems) because I was about to spend the next 3 months actually practicing the concepts; so I’d pick up the quantitative understanding while actually designing, instead of frontloading it.

With these choices, 13 pages took me 3-4 hours on average. Note that measuring content by pages leads to a highly variable workload. Some days I could finish my pages in less than an hour, and some days it took 8! This is why building in leeway is so important for maintaining consistency.

I’d like to take a second to discuss notetaking strategy. If you decide to take notes, it’s going to add time to how long you spend studying each day. But I truly believe it’s worth it if you need to hold on to these concepts for any real amount of time. I highly encourage you to take notes throughout the process.

Always remember that note taking should be an act of synthesis, not transcription. Read through a section once, intuitively grasp the concepts, and then write down how this thing works according to your newfound intuition. The equations governing this behavior tend to help with acquiring intuition as well as act as a sort of sanity check against your understanding (can you explain why each term is where it is?), but if you feel they don’t help feel free to skip writing them down. You can always find them online anyways. The important thing is that the knowledge goes from the textbook, into your head, and then on to your notebook in a form that is suited to how you think. Never skip the part where it goes into your head! I’ve found myself mindlessly copying down equation after equation from the book before, and it’s a bad habit and a waste of time.

The reason I take notes like this is because I know that I’m going to forget everything I learn from this textbook, probably multiple times. The point of going through the textbook is to intuit every concept at least once, and capture this intuition in my notebook. Then in the future when I need to understand this concept again it’s both easier and faster because

1. I’ve already intuited it once before (it gets easier everytime!).
2. I now have a personal reference manual which details the concept however is most natural to me, which ideally (if you’ve taken your notes well) will act as a ‘guide’ to quickly intuiting the concept.

If you choose not to take notes, I highly encourage you to constantly check your understanding and mental model of the concepts at hand against practice problems or the examples laid out by the book. It is far too easy to simply speed through the textbook and convince yourself you have adequately understood the concepts without seriously digesting the information.

Step 2: Set up your schedule

Once you’ve decided on your page count and learning strategy, you’ll need to set aside time to actually study those pages. This can be hard at first, since you may not know how long your pages will actually take (probably a lot longer than you’re expecting!).

I recommend setting time aside in the morning and studying first thing everyday. Right after you wake up is the least volatile time in most people’s schedule and will lend itself well to habit formation by incorporating studying into your morning routine. For me this meant pushing myself to wake up at 6 am so I could study for a couple hours before having to leave for class or work. This was a pretty big adjustment from my old schedule, but I think you’ll find the productivity gain is more than worth it. On days when I couldn’t finish my pages before leaving, the couple hours of head start meant I typically only had to do an hour of studying to finish my pages before going to bed.

I can’t understate the importance of having study be a part of your daily schedule. If you’re really not a morning person then maybe set aside a couple hours before going to bed or some fixed time in the afternoon. No matter when you choose to study, you should try to keep it at a fixed time and location if possible. This helps with habit formation, which is the key to sticking with difficult things for long periods of time. Anybody can use a lot of will power to study a lot for one day. Pretty much no one can do that everyday for months. By making studying a habit, you don’t need to use will power to force yourself to study. While the actual studying is never gonna be effortless, you won’t need to waste effort convincing yourself to start or to keep going.

Step 3: Execute

Once you’ve got your strategy and schedule set up, the only thing left is the execution. It’s best if you can enjoy the studying. I doubt I would’ve been able to do this if I didn’t find the subject matter enjoyable. Because I’m not gonna lie to you: this is gonna suck sometimes. There’s gonna be days where the pages are particularly brutal and you’re on hour 6 wondering why the hell you’re doing this to yourself. Here are some tips for getting through it:

  1. Find out how you focus
    1. The same pages can take 1 hour or 6, and that depends on how intense your concentration is. Personally, I enjoy using a pomodoro like timer system, where I set a timer for 55 minutes of study, and then afterwards I set a 10 minute one for break. If you can hone your concentration, this process is gonna get a lot easier.
  2. Always be ahead
    1. I already mentioned the idea of building leeway into your pages per day earlier. This buffer is what saves you on bad days. Some days I could drop to 8–9 pages without falling behind because I’d already built slack. So always stay ahead!
  3. Have a priority list
    1. Some days the concepts are brutal or your focus just isn’t there, and your study time runs out. When that happens, you either find more time or fall behind (tip: don’t fall behind!). I find it helpful to know ahead of time what I’m willing to sacrifice or not to stay on schedule. School or work? Never. Sleep? 1-2 times a week tops. Time to work on other projects? Typically the first on the chopping block. Time with friends? Well I’ll still hang out, but I’m bringing the textbook.
  4. Tell people what you’re doing!
    1. Talk about what you’re doing with those around you. See if you can get a friend or two to even do it with you. When the people around you are aware of your goal, you’ll be more likely to stick to it. Peer pressure and all that.
  5. Keep your eyes on the prize
    1. Your goal needs to genuinely motivate you. To me, designing an analog IC is pretty badass, and keeping that image in my head made the daily grind easier to tolerate. On long days, I wasn’t studying just to finish pages. I was studying to bring myself ever closer to that goal. My advice for doing hard things? Find whatever it is you want, and romanticize the shit out of it. Create a vivid image in your head of where all this effort leads, and revisit it often. For me, it’s important that whatever I’m doing is beautiful to me in some way.

Step 4: Success! (What’s next?)

If you’ve made it this far, congrats! Now you can move on to whatever your actual goal was. For me, this means I can finally move on to actually designing my analog IC.

For those of you wondering if doing this would be worth it for you or not, I have no idea! But to help you decide, I’ll briefly describe how it went for me.

Outcome and things I would do differently

To be completely honest with you, I think some part of me was always hoping that going through this textbook would be a silver bullet for me. That I would finish the textbook, magically know everything there is to know about analog IC design, and immediately go on to design super impressive complicated circuits. Let’s be clear: this is not a silver bullet. Reading a textbook does not make you amazing at a subject.

What did happen however, is that I am now comfortably aware of just about every major aspect of analog IC design. Not an expert, maybe not even proficient, but aware.

Analog IC design is a wide discipline with many interacting factors, none of which are trivial. I think that the combination of breadth plus depth was what makes this subject such a good candidate for textbook learning: I was able to build a higher-resolution mental map of the subject then by just watching lectures or youtube videos alone. It served as a broad and reasonably thorough introduction to CMOS IC design, and I would strongly recommend this approach to anyone in a similar position.

If your textbook targets a very specific or narrow topic, however, the experience may differ enough from my own that I can’t confidently recommend for or against this approach.

I would have done two things differently:

  1. I would have taken synthesis based notes from the very start, and been stricter about keeping them short. Transcription based notes take longer and are less effective. Getting better at note taking is what saved me a lot of time towards the end of the process.
  2. I would have set aside a day a week for practice problems. I definitely underestimated the efficacy of doing problems. Actually working through problems related to the topics I’m learning would have been a great help for acquiring intuition and long term retention. And by just setting aside a day a week, where maybe I did 6 pages and then an hour or two of problem solving would have been a great help, while only adding ~4 days to my deadline.

So there it is! As far as project updates go, I’ve now moved on to learning XSchem and Magic for the schematic and layout process of analog IC design respectively. It looks like there are unfortunately some complications with analog ICs for TinyTapeout’s March shuttle, so I may need to wait until May to tape out. However, I’ll still be keeping my personal deadline at March.

Thanks for reading!