Digital Design and Verilog HDL Fundamentals