Added a starting point for a Verilog re-write