1. Understand the expected functionality of designs;
2. Design and develop verification environment;
3. Run RTL and gate-level simulations / regression;
4. Code / functional coverage development, analysis and closure;
5. Release the documents during the verification flow, such as verification plan, usage of the verification environment, simulation result of test cases, verification coverage report, etc.