Verilog implementation of a 4-way Set associative cache with a write buffer (write) policy and FIFO replacement policy