EECS 4340 · Spring 2026 · Columbia University

Out-of-Order RV32IM Processor

A synthesizable, P6-style 2-way superscalar out-of-order RISC-V processor in SystemVerilog. Built on top of the Project 3 in-order pipeline, with seven advanced features layered on the base machine.

Programs passing

33 / 33

RTL + synthesized netlist

Geomean cycle reduction

-27.46%

OoO base → all-on

Geomean branch accuracy

74.03%

+8.87 pp over bimodal

Worst slack at 1000 ps

-797.58 ps

functionally bit-equivalent

Architecture

Click any module to read what it does. Toggle the pills to highlight the advanced features in their host modules.

writebackFetch (2-wide)I-CacheBranch PredictorDecode (2-wide)ROB + RATReservation StationLoad-Store QueueALU × 2MultiplierBranch ResolverD-CacheCDB (2 slots)Commit (2-wide) + Arch RegFile
FrontendBackendMemoryControl

Per-program results

Cycle-count change from disabling all five ablate-able advanced features (OoO base) to running all seven (all-on). Hover any bar for details.

Seven advanced features

Two from the difficult tier and five from the simpler tier, layered on top of the base out-of-order pipeline.