OSDN Git Service

nmi, jmp rti bug investigation...
authorastoria-d <astoria-d@mail.goo.ne.jp>
Mon, 18 Jul 2016 13:35:32 +0000 (22:35 +0900)
committerastoria-d <astoria-d@mail.goo.ne.jp>
Mon, 18 Jul 2016 13:35:32 +0000 (22:35 +0900)
de1_nes/de1_nes.qsf
de1_nes/de1_nes.vhd
de1_nes/simulation/modelsim/de1_nes_run_msim_gate_vhdl.do
de1_nes/testbench_motones_sim.vhd
doc/mos6502-clock.xlsx
tools/regression-test/regression.asm

index d757398..e668f4b 100644 (file)
@@ -81,21 +81,21 @@ set_global_assignment -name VHDL_FILE mem/ram.vhd
 set_global_assignment -name VHDL_FILE apu/apu.vhd\r
 \r
 #ppu block...\r
-set_global_assignment -name VHDL_FILE ppu/ppu_registers.vhd\r
-set_global_assignment -name VHDL_FILE mem/chr_rom.vhd\r
-set_global_assignment -name VHDL_FILE ppu/ppu.vhd\r
-set_global_assignment -name VHDL_FILE ppu/vga_ppu.vhd\r
+#set_global_assignment -name VHDL_FILE ppu/ppu_registers.vhd\r
+#set_global_assignment -name VHDL_FILE mem/chr_rom.vhd\r
+#set_global_assignment -name VHDL_FILE ppu/ppu.vhd\r
+#set_global_assignment -name VHDL_FILE ppu/vga_ppu.vhd\r
 \r
-#set_global_assignment -name VHDL_FILE "dummy-ppu.vhd"\r
+set_global_assignment -name VHDL_FILE "dummy-ppu.vhd"\r
 \r
 #cpu block...\r
-#set_global_assignment -name VHDL_FILE mem/prg_rom.vhd\r
-#set_global_assignment -name VHDL_FILE cpu/alu.vhd\r
-#set_global_assignment -name VHDL_FILE cpu/cpu_registers.vhd\r
-#set_global_assignment -name VHDL_FILE cpu/decoder.vhd\r
-#set_global_assignment -name VHDL_FILE cpu/mos6502.vhd\r
+set_global_assignment -name VHDL_FILE mem/prg_rom.vhd\r
+set_global_assignment -name VHDL_FILE cpu/alu.vhd\r
+set_global_assignment -name VHDL_FILE cpu/cpu_registers.vhd\r
+set_global_assignment -name VHDL_FILE cpu/decoder.vhd\r
+set_global_assignment -name VHDL_FILE cpu/mos6502.vhd\r
 \r
-set_global_assignment -name VHDL_FILE "dummy-mos6502.vhd"\r
+#set_global_assignment -name VHDL_FILE "dummy-mos6502.vhd"\r
 set_global_assignment -name VHDL_FILE de1_nes.vhd\r
 \r
 #need this config to program active serial mode...\r
index 25f4a2b..5bc4609 100644 (file)
@@ -44,6 +44,7 @@ entity de1_nes is
     signal dbg_disp_nt, dbg_disp_attr : out std_logic_vector (7 downto 0);
     signal dbg_disp_ptn_h, dbg_disp_ptn_l : out std_logic_vector (15 downto 0);
     signal dbg_nmi  : out std_logic;
+    signal dummy_nmi  : in std_logic;\r
 
 --NES instance
         base_clk       : in std_logic;
@@ -476,7 +477,7 @@ begin
 \r
     dbg_nmi <= nmi_n;\r
 \r
---    nmi_n <= dummy_nmi;\r
+    nmi_n <= dummy_nmi;\r
 --    dbg_ppu_ctrl <= dbg_pcl;\r
 --    dbg_ppu_mask <= dbg_pch;\r
 --    dbg_ppu_scrl_x(5) <= rom_ce_n;\r
index 83994c0..8c7a55d 100644 (file)
@@ -117,9 +117,7 @@ wave zoom full
 \r
 #wave zoom range 3339700 ps 5138320 ps\r
 \r
-run 120 us\r
-run 200 us\r
-run 80 us\r
+run 100 us\r
 \r
 ##wave addcursor 907923400 ps\r
 \r
