set_global_assignment -name VHDL_FILE chip_selector.vhd\r
\r
#ppu\r
-set_global_assignment -name VHDL_FILE mem/chr_rom.vhd\r
-set_global_assignment -name VHDL_FILE ppu/render.vhd\r
-set_global_assignment -name VHDL_FILE ppu/ppu.vhd\r
-#set_global_assignment -name VHDL_FILE dummy-ppu.vhd\r
+#set_global_assignment -name VHDL_FILE mem/chr_rom.vhd\r
+#set_global_assignment -name VHDL_FILE ppu/render.vhd\r
+#set_global_assignment -name VHDL_FILE ppu/ppu.vhd\r
+set_global_assignment -name VHDL_FILE dummy-ppu.vhd\r
\r
#cpu\r
set_global_assignment -name VHDL_FILE mem/prg_rom.vhd\r
pi_oe_n : in std_logic;\r
pi_we_n : in std_logic;\r
pi_cpu_addr : in std_logic_vector (2 downto 0);
- pio_cpu_d : inout std_logic_vector (7 downto 0);
+ pio_cpu_d : inout std_logic_vector (7 downto 0);\r
+ po_vblank_n : out std_logic;\r
po_v_ce_n : out std_logic;\r
po_v_rd_n : out std_logic;\r
wr_we_n,\r
wr_addr(2 downto 0), \r
wr_d_io,\r
+ wr_nmi_n,\r
\r
wr_v_ce_n,\r
wr_v_rd_n,\r
\r
wr_rdy <= '1';\r
wr_irq_n <= '1';\r
- wr_nmi_n <= '1';\r
\r
po_dbg_cnt <= reg_dbg_cnt;\r
deb_cnt_p : process (pi_rst_n, pi_base_clk)\r
pi_we_n : in std_logic;\r
pi_cpu_addr : in std_logic_vector (2 downto 0);\r
pio_cpu_d : inout std_logic_vector (7 downto 0);\r
+ po_vblank_n : out std_logic;\r
\r
po_v_ce_n : out std_logic;\r
po_v_rd_n : out std_logic;\r
architecture rtl of ppu is\r
begin\r
pio_cpu_d <= (others => 'Z');\r
+ --po_vblank_n <= '1';\r
\r
po_v_ce_n <= 'Z';\r
po_v_rd_n <= 'Z';\r
po_ppu_mask <= (others => 'Z');\r
po_ppu_scroll_x <= (others => 'Z');\r
po_ppu_scroll_y <= (others => 'Z');\r
+\r
+ --- initiate nmi.\r
+ nmi_p: process\r
+ constant nmi_wait : time := 880us;\r
+ constant vblank_time : time := 60 us;\r
+ variable wait_cnt : integer := 0;\r
+ begin\r
+\r
+ if (wait_cnt = 0) then\r
+ po_vblank_n <= '1';\r
+ wait for nmi_wait;\r
+ wait_cnt := wait_cnt + 1;\r
+ else\r
+ po_vblank_n <= '0';\r
+ wait for vblank_time ;\r
+ po_vblank_n <= '1';\r
+ wait for vblank_time / 4;\r
+ end if;\r
+ end process;\r
+\r
end rtl;\r
\r
\r
\r
add wave -label dbg_cnt -radix hex sim:/testbench_motones_sim/sim_board/po_dbg_cnt;\r
add wave -label rst_n sim:/testbench_motones_sim/sim_board/pi_rst_n;\r
+add wave -label wr_nmi_n sim:/testbench_motones_sim/sim_board/wr_nmi_n;\r
#add wave -label base_clk sim:/testbench_motones_sim/sim_board/pi_base_clk;\r
add wave -label wr_cpu_en sim:/testbench_motones_sim/sim_board/wr_cpu_en;\r
add wave -label wr_cpu_en sim:/testbench_motones_sim/sim_board/wr_cpu_en(0);\r
add wave -label reg_sp -radix hex sim:/testbench_motones_sim/sim_board/cpu_inst/reg_sp;\r
\r
add wave -divider internal_reg\r
-#add wave -label reg_main_cur_state sim:/testbench_motones_sim/sim_board/cpu_inst/reg_main_state;\r
+add wave -label reg_main_cur_state sim:/testbench_motones_sim/sim_board/cpu_inst/reg_main_state;\r
#add wave -label reg_sub_cur_state sim:/testbench_motones_sim/sim_board/cpu_inst/reg_sub_state;\r
add wave -label reg_pc_l -radix hex sim:/testbench_motones_sim/sim_board/cpu_inst/reg_pc_l;\r
add wave -label reg_pc_h -radix hex sim:/testbench_motones_sim/sim_board/cpu_inst/reg_pc_h;\r
run 25 us\r
wave zoom full\r
\r
-run 4923 us\r
+run 880 us\r
\r
\r
##################################### PPU part.... ###########################################\r
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
+; 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
-; ;;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
+; jsr pg_border_test\r
+; jsr dma_test\r
+;\r
+; jsr simple_dma_test\r
\r
.endproc\r
\r