Draft preview. Lessons are being written and reviewed.
Digital Design course cover

Digital Design

Gates to FIFOs, clock crossings and a working CPU. 68 lessons in 12 modules. Pick a module on the left. Videos on the right follow your choice.

Module 1: Numbers and logic

How hardware represents information and decides things.

  1. 1Binary, hex and two's complementLecture coming soon
  2. 2Logic gates and truth tablesLecture coming soon
  3. 3Boolean algebra and De MorganLecture coming soon
  4. 4Karnaugh mapsLecture coming soon
  5. 5What a gate is made of: CMOSLecture coming soon

Module 2: Combinational building blocks

Outputs that depend only on the present inputs.

  1. 6MultiplexersLecture coming soon
  2. 7Decoders and priority encodersLecture coming soon
  3. 8Half, full and ripple addersLecture coming soon
  4. 9Carry look-ahead and prefix addersLecture coming soon
  5. 10Subtractors, comparators and an ALULecture coming soon
  6. 11Barrel shifters and glitchesLecture coming soon

Module 3: Verilog that means hardware

Describe circuits, and always picture the circuit you are describing.

  1. 12Modules, ports and hierarchyLecture coming soon
  2. 13wire, reg, logic and 4-state valuesLecture coming soon
  3. 14assign and always blocksLecture coming soon
  4. 15Blocking and non-blocking assignmentsLecture coming soon
  5. 16Accidental latchesLecture coming soon
  6. 17Parameters and generateLecture coming soon
  7. 18Your first self-checking testbenchLecture coming soon
  8. 19Reading waveforms like an engineerLecture coming soon

Module 4: Sequential logic

Circuits with memory, and the clock that disciplines them.

  1. 20SR and D latchesLecture coming soon
  2. 21The D flip-flopLecture coming soon
  3. 22Setup and hold: the two promisesLecture coming soon
  4. 23Synchronous and asynchronous resetsLecture coming soon
  5. 24Enables and clock gatingLecture coming soon
  6. 25Shift registersLecture coming soon
  7. 26LFSRsLecture coming soon

Module 5: Counters and frequency dividers

Timing generators found in nearly every block.

  1. 27Up, down and loadable countersLecture coming soon
  2. 28Ring, Johnson and Gray countersLecture coming soon
  3. 29Divide by 2, 4 and any even numberLecture coming soon
  4. 30Odd division with 50% duty cycleLecture coming soon
  5. 31Edge detectors and pulse generatorsLecture coming soon

Module 6: Finite state machines

The control logic behind almost every chip block.

  1. 32States, transitions and outputsLecture coming soon
  2. 33Moore and Mealy machinesLecture coming soon
  3. 34Writing FSMs: encoding and styleLecture coming soon
  4. 35Detecting 1101, with overlapLecture coming soon
  5. 36Non-overlapping detectionLecture coming soon
  6. 37Traffic light and vending machineLecture coming soon
  7. 38Debugging and safe FSMsLecture coming soon

Module 7: Memories and FIFOs

Moving and storing data between blocks.

  1. 39Register filesLecture coming soon
  2. 40Using SRAM in RTLLecture coming soon
  3. 41Synchronous FIFOLecture coming soon
  4. 42FIFO depth calculationLecture coming soon
  5. 43Valid/ready handshakesLecture coming soon
  6. 44Skid buffersLecture coming soon

Module 8: Arithmetic and datapaths

Making computation fast.

  1. 45Multipliers and Booth encodingLecture coming soon
  2. 46Fixed-point arithmeticLecture coming soon
  3. 47PipeliningLecture coming soon
  4. 48Retiming and area-speed trade-offsLecture coming soon

Module 9: Static timing

Why a chip has a maximum frequency.

  1. 49The timing pathLecture coming soon
  2. 50Clock skew and jitterLecture coming soon
  3. 51Fixing violationsLecture coming soon
  4. 52Constraints, false and multicycle pathsLecture coming soon

Module 10: Clock domain crossing

Safely crossing between unrelated clocks.

  1. 53Metastability and MTBFLecture coming soon
  2. 54The two-flop synchronizerLecture coming soon
  3. 55Pulse crossing fast to slowLecture coming soon
  4. 56Multi-bit transfers and handshakesLecture coming soon
  5. 57Gray code pointersLecture coming soon
  6. 58Asynchronous FIFOLecture coming soon
  7. 59Reset synchronizers and RDCLecture coming soon

Module 11: Designing for silicon

RTL that survives synthesis, lint and power reviews.

  1. 60What synthesis does to your codeLecture coming soon
  2. 61Lint and code qualityLecture coming soon
  3. 62Low-power RTLLecture coming soon
  4. 63ArbitersLecture coming soon

Module 12: Projects and interview preparation

Bring it all together, and prepare to be hired.

  1. 64Minor project: UART transmitter and receiverLecture coming soon
  2. 65Minor project: SPI controllerLecture coming soon
  3. 66Major project: small RISC-style CPULecture coming soon
  4. 67Industry project: streaming packet engineLecture coming soon
  5. 68Interview patternsLecture coming soon