index 3b5d9ce..4e4e6a3 100644 (file)
@@ -43,6 +43,7 @@ architecture stimulus of testbench_motones_sim is
     signal dbg_disp_nt, dbg_disp_attr : out std_logic_vector (7 downto 0);
     signal dbg_disp_ptn_h, dbg_disp_ptn_l : out std_logic_vector (15 downto 0);
     signal dbg_nmi  : out std_logic;
+    signal dummy_nmi  : in std_logic;
     
     
 --NES instance
@@ -63,6 +64,7 @@ architecture stimulus of testbench_motones_sim is
     signal reset_input      : std_logic;
     signal nmi_input      : std_logic;
     signal dbg_nmi      : std_logic;
+    signal dummy_nmi  : std_logic;
 
     signal h_sync_n    : std_logic;
     signal v_sync_n    : std_logic;
@@ -149,6 +151,7 @@ dbg_disp_ptn_h, dbg_disp_ptn_l ,
 --dbg_ppu_addr_we_n,
 --dbg_ppu_clk_cnt          ,
 dbg_nmi,
+dummy_nmi,
     
     base_clk, reset_input, joypad1, joypad2, 
             h_sync_n, v_sync_n, r, g, b, nt_v_mirror);
@@ -177,7 +180,7 @@ dbg_nmi,
 
     --- initiate nmi.
     nmi_p: process
-    constant nmi_wait     : time := 100 us;
+    constant nmi_wait     : time := 90040000 ps;
     constant vblank_time     : time := 60 us;
     variable wait_cnt : integer := 0;
     begin
@@ -193,6 +196,9 @@ dbg_nmi,
             wait for vblank_time / 4;
         end if;
     end process;
+    ---for test nmi...
+    dummy_nmi <= nmi_input;
+    --dummy_nmi <= 'Z';
 
     --set chr rom mirror setting.
     nt_v_mirror <= '1';
index a0836d2..5454b9b 100644 (file)
Binary files a/doc/mos6502-clock.xlsx and b/doc/mos6502-clock.xlsx differ
index 075c92b..cfd04c4 100644 (file)
     jsr init_global\r
     jsr init_ppu\r
 \r
-    lda ad_start_msg\r
-    sta $00\r
-    lda ad_start_msg+1\r
-    sta $01\r
-    jsr print_ln\r
-    jsr print_ln\r
-    jsr print_ln\r
-    jsr print_ln\r
-    jsr print_ln\r
-    jsr print_ln\r
-\r
-    ;;test start...\r
-    jsr addr_test\r
-    jsr single_inst_test\r
-    jsr a2_inst_test\r
-    jsr a3_inst_test\r
-    jsr a4_inst_test\r
-    jsr a5_inst_test\r
-    jsr status_test\r
-    jsr ppu_test\r
-\r
-    jsr pg_border_test\r
-    jsr dma_test\r
+;    lda ad_start_msg\r
+;    sta $00\r
+;    lda ad_start_msg+1\r
+;    sta $01\r
+;    jsr print_ln\r
+;    jsr print_ln\r
+;    jsr print_ln\r
+;    jsr print_ln\r
+;    jsr print_ln\r
+;    jsr print_ln\r
+;\r
+;    ;;test start...\r
+;    jsr addr_test\r
+;    jsr single_inst_test\r
+;    jsr a2_inst_test\r
+;    jsr a3_inst_test\r
+;    jsr a4_inst_test\r
+;    jsr a5_inst_test\r
+;    jsr status_test\r
+;    jsr ppu_test\r
+;\r
+;    jsr pg_border_test\r
+;    jsr dma_test\r
 \r
 ;    jsr simple_dma_test\r
 \r
@@ -607,7 +607,8 @@ y_loop:
 \r
     ;;dma start.\r
     lda #$02\r
-    sta $4014\r
+    ;sta $4014\r
+    sta $4013\r
 \r
     rts\r
 .endproc\r
@@ -3232,7 +3233,7 @@ ad_single_test:
 \r
 ;;ppu test flag.\r
 use_ppu:\r
-    .byte   $01\r
+    .byte   $00\r
 \r
 full_dma_test:\r
     .byte   $01\r