From 06ad3a30038ac8ca45dd7b0c34213c0c8335c17c Mon Sep 17 00:00:00 2001 From: Joshua Wise Date: Fri, 4 Apr 2008 03:55:37 -0400 Subject: [PATCH 1/1] First cut at timer --- FPGABoy.ise | Bin 229868 -> 240197 bytes Interrupt.v | 50 ++++++++++++++++++++++++++++++++++++++++ System.v | 54 +++++++++++++++++++++++++++++++++++++++---- Timer.v | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++ rom.asm | 30 ++++++++++++++++++++---- 5 files changed, 191 insertions(+), 8 deletions(-) create mode 100644 Interrupt.v create mode 100644 Timer.v diff --git a/FPGABoy.ise b/FPGABoy.ise index b37a4cd4a6aa14bcf61f188bfef1232cbfa5819a..a4399b8547dc1e3bf92fb75e1b95c105588e7337 100644 GIT binary patch delta 101888 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 B4fFs2 diff --git a/Interrupt.v b/Interrupt.v new file mode 100644 index 0000000..4e3d17d --- /dev/null +++ b/Interrupt.v @@ -0,0 +1,50 @@ +`define ADDR_IF 16'hFF0F +`define ADDR_IE 16'hFFFF + +module Interrupt( + input clk, + input rd, + input wr, + input [15:0] addr, + inout [7:0] data, + input vblank, + input lcdc, + input tovf, + input serial, + input buttons, + output master, + output [7:0] jaddr); + + wire [7:0] iflag = {3'b0,buttons,serial,tovf,lcdc,vblank}; + reg [7:0] imask = 16'hFFFF; + reg [7:0] ihold = 0; + wire [7:0] imasked = ihold & imask; + + assign data = rd ? + (addr == `ADDR_IF) ? ihold : + (addr == `ADDR_IE) ? imask : + 8'bzzzzzzzz : + 8'bzzzzzzzz; + + assign master = (imasked) != 0; + + assign jaddr = imasked[0] ? 8'h40 : + imasked[1] ? 8'h48 : + imasked[2] ? 8'h50 : + imasked[3] ? 8'h58 : + imasked[4] ? 8'h60 : 8'h00; + + always @ (negedge clk) + begin + if (wr) begin + case(addr) + `ADDR_IF : ihold <= iflag | data; + `ADDR_IE : imask <= data; + endcase + + end + else + ihold <= ihold | iflag; + end + +endmodule diff --git a/System.v b/System.v index 8bc14e9..a5fee66 100644 --- a/System.v +++ b/System.v @@ -70,9 +70,7 @@ module CoreTop( output wire [3:0] digits, output wire [7:0] seven); - wire clk; - //IBUFG ibuf (.O(clk), .I(iclk)); - + wire clk; CPUDCM dcm (.CLKIN_IN(xtal), .CLKFX_OUT(clk)); wire [15:0] addr; @@ -111,7 +109,7 @@ module CoreTop( .switches(switches) ); - UART nouart ( + UART nouart ( /* no u */ .clk(clk), .wr(wr), .rd(rd), @@ -126,6 +124,30 @@ module CoreTop( .clk(clk), .wr(wr), .rd(rd)); + + wire irq, tmrirq; + wire [7:0] jaddr; + Timer tmr( + .clk(clk), + .wr(wr), + .rd(rd), + .addr(addr), + .data(data), + .irq(tmrirq)); + + Interrupt intr( + .clk(clk), + .rd(rd), + .wr(wr), + .addr(addr), + .data(data), + .vblank(0), + .lcdc(0), + .tovf(tmrirq), + .serial(0), + .buttons(0), + .master(irq), + .jaddr(jaddr)); endmodule module TestBench(); @@ -168,6 +190,30 @@ module TestBench(); .rd(rd), .serial(serio)); + wire irq, tmrirq; + wire [7:0] jaddr; + Timer tmr( + .clk(clk), + .wr(wr), + .rd(rd), + .addr(addr), + .data(data), + .irq(tmrirq)); + + Interrupt intr( + .clk(clk), + .rd(rd), + .wr(wr), + .addr(addr), + .data(data), + .vblank(0), + .lcdc(0), + .tovf(tmrirq), + .serial(0), + .buttons(0), + .master(irq), + .jaddr(jaddr)); + // Switches sw( // .clk(clk), // .address(addr), diff --git a/Timer.v b/Timer.v new file mode 100644 index 0000000..0481614 --- /dev/null +++ b/Timer.v @@ -0,0 +1,65 @@ +`define ADDR_DIV 16'hFF04 +`define ADDR_TIMA 16'hFF05 +`define ADDR_TMA 16'hFF06 +`define ADDR_TAC 16'hFF07 + +module Timer( + input clk, + input wr, + input rd, + input [15:0] addr, + inout [7:0] data, + output reg irq); + + reg [7:0] tima = 0, tma = 0, tac = 0, div = 0; + reg ovf = 0; + reg [9:0] clkdv; + + wire is_tima = addr == `ADDR_TIMA; + wire is_tma = addr == `ADDR_TMA; + wire is_tac = addr == `ADDR_TAC; + + assign data = rd ? + is_tima ? tima : + is_tma ? tma : + is_tac ? tac : + 8'bzzzzzzzz : + 8'bzzzzzzzz; + + wire cksel = tac[2] ? + (tac[1:0] == 2'b00) ? (clkdv == 10'b0) : + (tac[1:0] == 2'b01) ? (clkdv[3:0] == 4'b0) : + (tac[1:0] == 2'b10) ? (clkdv[5:0] == 6'b0) : + (clkdv[7:0] == 8'b0) : + 0; + + always @ (negedge clk) + begin + if(wr) begin + case(addr) + `ADDR_DIV: div <= 8'b0; + `ADDR_TIMA: tima <= data; + `ADDR_TMA: tma <= data; + `ADDR_TAC: tac <= data; + endcase + end + else begin + if(ovf) begin + tima <= tma; + ovf <= 0; + irq <= 1; + end + else begin + if(cksel) + {ovf,tima} <= {1'b0,tima} + 1; + if(irq) + irq <= 0; + end + + if(clkdv[7:0] == 8'b0) + div <= div + 1; + end + clkdv <= clkdv + 1; + end + +endmodule diff --git a/rom.asm b/rom.asm index 2e98e13..93f8524 100644 --- a/rom.asm +++ b/rom.asm @@ -104,13 +104,20 @@ waitsw: ld hl,waitswstr call puts + ld c, $07 + ld a, $07 ;start timer, 4.096KHz + ld [c], a + ld c, $51 ld a, $00 ld [c],a +.loop1: + push bc + call testa + pop bc ld c, $51 ld b, $0 -.loop1: ld a,[c] cp b jr z,.loop1 @@ -121,7 +128,24 @@ waitsw: ret waitswstr: - db "Diagnostic ROM complete; flip switches to nonzero and then to zero to reset.",$0D,$0A,0 + db "Diagnostic ROM complete; flip switches to nonzero and then to zero to reset. Expect A.",$0D,$0A,0 + +testa: + ld c, $0F + ld a, [c] + ld b, $00 + cp b + 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 + ret ; Core instruction basic acceptance tests. insntest: @@ -232,14 +256,12 @@ insntest: ; Serial port manipulation functions. putc: - push af ld b, 0 ld c, $50 .waitport: ld a,[c] cp b jr nz,.waitport - pop af ld [c],a ret -- 2.43.0