🐛 Fix non-flushing AMOs

This commit is contained in:
Florian Zaruba 2018-09-28 21:41:06 +02:00
parent 082ab36a03
commit 63070d856f
No known key found for this signature in database
GPG key ID: E742FFE8EC38A792

View file

@ -180,7 +180,7 @@ module miss_handler #(
IDLE: begin
// lowest priority are AMOs, wait until everything else is served before going for the AMOs
if (amo_req_i.req) begin
if (amo_req_i.req && !busy_i) begin
// 1. Flush the cache
if (!serve_amo_q) begin
state_d = FLUSH_REQ_STATUS;
@ -203,6 +203,8 @@ module miss_handler #(
// here comes the refill portion of code
if (miss_req_valid[i] && !miss_req_bypass[i]) begin
state_d = MISS;
// we are taking another request so don't take the AMO
serve_amo_d = 1'b0;
// save to MSHR
mshr_d.valid = 1'b1;
mshr_d.we = miss_req_we[i];