output reg snd_data_r
);
- reg [7:0] nr50,nr51,nr52;
- reg [3:0] pwmcnt;
- reg [4:0] cntclk;
+ reg [7:0] nr50 = 8'h00, nr51 = 8'h00, nr52 = 8'hF0;
+ reg [3:0] pwmcnt = 4'b0000;
+ reg [4:0] cntclk = 5'b00000;
reg [13:0] lenclk;
wire [3:0] sndout1,sndout2,sndout3,sndout4;
wire [3:0] right_snd =
addr == `ADDR_NR52 ? nr52 : 8'bzzzzzzzz
: 8'bzzzzzzzz;
- always @ (negedge core_clk) begin
+ always @ (posedge core_clk) begin
if(wr) begin
case(addr)
`ADDR_NR50: nr50 <= data;
cntclk <= cntclk + 1;
lenclk <= lenclk + 1;
pwmcnt <= pwmcnt + 1;
- snd_data_l <= (pwmcnt <= left_snd) ? nr50[7] : 0;
- snd_data_r <= (pwmcnt <= right_snd) ? nr50[3] : 0;
+ snd_data_l <= (pwmcnt <= left_snd) ? 1 : 0;
+ snd_data_r <= (pwmcnt <= right_snd) ? 1 : 0;
end
Sound1 s1(