diff options
| author | Alejandro Soto <alejandro@34project.org> | 2022-11-09 09:25:48 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2022-11-09 09:25:48 -0600 |
| commit | 5d798386c3b1c1dc45a2fbc382c9367ccc27c524 (patch) | |
| tree | a04fff74505af30c8044f80f523fd887331e6234 /rtl/core/mmu/mmu.sv | |
| parent | 65590be80332d132d7037bfe3bb19e5d6e5bcd7b (diff) | |
Implement reset
Diffstat (limited to 'rtl/core/mmu/mmu.sv')
| -rw-r--r-- | rtl/core/mmu/mmu.sv | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/rtl/core/mmu/mmu.sv b/rtl/core/mmu/mmu.sv index bf37cb0..185fb6b 100644 --- a/rtl/core/mmu/mmu.sv +++ b/rtl/core/mmu/mmu.sv @@ -1,6 +1,7 @@ module core_mmu ( input logic clk, + rst_n, input logic bus_ready, input word bus_data_rd, @@ -80,35 +81,34 @@ module core_mmu end end - always_ff @(posedge clk) begin - master <= next_master; - active <= bus_start || (active && !bus_ready); - - if(hold_free) - unique case(next_master) - INSN: begin - hold_start <= data_start; - hold_addr <= data_addr; - hold_write <= data_write; - hold_data_wr <= data_data_wr; - end - - DATA: begin - hold_start <= insn_start; - hold_addr <= insn_addr; - hold_write <= 0; - end - endcase - end - - initial begin - master = INSN; - active = 0; - - hold_addr = 30'b0; - hold_start = 0; - hold_write = 0; - hold_data_wr = 0; - end + always_ff @(posedge clk or negedge rst_n) + if(!rst_n) begin + master <= INSN; + active <= 0; + + hold_addr <= 30'b0; + hold_start <= 0; + hold_write <= 0; + hold_data_wr <= 0; + end else begin + master <= next_master; + active <= bus_start || (active && !bus_ready); + + if(hold_free) + unique case(next_master) + INSN: begin + hold_start <= data_start; + hold_addr <= data_addr; + hold_write <= data_write; + hold_data_wr <= data_data_wr; + end + + DATA: begin + hold_start <= insn_start; + hold_addr <= insn_addr; + hold_write <= 0; + end + endcase + end endmodule |
