Here are some things I've worked on (incomplete, to be updated).
Advanced Out-of-Order RISC-V Processor
- Designed a pipelined processor in SystemVerilog for the RISC-V ISA using P6 style renaming, an N-way superscalar design, early tag broadcast, early branch resolution, and GShare branch prediction.
- Also incorporated instruction prefetching, non-blocking instruction and data caches (N-way set-associative and banked, respectively), a victim cache, and a load-store queue with forwarding.
- Achieved a clock frequency of 93.75MHz and an average CPI of 1.7 on a suite of programs including Alexnet, sorting algorithms, and geometric functions.
Roll Over Beethoven: A Cloth Piano
- A foldable, portable piano/keyboard. It comprises the core instrument with cloth keys (on foldable card paper for the prototype), a graphics display (for feedback and tutorials), and a sustain pedal.
- Wrote drivers for the sensors and display + synthesized different timbres + created a tutorial in C.
- Code.
Formal Verification of FtTokenCMP
- Formally verified FtTokenCMP, a fault-tolerant, token-based cache coherence protocol using Murphi.
- Code.
Course Autograder for FPGA design verification, EECS 270
- As a TA, co-developed testing frameworks in Verilog, set up Docker environment, and wrote testbenches to verify student designs.
- Deployed on autograder.io and used by ~250 students per semester.
FPGA Design Projects
- Designed a four function calculator, traffic lights controller and carry lookahead adder.
- Deployed and verified on Altera DE2-115 boards.
Robotic Planning and Controls Projects
- iLQR implementation in Pytorch for the inverted double-pendulum on a cart.
- MPC and MPPI for linearizing cartpole and robot arm dynamics.
- Dynamics from state measurements, with Gaussian processes.
Misc Class Projects in C/C++
- RISC-V assembler, simulator, linker
- Pipeline and cache simulators in C
- Tarjan's pairing heap
- SQL-like relational database
- Among Us simulator with optimal TSP
- Seam-carving for image resizing
- Piazza posts classifier
- Plants vs Zombies simulator
- Euchre simulator