Skip to content

Commit ee1d9a6

Browse files
committed
SSC use a2bus_if CXROM signal
1 parent 2251e8f commit ee1d9a6

File tree

4 files changed

+8
-22
lines changed

4 files changed

+8
-22
lines changed

boards/a2n20v2-SDRAM/hdl/memory/apple_memory.sv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ module apple_memory #(
8585
end else if (!a2bus_if.rw_n && (a2bus_if.phi1_posedge) && (a2bus_if.addr == 16'hC068) && !a2bus_if.m2sel_n) begin
8686
SWITCHES_IIE[1] <= a2bus_if.data[5];
8787
SWITCHES_IIE[2] <= a2bus_if.data[4];
88+
SWITCHES_IIE[3] <= a2bus_if.data[0];
8889
end
8990
end
9091

boards/a2n20v2/hdl/top.sv

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,8 @@ module top #(
427427
.ENABLE(SUPERSERIAL_ENABLE),
428428
.SLOT(SUPERSERIAL_SLOT)
429429
) superserial (
430-
.a2bus_if(a2bus_if), // use system_reset_n
430+
.a2bus_if(a2bus_if),
431+
.a2mem_if(a2mem_if),
431432

432433
.data_o(ssc_d_w),
433434
.rd_en_o(ssc_rd),

hdl/memory/apple_memory.sv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ module apple_memory #(
8181
end else if (!a2bus_if.rw_n && (a2bus_if.phi1_posedge) && (a2bus_if.addr == 16'hC068) && !a2bus_if.m2sel_n) begin
8282
SWITCHES_IIE[1] <= a2bus_if.data[5];
8383
SWITCHES_IIE[2] <= a2bus_if.data[4];
84+
SWITCHES_IIE[3] <= a2bus_if.data[0];
8485
end
8586
end
8687

hdl/ssc/super_serial_card.sv

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ module SuperSerial #(
1818
parameter bit ENABLE = 1'b1
1919
) (
2020
a2bus_if.slave a2bus_if,
21+
a2mem_if.slave a2mem_if,
2122

2223
output [7:0] data_o,
2324
output rd_en_o,
@@ -74,49 +75,31 @@ module SuperSerial #(
7475
Map and Unmap the ROM - setup rom_en_o and ENA_C8S
7576
*/
7677

77-
reg SLOTCXROM;
7878
wire ENA_C8S;
7979
reg C8S2;
8080
wire APPLE_C0;
8181

82-
8382
assign APPLE_C0 = a2bus_if.addr[15:8] == 8'b11000000;
8483

85-
always @(posedge a2bus_if.clk_logic) begin
86-
if (!a2bus_if.system_reset_n) begin
87-
SLOTCXROM <= 1'b0;
88-
end else begin
89-
if (~a2bus_if.rw_n) begin
90-
case ({
91-
APPLE_C0, a2bus_if.addr[7:0]
92-
})
93-
9'h106: SLOTCXROM <= 1'b0;
94-
9'h107: SLOTCXROM <= 1'b1;
95-
endcase
96-
end
97-
end
98-
end
99-
100-
10184
always @(posedge a2bus_if.clk_logic) begin
10285
if (!a2bus_if.system_reset_n) begin
10386
C8S2 <= 1'b0;
10487
end else begin
10588
case (a2bus_if.addr[15:8])
10689
8'hC2: begin
107-
if (!SLOTCXROM) // SSC ROM
90+
if (!a2mem_if.CXROM) // SSC ROM
10891
C8S2 <= 1'b1;
10992
end
11093
8'hCF: begin
111-
if (!SLOTCXROM) begin
94+
if (!a2mem_if.CXROM) begin
11295
if (a2bus_if.addr[7:0] == 8'hFF) C8S2 <= 1'b0;
11396
end
11497
end
11598
endcase
11699
end
117100
end
118101

119-
assign ENA_C8S = {(C8S2 & !SLOTCXROM), a2bus_if.addr[15:11]} == 6'b111001;
102+
assign ENA_C8S = {(C8S2 & !a2mem_if.CXROM), a2bus_if.addr[15:11]} == 6'b111001;
120103
assign rom_en_o = ENA_C8S;
121104
//assign data_o2 = ENA_C8S ? DOA_C8S : SSC;
122105

0 commit comments

Comments
 (0)