## 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
