Theoretical Foundations of VLSI Design