From c348a981fc1d2fc0eb67485fa942c6484ede9846 Mon Sep 17 00:00:00 2001 From: sorgelig Date: Mon, 17 Aug 2020 01:32:17 +0800 Subject: [PATCH] gs: parameter for automatic INT rate calculation. --- rtl/gs.v | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/rtl/gs.v b/rtl/gs.v index bbf09c9..3216f99 100644 --- a/rtl/gs.v +++ b/rtl/gs.v @@ -66,7 +66,7 @@ */ -module gs #(parameter ROMFILE="gs105b.mif") +module gs #(parameter ROMFILE="gs105b.mif", CLK_RATE = 56000000) ( input RESET, input CLK, @@ -119,22 +119,24 @@ T80pa cpu .DI(cpu_di_bus) ); -// INT# +reg ce_37480; always @(posedge CLK) begin - reg [9:0] cnt; - - if(CE) begin - cnt <= cnt + 1'b1; - if (cnt == 746) begin // 37.48kHz - cnt <= 0; - int_n <= 0; - end - end + reg [31:0] sum = 0; + + ce_37480 = 0; + sum = sum + 37480; + if(sum >= CLK_RATE) begin + sum = sum - CLK_RATE; + ce_37480 = 1; + end +end +// INT# +always @(posedge CLK) begin + if (ce_37480) int_n <= 0; if (~cpu_iorq_n & ~cpu_m1_n) int_n <= 1; end - reg bit7; reg bit0; always @(posedge CLK) begin