cleanup rom usage
authorMichael Gernoth <michael@gernoth.net>
Thu, 1 May 2008 18:21:00 +0000 (20:21 +0200)
committerMichael Gernoth <michael@gernoth.net>
Thu, 1 May 2008 18:21:00 +0000 (20:21 +0200)
galaxian/galaxian.ucf
galaxian/src/mc_adec.v
galaxian/src/mc_top.v
galaxian/src/mc_video.v
galaxian/src/roms.v

index 04fc6912f5a3dc61b80f1e359257bf6d5bd2fd62..b7c2def84d81cc956532ee0dddf41acc08519030 100644 (file)
@@ -20,38 +20,6 @@ NET "I_PSW<6>" LOC = "J13" | IOSTANDARD = LVTTL | PULLDOWN; #s7 - c1
 NET "I_PSW<7>" LOC = "J15" | IOSTANDARD = LVTTL | PULLDOWN; #s6 - s2
 NET "I_PSW<8>" LOC = "J17" | IOSTANDARD = LVTTL | PULLDOWN; #s5 - c2
 #-------------------------------------------
-#--------- EEPROM I/F ----------------------
-#NET "I_ROM_DB<0>" LOC = "P70";
-#NET "I_ROM_DB<1>" LOC = "P68";
-#NET "I_ROM_DB<2>" LOC = "P63";
-#NET "I_ROM_DB<3>" LOC = "P58";
-#NET "I_ROM_DB<4>" LOC = "P60";
-#NET "I_ROM_DB<5>" LOC = "P62";
-#NET "I_ROM_DB<6>" LOC = "P57";
-#NET "I_ROM_DB<7>" LOC = "P59";
-#NET "O_ROM_AB<0>" LOC = "P71";
-#NET "O_ROM_AB<1>" LOC = "P74";
-#NET "O_ROM_AB<2>" LOC = "P73";
-#NET "O_ROM_AB<3>" LOC = "P75";
-#NET "O_ROM_AB<4>" LOC = "P81";
-#NET "O_ROM_AB<5>" LOC = "P82";
-#NET "O_ROM_AB<6>" LOC = "P84";
-#NET "O_ROM_AB<7>" LOC = "P86";
-#NET "O_ROM_AB<8>" LOC = "P89";
-#NET "O_ROM_AB<9>" LOC = "P87";
-#NET "O_ROM_AB<10>" LOC = "P64";
-#NET "O_ROM_AB<11>" LOC = "P83";
-#NET "O_ROM_AB<12>" LOC = "P88";
-#NET "O_ROM_AB<13>" LOC = "P95";
-#NET "O_ROM_AB<14>" LOC = "P97";
-#NET "O_ROM_AB<15>" LOC = "P93";
-#NET "O_ROM_AB<16>" LOC = "P96";
-#NET "O_ROM_AB<17>" LOC = "P98";
-#NET "O_ROM_AB<18>" LOC = "P94";
-#NET "O_ROM_CSn" LOC = "P61";
-#NET "O_ROM_OEn" LOC = "P69";
-#NET "O_ROM_WEn" LOC = "P100";
-#-------------------------------------------
 #--------- SOUND I/F -----------------------
 NET "O_SOUND_OUT_L" LOC = "AA22" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8;
 NET "O_SOUND_OUT_R" LOC = "V19" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8;
index 75f3b28e021307998d4059bea73c61852b480299..65525ba1e207f48c7b5a5da12be72cf7715446d1 100644 (file)
@@ -271,4 +271,4 @@ assign O_H_FLIP      = W_9N_Q[6];                //
 assign O_V_FLIP      = W_9N_Q[7];                // \r
 \r
 \r
-endmodule
\ No newline at end of file
+endmodule\r
index 08d25de4ef664de7ede434cb4ca714faff45c9d7..99a4a6aa911479a125de90de30e64aa00dccc672 100644 (file)
@@ -33,13 +33,6 @@ psTXD,
 psRXD,\r
 `endif\r
 \r
-//    ROM IF\r
-//O_ROM_AB,\r
-//I_ROM_DB,\r
-//O_ROM_OEn,\r
-//O_ROM_CSn,\r
-//O_ROM_WEn,\r
-\r
 //    INPORT SW IF\r
 I_PSW,\r
 \r
@@ -80,13 +73,6 @@ input        psRXD;
 output psTXD,psCLK,psSEL;\r
 `endif\r
 \r
