Implemented using Verilog.