Solving problems I created solving other problems.
stuff
IEEE SSCS Chipathon 2026
I3C target controller in SystemVerilog. Filters glitches on SCL/SDA, detects Start/Stop conditions, and runs SDR transactions including CCC decoding and ACK/T-bit handling. Also supports in-band interrupts and hot-join, with its own arbitration between sources. spi_opentarget_i3c_top wraps it with a 4-wire SPI-to-APB bridge to cut pin count on the shared multi-project chip. Ran through LibreLane flow on the GF180MCU PDK for IEEE SSCS Chipathon 2026.
Selected for the September tapeout (Team A63) as part of the chipathon track.
Chipmonk Hardware Hackathon 2026 · Mumbai
2x2 mesh NoC in SystemVerilog on an Artix-7 100T (Nexys A7). Each router has 5 ports with XY dimension-order routing (no deadlocks), a 5x5 round-robin switch allocator with packet-locking, and an AND-OR crossbar. Hits 3.4 Gbps per port at 100 MHz, so 40.8 Gbps total fabric bandwidth. Built a UART bridge for testing directly from a PC. Fits in 2,063 LUTs and 4,316 FFs (under 4% of the chip) at 0.133 W.
3rd Runner-up out of 82 teams across India at the hackathon.
PDEU · Gandhinagar
VGA 640x480 @ 60 Hz Space Invaders in Verilog with an AXI-Stream graphics pipeline on Nexys A7. Got a PS5 DualSense working as the controller over BLE via an ESP32 bridge into a UART receiver (115200 baud, 16x oversampling), which feeds 8-byte packets into the game logic. Has the usual stuff: player ship, bullets, a 3x8 enemy grid with AABB collision, and a state machine handling menu/playing/game-over.
Robotics Lab · IIT Gandhinagar
18-DOF half-humanoid with dual 8-DOF arms and a 2-DOF head. Wrote the MoveIt2 config and URDF from scratch, then built Dynamixel drivers for extended position control, obstacle avoidance, and gesture recognition. Replaced the default KDL IK solver with a Newton-Raphson implementation in Pinocchio as a custom MoveIt2 plugin and got roughly 2x faster convergence. Pick-and-place works with pre-grasp/pre-place waypoints and ROS2 actions handling motion coordination.