From 63a2324711cda32a405f4c6b2fa8814e177636b8 Mon Sep 17 00:00:00 2001 From: Eugene Lozovoy Date: Sat, 19 Aug 2023 23:06:15 +0300 Subject: [PATCH] gs refactor --- cpld/rtl/top.v | 30 ++++++++++++++++-------------- out/cpld.rev.A1.pof | Bin 16658 -> 16658 bytes 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/cpld/rtl/top.v b/cpld/rtl/top.v index fa40be9..09d813f 100644 --- a/cpld/rtl/top.v +++ b/cpld/rtl/top.v @@ -59,8 +59,9 @@ assign n_rstout = rst_n; // n_iorq are useless in zxevo :( // so we're detecting n_iorq cycle by n_rd/n_wr signal asserted without n_m1/n_mreq -reg ioreq; +reg ioreq, ioreq_prev; always @(negedge clk32) begin + ioreq_prev <= ioreq; // ioreq <= n_iorq == 1'b0 && n_m1 == 1'b1 && n_dos == 1'b1 && n_iodos == 1'b1; ioreq <= n_m1 == 1'b1 && n_mreq == 1'b1 && (n_rd == 1'b0 || n_wr == 1'b0); end @@ -77,11 +78,6 @@ always @(negedge clk32 or negedge rst_n) begin rom_m1_access <= a[15:14] == 2'b00; end -reg n_rd_wr_delayed, n_rd_wr_delayed1; -always @(posedge clk32) begin - n_rd_wr_delayed <= n_rd_wr_delayed1; - n_rd_wr_delayed1 <= n_wr & n_rd; -end /* CONFIGURATION */ @@ -156,6 +152,12 @@ assign midi_clk = clk12; assign gclk = clk16; assign n_grst = n_rstout; +reg gioreq, gioreq_prev; +always @(posedge clk32) begin + gioreq_prev <= gioreq; + gioreq <= n_giorq == 1'b0 && n_gm1 == 1'b1; +end + reg [8:0] g_int_cnt; wire g_int_reload = g_int_cnt[8:6] == 4'b101; always @(posedge clk12 or negedge rst_n) begin @@ -232,26 +234,26 @@ wire [7:0] gs_status = {gs_flag_data, 6'b111111, gs_flag_cmd}; always @(posedge clk32 or negedge rst_n) begin if (!rst_n) gs_flag_data <= 1'b0; - else if (~n_iorq && ~n_rd && n_rd_wr_delayed && port_b3) + else if (ioreq_rd && !ioreq_prev && port_b3) gs_flag_data <= 1'b0; - else if (~n_iorq && ~n_wr && n_rd_wr_delayed && port_b3) + else if (ioreq_wr && !ioreq_prev && port_b3) gs_flag_data <= 1'b1; - else if (~n_giorq && n_gm1 && ga[3:0] == 4'h2) + else if (gioreq && !gioreq_prev && ga[3:0] == 4'h2) gs_flag_data <= 1'b0; - else if (~n_giorq && n_gm1 && ga[3:0] == 4'h3) + else if (gioreq && !gioreq_prev && ga[3:0] == 4'h3) gs_flag_data <= 1'b1; - else if (~n_giorq && n_gm1 && ga[3:0] == 4'hA) + else if (gioreq && !gioreq_prev && ga[3:0] == 4'hA) gs_flag_data <= ~gs_reg00[0]; end always @(posedge clk32 or negedge rst_n) begin if (!rst_n) gs_flag_cmd <= 1'b0; - else if (~n_iorq && ~n_wr && n_rd_wr_delayed && port_bb) + else if (ioreq_wr && !ioreq_prev && port_bb) gs_flag_cmd <= 1'b1; - else if (~n_giorq && n_gm1 && ga[3:0] == 4'h5) + else if (gioreq && !gioreq_prev && ga[3:0] == 4'h5) gs_flag_cmd <= 1'b0; - else if (~n_giorq && n_gm1 && ga[3:0] == 4'hB) + else if (gioreq && !gioreq_prev && ga[3:0] == 4'hB) gs_flag_cmd <= vol3[5]; end diff --git a/out/cpld.rev.A1.pof b/out/cpld.rev.A1.pof index 6be655dea563e9792dd515d023575b35d0f28b59..fb84ed43f8ac9db544fd5478ceb70b47cd058ebf 100644 GIT binary patch literal 16658 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 literal 16658 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 F{uc(D`)dFI