CMOS was introduced to ICs in the late 1960s. P type MOSFETs are used to pull output signals up, and N type MOSFETs are used to pull output signals down - P and N are the complementary types.
Before CMOS, NMOS was used for digital logic. NMOS isn’t very energy efficient because the pullup is performed by a resistor which is dissipates energy when the N type transistor is pulling down. It also is hard to balance the pullup and pulldown speeds which makes design difficult.
By using transistors for both pullup and pulldown we get better energy efficiency. When the inputs are stable, only one transistor is on at a time so there is no static current consumption, but during input switching a small amount of current may flow directly through the P then through the N transistor: this is called crowbar current. Normally the transistors are designed to avoid or minimise this unncessary power consumption.
Complementary Metal Oxide Semiconductor (CMOS) is a type of MOSFET fabrication process that uses complementary pairs of p-type and n-type MOSFETs to build logic functions.
Here is a CMOS inverter showing the complementary N and P type MOSFETs.
And here’s how it could be laid out using a tool like Magic
This video shows a sped up screen capture of me laying out a DRC clean inverter with Magic.
For a very long time I’ve been fascinated by ASICs and have been close to them in my professional life as well, but not really as much into the detail as I would want. It’s been a fascination since grad school at least, so I've been interested in seeing more open source alternatives crop up, and now with the skywater PDK and OpenLane it seemed like the right time. It’s still a bit hard to get the motivation to get started, it feels like a bit of a hurdle so when I saw this course I just jumped right on it. It felt like a perfect way to get started.