Designing digital computing systems with Verilog - Lilja, David J. (Cambridge University Press, 2005)