https://www.silicon-russia.com/2015/03/19/intro-rtl-design-for-fpga-using-verilog-midterm-exam-1-variant-2/
Intro RTL design for FPGA using Verilog. Midterm exam 1, variant 2