forked from Github_Repos/cvw
Eliminated store after store stall when no cache; simplified divshiftcalc logic.
This commit is contained in:
parent
f83d640068
commit
f08d5b23d5
@ -91,7 +91,7 @@ for test in tests32ic:
|
|||||||
grepstr="All tests ran without failures")
|
grepstr="All tests ran without failures")
|
||||||
configs.append(tc)
|
configs.append(tc)
|
||||||
|
|
||||||
tests32i = ["wally32periph"]
|
tests32i = ["arch32i", "wally32periph"]
|
||||||
for test in tests32i:
|
for test in tests32i:
|
||||||
tc = TestCase(
|
tc = TestCase(
|
||||||
name=test,
|
name=test,
|
||||||
|
@ -77,5 +77,5 @@ module divshiftcalc(
|
|||||||
// *** explain why radix 4 division needs a left shift by 1
|
// *** explain why radix 4 division needs a left shift by 1
|
||||||
// *** can this shift be moved into the shiftcorrection logic?
|
// *** can this shift be moved into the shiftcorrection logic?
|
||||||
assign PreDivShiftIn = {{`NF{1'b0}}, DivQm, {`NORMSHIFTSZ-`DIVb+1-`NF{1'b0}}};
|
assign PreDivShiftIn = {{`NF{1'b0}}, DivQm, {`NORMSHIFTSZ-`DIVb+1-`NF{1'b0}}};
|
||||||
assign DivShiftIn = PreDivShiftIn << (`RADIX==4 & ~Sqrt); // {{`NF{1'b0}}, DivQm[`DIVb-1:0], {`NORMSHIFTSZ-`DIVb+2-`NF{1'b0}}};
|
assign DivShiftIn = PreDivShiftIn << (`RADIX==4 & ~Sqrt);
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -236,5 +236,7 @@ module controller(
|
|||||||
// Stall pipeline at Fetch if a CSR Write or Fence is pending in the subsequent stages
|
// Stall pipeline at Fetch if a CSR Write or Fence is pending in the subsequent stages
|
||||||
assign CSRWriteFencePendingDEM = CSRWriteD | CSRWriteE | CSRWriteM | FencePendingD | FencePendingE | FencePendingM;
|
assign CSRWriteFencePendingDEM = CSRWriteD | CSRWriteE | CSRWriteM | FencePendingD | FencePendingE | FencePendingM;
|
||||||
|
|
||||||
assign StoreStallD = MemRWE[0] & ((|MemRWD) | (|AtomicD));
|
// the synchronous DTIM cannot read immediately after write
|
||||||
|
// a cache cannot read or write immediately after a write
|
||||||
|
assign StoreStallD = MemRWE[0] & ((MemRWD[1] | (MemRWD[0] & `DCACHE)) | (|AtomicD));
|
||||||
endmodule
|
endmodule
|
||||||
|
Loading…
Reference in New Issue
Block a user