From 46b1519cb0a319850f6eddaf3b0321ee4ead8fec Mon Sep 17 00:00:00 2001 From: Jessica Clarke Date: Fri, 28 May 2021 02:57:12 +0100 Subject: [PATCH] mkXBar: Simplify as fallback case handles priority case correctly The first element in the vector will be srcRR[dst], so the special case is unnecessary. --- src_Core/RISCY_OOO/coherence/src/CrossBar.bsv | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src_Core/RISCY_OOO/coherence/src/CrossBar.bsv b/src_Core/RISCY_OOO/coherence/src/CrossBar.bsv index 492c87a..3eae2ae 100644 --- a/src_Core/RISCY_OOO/coherence/src/CrossBar.bsv +++ b/src_Core/RISCY_OOO/coherence/src/CrossBar.bsv @@ -101,16 +101,9 @@ module mkXBar#( return False; end endfunction - Maybe#(srcIdxT) whichSrc = Invalid; // the src to select - if(isFromSrc(srcRR[dst])) begin - // first check the src with priority - whichSrc = Valid (srcRR[dst]); - end - else begin - // otherwise just get one valid src - Vector#(srcNum, srcIdxT) srcIdxVec = rotateBy(genWith(fromInteger), unpack(srcRR[dst])); - whichSrc = searchIndex(isFromSrc, srcIdxVec); - end + // find the first valid source starting at srcRR[dst] + Vector#(srcNum, srcIdxT) srcIdxVec = rotateBy(genWith(fromInteger), unpack(srcRR[dst])); + Maybe#(srcIdxT) whichSrc = searchIndex(isFromSrc, srcIdxVec); // the src to select if(whichSrc matches tagged Valid .src) begin // can do enq & deq deqSrcByDst[dst] = whichSrc;