This document discusses various datapath subsystems used in VLSI systems, including adders, multipliers, comparators, counters, and shifters. It focuses on adders, describing how a basic N-bit carry-ripple adder works and its drawbacks. Optimized adder designs are then presented, including a mirror adder that reduces area and propagation delay by exploiting the self-dual property of full adders. Faster ripple carry adders can also be created by minimizing the critical carry path using modified full adder cells without inverters in the carry path.