This document presents a major project on hierarchical timing analysis of VLSI circuits. It includes an outline covering introduction, why timing analysis is needed, basics of timing analysis, static timing analysis, timing paths, hierarchical timing analysis applications, and conclusions. The introduction discusses using static timing analysis to ensure correct timing of clocks and signals. It also explains how hierarchical timing analysis can help alleviate large runtimes from flat analysis of growing design sizes. The document then covers various topics related to timing analysis including digital circuit to timing model conversions, static timing analysis concepts, different path types, and applications of hierarchical timing analysis.