Fix some arbitration bugs
This commit is contained in:
@@ -102,8 +102,8 @@ module mkXBar#(
|
||||
end
|
||||
endfunction
|
||||
// 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
|
||||
Vector#(srcNum, srcIdxT) srcIdxVec = rotateBy(genWith(fromInteger), -unpack(srcRR[dst]));
|
||||
Maybe#(srcIdxT) whichSrc = fmap(select(srcIdxVec), searchIndex(isFromSrc, srcIdxVec)); // the src to select
|
||||
if(whichSrc matches tagged Valid .src) begin
|
||||
// can do enq & deq
|
||||
deqSrcByDst[dst] = whichSrc;
|
||||
|
||||
Reference in New Issue
Block a user