This module needs way reworked to just be a state machine. I was trying to get way too tricky with it so I went back to the drawing board and made a state machine diagram for it. The diagram is included with this commit. I also moved the current collection of documentation to a doc/ folder, and added a second-long audio rom to test everything out once the rom_sd is working.
1.0 KiB
1.0 KiB
Planned Modules
-
SD Card Reader
-
VGA Controller
- Not sure if the framebuffer is here or in RAM?
- Each pixel is 12-bits
- Probably fit into 16-bit words in RAM?
- Plan on 640x480
- Should we do double buffering?
-
Audio Controller
- Again, not sure how the buffer will work. Might just take in 1KiB as a verilog array?
-
Control logic
- Play
- Pause
- Volume up/down
- Fast forward
- Maybe start at 2x, then go to 4x then 8x with more presses?
- Rewind, maybe, it's real hard though
-
DRAM/SRAM controller
- We might need this for buffering frames? Not sure if we implicitly can use SRAM with verilog arrays
- The SRAM interface is easier but slower
- Hopefully we don't need this but who knows
-
8 segment display driver
- Takes in a play time in seconds and displays it in hour:minute:second
- Maybe could take in seconds, minutes, and hours separately?
- This would save us from having to do modulo
- It'd be easy to check if seconds == 60 and then increment minutes