Describe digital hardware with an HDL, simulate it with testbenches, and synthesize it onto an FPGA. Implement state machines, datapaths, clocking, constraints, and reusable hardware modules.