More fixup on rom_sd
All checks were successful
ci/woodpecker/push/test-workflow Pipeline was successful

This commit is contained in:
Waylon Cude 2025-06-03 22:36:57 -07:00
parent 2387fdbe3b
commit 89558d8313
Signed by: uelen
GPG Key ID: 398C5AD0E9F4F516

View File

@ -1,11 +1,11 @@
// A dummy sdcard module for testing the audio port
module sd(
module rom_sd(
input logic clk,
input logic reset,
output logic ready,
audio_buffer_interface.driver buffer
buffer_interface.driver buffer
);
// First we write 2048B into the memory buffer, then signal to play it and
@ -14,45 +14,16 @@ logic initializing;
logic [16:0] rom_addr;
logic [7:0] rom_data;
logic rom_enable;
// Keep track of pipeline delay so we don't write garbage into the buffer
logic delay;
logic buffer_half;
// Keep track of if we are caught up to the buffer or not
logic waiting;
//TODO: This probably could be an assign, not sure
assign ready = '1;
always_ff @(posedge clk) begin
if (reset) begin
delay <= 1;
rom_addr <= 0;
initializing <= 1;
audio_buffer.addra <= 0;
audio_buffer.ena <= 0;
buffer.addra <= 0;
buffer.ena <= 0;
end
else if (initializing) begin
rom_enable <= 1;
case (delay)
1: delay <= 0;
0: begin
rom_addr <= 1;
delay <= 0;
initializing <= 0;
end
endcase
end
else begin
if (!waiting) begin
audio_buffer.ena <= 1;
audio_buffer.dina <= rom_data;
audio_buffer.addra <= audio_buffer.addra + 1;
end
end
end