Learn digital design
The ideas behind the code: logic, clocks, arithmetic, state machines and timing.
- Combinational and sequential logicThe two kinds of logic every digital design is made of, and how to write each.
- Clocks and resetsWhat the clock and the reset do, the reset style this lab uses, and the mistakes to avoid.
- Verilog and SystemVerilog fundamentalsThe small part of the language you need to write synthesizable designs.
- Testbenches and cocotbWhat a testbench is, how a cocotb test is built, and the pattern every test in this lab follows.
- Bit widths, signed arithmetic and overflowHow many bits a result needs, how negative numbers work, and what happens when a value does not fit.
- State machines and pipeliningTwo patterns that organise almost every design: doing things in order, and doing them faster.
- Timing constraintsHow you tell the tools what "fast enough" means, and where that is written in a project.
- FPGA versus ASICHow the same RTL becomes two very different kinds of hardware.