A small compiler which turns user-defined rules to verilog code