]> git.zerfleddert.de Git - fpga-games/blobdiff - galaxian/src/roms.v
cleanup rom usage
[fpga-games] / galaxian / src / roms.v
index 2ca0d07c7e0c4c96fd81aa991158a6ad04b9dc6d..84c5a8cea6e352cd40645e13475ec1edf6a952a2 100644 (file)
@@ -1,10 +1,10 @@
 module galaxian_roms(
-I_CLK_12M,
+I_ROM_CLK,
 I_ADDR,
 O_DATA
 );
 
-input I_CLK_12M;
+input I_ROM_CLK;
 input [18:0]I_ADDR;
 output [7:0]O_DATA;
 
@@ -12,7 +12,7 @@ output [7:0]O_DATA;
 wire [7:0]U_ROM_D;
 
 GALAXIAN_U U_ROM(
-.CLK(I_CLK_12M),
+.CLK(I_ROM_CLK),
 .ADDR(I_ADDR[10:0]),
 .DATA(U_ROM_D),
 .ENA(1'b1)
@@ -21,7 +21,7 @@ GALAXIAN_U U_ROM(
 wire [7:0]V_ROM_D;
 
 GALAXIAN_V V_ROM(
-.CLK(I_CLK_12M),
+.CLK(I_ROM_CLK),
 .ADDR(I_ADDR[10:0]),
 .DATA(V_ROM_D),
 .ENA(1'b1)
@@ -30,7 +30,7 @@ GALAXIAN_V V_ROM(
 wire [7:0]W_ROM_D;
 
 GALAXIAN_W W_ROM(
-.CLK(I_CLK_12M),
+.CLK(I_ROM_CLK),
 .ADDR(I_ADDR[10:0]),
 .DATA(W_ROM_D),
 .ENA(1'b1)
@@ -39,7 +39,7 @@ GALAXIAN_W W_ROM(
 wire [7:0]Y_ROM_D;
 
 GALAXIAN_Y Y_ROM(
-.CLK(I_CLK_12M),
+.CLK(I_ROM_CLK),
 .ADDR(I_ADDR[10:0]),
 .DATA(Y_ROM_D),
 .ENA(1'b1)
@@ -49,32 +49,12 @@ GALAXIAN_Y Y_ROM(
 wire [7:0]L_ROM_D;
 
 GALAXIAN_7L L_ROM(
-.CLK(I_CLK_12M),
+.CLK(I_ROM_CLK),
 .ADDR(I_ADDR[10:0]),
 .DATA(L_ROM_D),
 .ENA(1'b1)
 );
 
-//1K VID-Rom
-wire [7:0]K_ROM_D;
-
-GALAXIAN_1K K_ROM(
-.CLK(I_CLK_12M),
-.ADDR(I_ADDR[10:0]),
-.DATA(K_ROM_D),
-.ENA(1'b1)
-);
-
-//1H VID-Rom
-wire [7:0]H_ROM_D;
-
-GALAXIAN_1H H_ROM(
-.CLK(I_CLK_12M),
-.ADDR(I_ADDR[10:0]),
-.DATA(H_ROM_D),
-.ENA(1'b1)
-);
-
 reg [7:0]DATA_OUT;
 
 //    address map
@@ -87,7 +67,7 @@ reg [7:0]DATA_OUT;
 // 0x04000 - 0x047FF       1k.bin           VID-ROM
 // 0x05000 - 0x057FF       1h.bin           VID-ROM
 // 0x10000 - 0x3FFFF       mc_wav_2.bin     Sound(Wav)Data
-always@(I_ADDR or U_ROM_D or V_ROM_D or W_ROM_D or Y_ROM_D or L_ROM_D or K_ROM_D or H_ROM_D)
+always@(posedge I_ROM_CLK)
 begin
        if (I_ADDR <= 18'h7ff) begin
                //u
@@ -109,20 +89,8 @@ begin
                //7l
                DATA_OUT <= L_ROM_D;
        end
-       else if (I_ADDR >= 18'h4000 && I_ADDR <= 18'h47ff) begin
-               //1k
-               DATA_OUT <= K_ROM_D;
-       end
-       else if (I_ADDR >= 18'h5000 && I_ADDR <= 18'h57ff) begin
-               //1h
-               DATA_OUT <= H_ROM_D;
-       end
-       else if (I_ADDR >= 18'h10000 && I_ADDR <= 18'h3fff) begin
-               //sound
-               DATA_OUT <= 8'h00;
-       end
        else begin
-               DATA_OUT <= 8'h00;
+               DATA_OUT <= DATA_OUT;
        end
 end
 
Impressum, Datenschutz