CMOS
CMOS was introduced to ICs in the late 1960s. Before then, NMOS was used for digital logic. NMOS isn’t very energy efficient because the pullup resistor is dissipating energy when the N type transitor is on.
To get better energy efficiency, an extra P type transistor replaces the pullup resistor. Only one transistor is on at a time.
https://en.wikipedia.org/wiki/CMOS:
Complementary Metal Oxide Semiconductor (CMOS) is a type of MOSFET fabrication process that uses complementary and symmetrical 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.
Course feedback
The part I enjoyed the most was going back to the Verilog and seeing test benches pass. In particular the waveform viewer. At the latter parts of course you're simulating the entire Caravel system on chip with a RISCV core. Being able to drill down into everything inside that core, I can log the program counter, I can log all the address and data buses and you can just see in exquisite detail what the system is doing, and it's doing that because I programmed it. Being able to drill down into that detail was really fascinating.