Step-by-Step Functional Verification with SystemVerilog and OVM