This paper presents a brief tutorial on verification at the system level. Verification is pulled apart into separate tasks, each task aimed at answering specific verification questions. Because no single verification technique can address all areas, a ''stack'' of verification approaches is postulated. The bulk of the paper is focused on two of the most abstract verification tasks, here termed Virtual Prototyping and Virtual Architecture.