https://vlsiweb.com/loops-in-verilog/