An out-of-order RV32IM processor in SystemVerilog, built with Albert Jiang and Taowei Huang for ECE 411. Explicit register renaming, per-unit reservation stations, a split load/store queue, and a gshare branch predictor.
For more info, here is the full report.
Key features:
Why "OStritch"? During development, we encountered a quirky bug: increasing the timer speed for preemptive interrupts caused random unexpected crashes. Our initial solution was to implement the "Ostrich Algorithm" which solved the problem immediately. We realized the bug was due to a locking issue on kernel bootup :)
Recreation of Plants vs Zombies primarily using SystemVerilog, deployed on the Spartan 7 FPGA.