  Accurate branch prediction is a critical part of high performance instruction
stream processing. In this paper, I present a hardware implementation of branch
prediction for a RV32IM CPU, starting with static decode stage predictions and
culminating in the use of BATAGE. In addition, I detail my experience writing
the RTL in Hardcaml, a hardware description library for the functional
programming language OCaml.
