Borrowed verilog examples from http://www.asic-world.com/.