RTL Modeling with SystemVerilog for Simulation and Synthesis by Stuart Sutherland