Hasty Briefsbeta

Bilingual

Running Doom on Our Custom CPU and Going Viral

8 hours ago
  • The team designed a custom CPU from logic gates, adapted DOOM source code, and ran it on an FPGA at 0.7 FPS initially.
  • Major challenges were memory size (DDR3 vs BRAM) and speed; they implemented two caches (ICache and DCache) with a memory arbiter to handle DDR3 latency.
  • Porting DOOM revealed CPU bugs such as infinite loops, incorrect immediate calculations, and cache overwrite issues; debugging required isolating parts of the program.
  • Hardware issues included unstable DDR3 interface (solved with Clock Domain Crossings and FIFOs) and keyboard input problems (used UART forwarding from a laptop).
  • Optimizations like raising clock speed, fixing fetch stage inefficiency, adding multiplication instructions, pipelining cache reads, and enabling compiler optimization raised FPS from 0.7 to 15-20.
  • The team plans to implement out-of-order processing and better memory access to reach 30 FPS, and possibly port Quake 2 after building a basic GPU.