]> Joshua Wise's Git repositories - fpgaboy.git/blobdiff - Sound2.v
IP
[fpgaboy.git] / Sound2.v
index cf8e83a72feb2952f18339bd82841db024d049da..ef382632d6867b9b3a46eaa00f40a23709792092 100644 (file)
--- a/Sound2.v
+++ b/Sound2.v
@@ -24,15 +24,20 @@ module Sound2(
        reg [3:0] snd_out = 0;
 
        assign snd_data = en ? snd_out : 0;
        reg [3:0] snd_out = 0;
 
        assign snd_data = en ? snd_out : 0;
+       
+       reg rdlatch;
+       reg [15:0] addrlatch;
 
 
-       assign data = rd ?
-                        addr == `ADDR_NR21 ? nr21 :
-                        addr == `ADDR_NR22 ? nr22 :
-                        addr == `ADDR_NR23 ? nr23 :
-                        addr == `ADDR_NR24 ? nr24 : 8'bzzzzzzzz
+       assign data = rdlatch ?
+                        addrlatch == `ADDR_NR21 ? nr21 :
+                        addrlatch == `ADDR_NR22 ? nr22 :
+                        addrlatch == `ADDR_NR23 ? nr23 :
+                        addrlatch == `ADDR_NR24 ? nr24 : 8'bzzzzzzzz
                      : 8'bzzzzzzzz;
 
        always @ (posedge core_clk) begin
                      : 8'bzzzzzzzz;
 
        always @ (posedge core_clk) begin
+               rdlatch <= rd;
+               addrlatch <= addr;
                if(en && wr) begin
                        case(addr)
                        `ADDR_NR21: nr21 <= data;
                if(en && wr) begin
                        case(addr)
                        `ADDR_NR21: nr21 <= data;
This page took 0.027042 seconds and 4 git commands to generate.