Add reset input to memory mapper
Upon reset the memory mapper is automatically disabled, but the mappings are not cleared.
This commit is contained in:
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
module memory_mapper(
|
module memory_mapper(
|
||||||
input clk,
|
input clk,
|
||||||
|
input rst,
|
||||||
|
|
||||||
input rw,
|
input rw,
|
||||||
input cs,
|
input cs,
|
||||||
@@ -29,15 +30,19 @@ logic MM;
|
|||||||
|
|
||||||
|
|
||||||
always_ff @(posedge clk) begin
|
always_ff @(posedge clk) begin
|
||||||
if (MM_cs & ~rw) begin // can't read MM but do you really need too?
|
if (rst) begin
|
||||||
MM = |data_in;
|
MM <= '0;
|
||||||
end
|
end else begin
|
||||||
|
if (MM_cs & ~rw) begin // can't read MM but do you really need too?
|
||||||
|
MM = |data_in;
|
||||||
|
end
|
||||||
|
|
||||||
if (cs & ~rw) begin // write to registers
|
if (cs & ~rw) begin // write to registers
|
||||||
RAM[RS] <= data_in;
|
RAM[RS] <= data_in;
|
||||||
end else if (cs & rw) begin // read registers
|
end else if (cs & rw) begin // read registers
|
||||||
data_out <= RAM[RS];
|
data_out <= RAM[RS];
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ assign mm_address = {mm_MO, cpu_addr[11:0]};
|
|||||||
|
|
||||||
memory_mapper memory_mapper(
|
memory_mapper memory_mapper(
|
||||||
.clk(clk),
|
.clk(clk),
|
||||||
|
.rst(rst),
|
||||||
.rw(cpu_rwb),
|
.rw(cpu_rwb),
|
||||||
.cs(mm_cs1),
|
.cs(mm_cs1),
|
||||||
.MM_cs(mm_cs2),
|
.MM_cs(mm_cs2),
|
||||||
|
|||||||
Reference in New Issue
Block a user