This document discusses system-level verification issues for system-on-chip (SoC) designs. It emphasizes that verification must be an integral part of the design process from the start. It recommends a divide-and-conquer approach to verification, starting with block-level verification before integrating blocks and verifying interfaces. It describes various strategies for functional verification including increasing abstraction, specialized hardware, and application-based verification using prototypes. It also discusses gate-level verification including formal verification, simulation with unit delay, and full timing simulation.