Stall bus memory when reset is high

This commit is contained in:
Aadi Desai 2020-12-17 07:34:32 -08:00
parent e89087c127
commit 74681e8890
2 changed files with 13 additions and 2 deletions

View file

@ -1,5 +1,6 @@
module mips_cpu_bus_memory( //Avalon memory mapped bus controller (slave) module mips_cpu_bus_memory( //Avalon memory mapped bus controller (slave)
input logic clk, input logic clk,
input logic reset,
input logic[31:0] address, input logic[31:0] address,
input logic write, input logic write,
input logic read, input logic read,
@ -43,10 +44,20 @@ initial begin
for (integer i = 0; i<$size(data_memory); i++) begin //Read out data contents to log for (integer i = 0; i<$size(data_memory); i++) begin //Read out data contents to log
$display("byte +%h: %h", 32'h00001000+i*4, data_memory[i]); $display("byte +%h: %h", 32'h00001000+i*4, data_memory[i]);
end end
waitrequest = 1'b0; // set waitrequest low to begin
readdata = 32'h00000000; // set readdata low to begin
end
always_comb begin
if (reset) begin
waitrequest = 1'b0;
end
end end
always_ff @(posedge read or posedge write) begin always_ff @(posedge read or posedge write) begin
waitrequest <= 1; waitrequest <= 1'b1;
end end
always_ff @(posedge clk) begin always_ff @(posedge clk) begin
@ -86,5 +97,4 @@ always_ff @(posedge clk) begin
end end
end end
endmodule endmodule

View file

@ -10,6 +10,7 @@ logic[3:0] byteenable;
mips_cpu_bus_memory #(INSTR_INIT_FILE, DATA_INIT_FILE) memInst( //Avalon memory mapped bus controller (slave) mips_cpu_bus_memory #(INSTR_INIT_FILE, DATA_INIT_FILE) memInst( //Avalon memory mapped bus controller (slave)
.clk(clk), // clk input to mem .clk(clk), // clk input to mem
.reset(reset), // reset input to stall mem during cpu reset
.address(address), // addr input to mem .address(address), // addr input to mem
.write(write), // write flag input .write(write), // write flag input
.read(read), // read flag input .read(read), // read flag input