-//    ROM IF\r
-//output [18:0]O_ROM_AB;\r
-//input  [7:0]I_ROM_DB;\r
-//output O_ROM_OEn;\r
-//output O_ROM_CSn;\r
-//output O_ROM_WEn;\r
-\r
 //    INPORT SW IF\r
 input  [8:0]I_PSW;\r
 \r
@@ -107,13 +93,11 @@ wire   I_CLK_18432M;
 wire   W_CLK_12M,WB_CLK_12M;\r
 wire   W_CLK_6M,WB_CLK_6M;\r
 wire   W_STARS_CLK;\r
-wire   W_ROM_CLK;\r
 \r
 mc_dcm clockgen(\r
 .CLKIN_IN(I_CLK_125M),\r
 .RST_IN(! W_RESETn),\r
-.CLKFX_OUT(I_CLK_18432M),\r
-.CLK0_OUT(W_ROM_CLK)\r
+.CLKFX_OUT(I_CLK_18432M)\r
 );\r
 \r
 //------ H&V COUNTER -------------------------\r
@@ -412,71 +396,23 @@ mc_inport MC_INPORT(
 //-----------------------------------------------------------------------------\r
 //------- ROM           -------------------------------------------------------\r
 reg    [18:0]ROM_A;\r
-wire   [10:0]W_OBJ_ROM_A;\r
-reg    [7:0]W_OBJ_ROM_A_D;\r
-reg    [7:0]W_OBJ_ROM_B_D;\r
 \r
 wire   [18:0]W_WAV_A0,W_WAV_A1,W_WAV_A2;\r
 reg    [7:0]W_WAV_D0,W_WAV_D1,W_WAV_D2;\r
 \r
-wire   [7:0]ROM_D; // = I_ROM_DB;\r
-//assign O_ROM_AB  = ROM_A;\r
-\r
-//assign O_ROM_OEn = 1'b0;\r
-//assign O_ROM_CSn = 1'b0;\r
-//assign O_ROM_WEn = 1'b1;\r
+wire   [7:0]ROM_D;\r
 \r
 galaxian_roms ROMS(\r
-.I_ROM_CLK(W_ROM_CLK),\r
-.I_ADDR(ROM_A),\r
+.I_ROM_CLK(W_CLK_12M),\r
+.I_ADDR({3'h0,W_A[15:0]}),\r
 .O_DATA(ROM_D)\r
 );\r
 \r
-\r
-reg    [1:0]clk_d;\r
-reg    [4:0]seq;\r
-always @(posedge I_CLK_18432M)\r
+always@(posedge W_CLK_12M)\r
 begin\r
-  // 24 phase generator\r
-   clk_d[0] <= W_H_CNT[0] & W_H_CNT[1] & W_H_CNT[2];\r
-   clk_d[1] <= clk_d[0];\r
-   seq <= (~clk_d[1] & clk_d[0]) ? 0 : seq+1;\r
-   case(seq)\r
-      0:begin\r
-        ROM_A <= W_WAV_A0;\r
-        W_CPU_ROM_DO <= ROM_D;\r
-        end\r
-      2:begin\r
-        ROM_A <= W_WAV_A1;\r
-        W_WAV_D0 <= ROM_D;\r
-        end\r
-      4:begin\r
-        ROM_A <= {3'h0,W_A[15:0]};\r
-        W_WAV_D1 <= ROM_D;\r
-        end\r
-      6:begin\r
-        ROM_A <= W_WAV_A2;\r
-        W_CPU_ROM_DO <= ROM_D;\r
-        end\r
-      8:W_WAV_D2 <= ROM_D;\r
-     10:ROM_A <= {3'h0,W_A[15:0]};\r
-     12:W_CPU_ROM_DO <= ROM_D;\r
-     14:ROM_A <= {3'h0,W_A[15:0]};\r
-     16:begin\r
-        ROM_A <= {3'h0,4'h4,1'b0,W_OBJ_ROM_A};\r
-        W_CPU_ROM_DO <= ROM_D;\r
-        end\r
-     18:begin\r
-        ROM_A <= {3'h0,4'h5,1'b0,W_OBJ_ROM_A};\r
-        W_OBJ_ROM_A_D <= ROM_D;\r
-        end\r
-     20:begin\r
-        ROM_A <= {3'h0,W_A[15:0]};\r
-        W_OBJ_ROM_B_D <= ROM_D;\r
-        end\r
-     default:;\r
-   endcase\r
+       W_CPU_ROM_DO <= ROM_D;\r
 end\r
+\r
 //-----------------------------------------------------------------------------\r
 \r
 wire   W_V_BL2n;\r
@@ -527,10 +463,6 @@ mc_video MC_VID(
 .I_VID_RAM_RDn(W_VID_RAM_RDn),\r
 .I_VID_RAM_WRn(W_VID_RAM_WRn),\r
 \r
-.O_OBJ_ROM_A(W_OBJ_ROM_A),\r
-.I_OBJ_ROM_A_D(W_OBJ_ROM_A_D),\r
-.I_OBJ_ROM_B_D(W_OBJ_ROM_B_D),\r
-\r
 .O_C_BLnX(W_C_BLnX),\r
 .O_8HF(W_8HF),\r
 .O_256HnX(W_256HnX),\r
index c93b557cc3e1a6385d9078dc1fab460ae2c46f04..c184923475107e739e9da4a4ad66d58fcc862f0a 100644 (file)
@@ -45,10 +45,6 @@ I_OBJ_RAM_WRn,
 I_VID_RAM_RDn,\r
 I_VID_RAM_WRn,\r
 \r
-O_OBJ_ROM_A,\r
-I_OBJ_ROM_A_D,\r
-I_OBJ_ROM_B_D,\r
-\r
 O_C_BLnX,\r
 O_8HF,\r
 O_256HnX,\r
@@ -80,10 +76,6 @@ input  I_OBJ_RAM_WRn;
 input  I_VID_RAM_RDn;\r
 input  I_VID_RAM_WRn;\r
 \r
-output [10:0]O_OBJ_ROM_A;\r
-input  [7:0]I_OBJ_ROM_A_D;\r
-input  [7:0]I_OBJ_ROM_B_D;\r
-\r
 output O_C_BLnX;\r
 output O_8HF;\r
 output O_256HnX;\r
@@ -243,10 +235,27 @@ wire   [7:0]W_OBJ_ROM_AB = {W_OBJ_D[5:0],W_1M[3],W_OBJ_D[6]^I_H_CNT[3]};
 \r
 wire   [7:0]W_OBJ_ROM_A = I_H_CNT[8] ? W_OBJ_ROM_AB: W_VID_RAM_DOB;\r
 \r
-assign O_OBJ_ROM_A = {W_OBJ_ROM_A,W_1M[2:0]};\r
+wire   [10:0]W_O_OBJ_ROM_A = {W_OBJ_ROM_A,W_1M[2:0]};\r
+\r
+wire   [7:0]W_1K_D;\r
+wire   [7:0]W_1H_D;\r
+\r
+//1K VID-Rom\r
+GALAXIAN_1K K_ROM(\r
+.CLK(I_CLK_12M),\r
+.ADDR(W_O_OBJ_ROM_A),\r
+.DATA(W_1K_D),\r
+.ENA(1'b1)\r
+);\r
+\r
+//1H VID-Rom\r
+GALAXIAN_1H H_ROM(\r
+.CLK(I_CLK_12M),\r
+.ADDR(W_O_OBJ_ROM_A),\r
+.DATA(W_1H_D),\r
+.ENA(1'b1)\r
+);\r
 \r
-wire   [7:0]W_1K_D = I_OBJ_ROM_A_D;\r
-wire   [7:0]W_1H_D = I_OBJ_ROM_B_D;\r
 \r
 //---------------------------------------------------------------------------------\r
 wire   W_2L_Qa,W_2K_Qd;\r
index 8498a35acdf07b301425f03a5da16c95710877ad..84c5a8cea6e352cd40645e13475ec1edf6a952a2 100644 (file)
@@ -55,26 +55,6 @@ GALAXIAN_7L L_ROM(
 .ENA(1'b1)
 );
 
-//1K VID-Rom
-wire [7:0]K_ROM_D;
-
-GALAXIAN_1K K_ROM(
-.CLK(I_ROM_CLK),
-.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_ROM_CLK),
-.ADDR(I_ADDR[10:0]),
-.DATA(H_ROM_D),
-.ENA(1'b1)
-);
-
 reg [7:0]DATA_OUT;
 
 //    address map
@@ -109,18 +89,6 @@ 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 <= DATA_OUT;
        end
Impressum, Datenschutz