fix FPGA memory backend generating incomplete verilog
perform extracts on constants with shifts & masks

because extracting from constants is illegal in verilog