From 41fe876e7a0c85bfb7f27f5f25c3627db192f569 Mon Sep 17 00:00:00 2001 From: Ross Thompson Date: Thu, 22 Dec 2022 15:53:06 -0600 Subject: [PATCH] First pass at resolving ifu flush on trap rather than FlushD. --- pipelined/src/cache/cachefsm.sv | 2 +- pipelined/src/ebu/buscachefsm.sv | 2 +- pipelined/src/ifu/.ifu.sv.swp | Bin 20475 -> 0 bytes pipelined/src/ifu/ifu.sv | 6 +++--- pipelined/src/ifu/spillsupport.sv | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 pipelined/src/ifu/.ifu.sv.swp diff --git a/pipelined/src/cache/cachefsm.sv b/pipelined/src/cache/cachefsm.sv index a8ba7856..ed8cf606 100644 --- a/pipelined/src/cache/cachefsm.sv +++ b/pipelined/src/cache/cachefsm.sv @@ -142,7 +142,7 @@ module cachefsm // com back to CPU assign CacheCommitted = CurrState != STATE_READY; - assign CacheStall = (CurrState == STATE_READY & (FlushCache | AnyMiss)) | + assign CacheStall = (CurrState == STATE_READY & (FlushCache | AnyMiss) & ~FlushStage) | (CurrState == STATE_FETCH) | (CurrState == STATE_WRITEBACK) | (CurrState == STATE_WRITE_LINE & ~(StoreAMO)) | // this cycle writes the sram, must keep stalling so the next cycle can read the next hit/miss unless its a write. diff --git a/pipelined/src/ebu/buscachefsm.sv b/pipelined/src/ebu/buscachefsm.sv index 7d3d2bee..79d22b63 100644 --- a/pipelined/src/ebu/buscachefsm.sv +++ b/pipelined/src/ebu/buscachefsm.sv @@ -128,7 +128,7 @@ module buscachefsm #(parameter integer BeatCountThreshold, assign CaptureEn = (CurrState == DATA_PHASE & BusRW[1]) | (CurrState == CACHE_FETCH & HREADY); assign CacheAccess = CurrState == CACHE_FETCH | CurrState == CACHE_WRITEBACK; - assign BusStall = (CurrState == ADR_PHASE & (|BusRW | |CacheBusRW)) | + assign BusStall = (CurrState == ADR_PHASE & (|BusRW | |CacheBusRW) & ~Flush) | //(CurrState == DATA_PHASE & ~BusRW[0]) | // replace the next line with this. Fails uart test but i think it's a test problem not a hardware problem. (CurrState == DATA_PHASE) | (CurrState == CACHE_FETCH & ~HREADY) | diff --git a/pipelined/src/ifu/.ifu.sv.swp b/pipelined/src/ifu/.ifu.sv.swp deleted file mode 100644 index 5d26e0c7169ac4accd76da2041e54e0c893baf6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20475 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