From 62940da0dd1b60db11e9861d6dd55a43c5756114 Mon Sep 17 00:00:00 2001 From: Joshua Wise <joshua@rebirth.joshuawise.com> Date: Fri, 4 Apr 2008 04:23:12 -0400 Subject: [PATCH 1/1] Timer works. --- FPGABoy.ise | Bin 240197 -> 240410 bytes GBZ80Core.v | 4 ++-- Interrupt.v | 8 ++++---- System.v | 2 +- Timer.v | 4 ++-- rom.asm | 19 +++++++++---------- 6 files changed, 18 insertions(+), 19 deletions(-) diff --git a/FPGABoy.ise b/FPGABoy.ise index a4399b8547dc1e3bf92fb75e1b95c105588e7337..227845500b0c7f94cfbe06aa62cec21e47c4f84e 100644 GIT binary patch delta 33973 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 SOpCe89-LR@^~Muq^1lEfJf#=_ delta 33406 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 diff --git a/GBZ80Core.v b/GBZ80Core.v index 96e4dcd..095d9e8 100644 --- a/GBZ80Core.v +++ b/GBZ80Core.v @@ -87,9 +87,9 @@ module GBZ80Core( input clk, - output reg [15:0] busaddress, /* BUS_* is latched on STATE_FETCH. */ + output reg [15:0] busaddress = 0, /* BUS_* is latched on STATE_FETCH. */ inout [7:0] busdata, - output reg buswr, output reg busrd); + output reg buswr = 0, output reg busrd = 0); reg [1:0] state = 0; /* State within this bus cycle (see STATE_*). */ reg [2:0] cycle = 0; /* Cycle for instructions. */ diff --git a/Interrupt.v b/Interrupt.v index 4e3d17d..1450b2c 100644 --- a/Interrupt.v +++ b/Interrupt.v @@ -17,7 +17,7 @@ module Interrupt( wire [7:0] iflag = {3'b0,buttons,serial,tovf,lcdc,vblank}; reg [7:0] imask = 16'hFFFF; - reg [7:0] ihold = 0; + reg [7:0] ihold = 8'b0; wire [7:0] imasked = ihold & imask; assign data = rd ? @@ -34,12 +34,12 @@ module Interrupt( imasked[3] ? 8'h58 : imasked[4] ? 8'h60 : 8'h00; - always @ (negedge clk) + always @(negedge clk) begin - if (wr) begin + if (wr && (addr == `ADDR_IF || addr == `ADDR_IE)) begin case(addr) `ADDR_IF : ihold <= iflag | data; - `ADDR_IE : imask <= data; + `ADDR_IE : begin imask <= data; ihold <= ihold | iflag; end endcase end diff --git a/System.v b/System.v index a5fee66..8b8d613 100644 --- a/System.v +++ b/System.v @@ -151,7 +151,7 @@ module CoreTop( endmodule module TestBench(); - reg clk = 0; + reg clk = 1; wire [15:0] addr; wire [7:0] data; wire wr, rd; diff --git a/Timer.v b/Timer.v index 0481614..53f392d 100644 --- a/Timer.v +++ b/Timer.v @@ -9,11 +9,11 @@ module Timer( input rd, input [15:0] addr, inout [7:0] data, - output reg irq); + output reg irq = 0); reg [7:0] tima = 0, tma = 0, tac = 0, div = 0; reg ovf = 0; - reg [9:0] clkdv; + reg [9:0] clkdv = 0; wire is_tima = addr == `ADDR_TIMA; wire is_tma = addr == `ADDR_TMA; diff --git a/rom.asm b/rom.asm index 93f8524..5527ea8 100644 --- a/rom.asm +++ b/rom.asm @@ -4,7 +4,7 @@ main: ld c, $51 ; Note that we are alive. ld a, $FF ld [c],a - + ld sp, $DFFF ld hl, signon @@ -105,7 +105,7 @@ waitsw: call puts ld c, $07 - ld a, $07 ;start timer, 4.096KHz + ld a, $04 ;start timer, 4.096KHz ld [c], a ld c, $51 @@ -138,13 +138,8 @@ testa: ret z xor a ld [c], a - ld hl, $D000 - ld c, [hl] - inc bc - ld [hl], c - ld a, c - ld c, $50 - ld [c], a + ld a, $41 + call putc ret ; Core instruction basic acceptance tests. @@ -258,10 +253,12 @@ insntest: putc: ld b, 0 ld c, $50 + push af .waitport: ld a,[c] cp b jr nz,.waitport + pop af ld [c],a ret @@ -269,6 +266,8 @@ puts: ld a, [hli] ld b, $00 cp b - ret z + jr z, .done call putc jr puts +.done: + ret -- 2.43.0