Fundamentals of Digital Logic  with Verilog Design