| ////////////////////////////////////////////////////////////////////////////////// |
| // Engineer: Wenting Zhang |
| // Create Date: 22:24:55 04/08/2018 |
| // Module Name: sound_length_ctr |
| // Project Name: VerilogBoy |
| // Sound length control for all channels |
| // Channel 3 has a different length |
| ////////////////////////////////////////////////////////////////////////////////// |
| module sound_length_ctr(clk, rst, clk_length_ctr, start, single, length, enable); |
| parameter WIDTH = 6; // 6bit for Ch124, 8bit for Ch3 |
| input [WIDTH-1:0] length; |
| reg [WIDTH-1:0] length_left = {WIDTH{1'b1}}; // Upcounter from length to 255 |
| length_left <= (length == 0) ? ({WIDTH{1'b1}}) : (length); |
| else if (clk_length_ctr) begin |
| if (length_left != {WIDTH{1'b1}}) |
| length_left <= length_left + 1'b1; |