SDVD/doc/bugs.md
2025-06-10 02:51:18 -07:00

1.6 KiB

Bugs I Found

Audio Buffer

  • Forgot to assign to a delay counter

Debouncer

  • Logic was fundamentally wrong
  • Found multiple logic bugs with testbench and then assertions

Display Converter

  • Found a typo in a single digit

Low Freq Clock Gen

  • Was initially trying to do modulo at max clock speed, failing timing

sd_rom

  • ROM was getting totally optimized out and was doing nothing in simulation, and didn't show up in synthesized design
  • Timing issues, ROM was one cycle slower than expected, latching takes an extra cycle too, had to rework state machines, there are a bonus 2 delay states when starting and ending writes

PWM

  • major design problems
  • clocked too slow
  • initial goal of 16-bit audio isn't feasible because 100MHz isn't fast enough to pwm based on a 16-bit counter, would give a sample rate of 1.5khz

command_sender

  • output ready signal was delay a cycle because it was set by sequential logic, detected in testing, changed it to a combinational output for 1 cycle speedup
  • counter was being set in multiple blocks, caught by synthesis
  • output phase too long, caught in hw

read_command

  • response_type was not getting correctly stored/set, breaking the module entirely. Detected in testbench
  • off-by-one error detected in the counter

read_data

  • audio buffer address to write to was never changing, caught in simulation
  • some off-by-one errors in the byte shifting were found and corrected

modular_clock

  • stopped ticking on reset
  • meant that every module using these clocks w/ a synchronous reset would get stuck and never reset
  • found during hw debugging