https://medium.com/@iamRadhaKulkarni/mastering-verilog-a-comprehensive-guide-to-digital-design-and-programming-9a8a3a6a10f5