Logic Design and Verification Using SystemVerilog