mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
cacheway cleanup
This commit is contained in:
parent
c22f7eb11c
commit
0fbc32204c
18
pipelined/src/cache/cacheway.sv
vendored
18
pipelined/src/cache/cacheway.sv
vendored
@ -117,14 +117,6 @@ module cacheway #(parameter NUMLINES=512, parameter LINELEN = 256, TAGLEN = 26,
|
||||
else if (SetValidD & (WriteEnableD | VDWriteEnableD)) ValidBits[RAdrD] <= #1 1'b1;
|
||||
else if (ClearValidD & (WriteEnableD | VDWriteEnableD)) ValidBits[RAdrD] <= #1 1'b0;
|
||||
end
|
||||
|
||||
/* always_ff @(posedge clk) begin // pipeline register; helps timing ***Ross consider further
|
||||
RAdrD <= #1 RAdr;
|
||||
SetValidD <= #1 SetValid;
|
||||
ClearValidD <= #1 ClearValid;
|
||||
WriteEnableD <= #1 WriteEnable;
|
||||
VDWriteEnableD <= #1 VDWriteEnable;
|
||||
end */
|
||||
flop #($clog2(NUMLINES)) RAdrDelayReg(clk, RAdr, RAdrD);
|
||||
flop #(4) ValidCtrlDelayReg(clk, {SetValid, ClearValid, WriteEnable, VDWriteEnable},
|
||||
{SetValidD, ClearValidD, WriteEnableD, VDWriteEnableD});
|
||||
@ -142,16 +134,8 @@ module cacheway #(parameter NUMLINES=512, parameter LINELEN = 256, TAGLEN = 26,
|
||||
else if (ClearDirtyD & (WriteEnableD | VDWriteEnableD)) DirtyBits[RAdrD] <= #1 1'b0;
|
||||
end
|
||||
flop #(2) DirtyCtlDelayReg(clk, {SetDirty, ClearDirty}, {SetDirtyD, ClearDirtyD});
|
||||
/* always_ff @(posedge clk) begin
|
||||
SetDirtyD <= SetDirty;
|
||||
ClearDirtyD <= ClearDirty;
|
||||
end */
|
||||
assign Dirty = DirtyBits[RAdrD];
|
||||
end else begin:dirty
|
||||
assign Dirty = 1'b0;
|
||||
end
|
||||
|
||||
|
||||
end else assign Dirty = 1'b0;
|
||||
endmodule // DCacheCacheWays
|
||||
|
||||
|
||||
|
@ -125,7 +125,7 @@ module datapath (
|
||||
// Writeback stage pipeline register and logic
|
||||
flopenrc #(`XLEN) ResultWReg(clk, reset, FlushW, ~StallW, ResultM, ResultW);
|
||||
flopenrc #(5) RdWReg(clk, reset, FlushW, ~StallW, RdM, RdW);
|
||||
flopen #(`XLEN) ReadDataWReg(.clk, .en(~StallW), .d(ReadDataM), .q(ReadDataW));
|
||||
flopen #(`XLEN) ReadDataWReg(clk, ~StallW, ReadDataM, ReadDataW);
|
||||
mux5 #(`XLEN) resultmuxW(ResultW, ReadDataW, CSRReadValW, MDUResultW, SCResultW, ResultSrcW, WriteDataW);
|
||||
|
||||
// floating point interactions: fcvt, fp stores
|
||||
@ -133,8 +133,7 @@ module datapath (
|
||||
mux2 #(`XLEN) resultmuxM(IEUResultM, FIntResM, FWriteIntM, ResultM);
|
||||
mux2 #(`XLEN) writedatamux(ForwardedSrcBE, FWriteDataE, ~IllegalFPUInstrE, WriteDataE);
|
||||
end else begin:fpmux
|
||||
assign ResultM = IEUResultM;
|
||||
assign WriteDataE = ForwardedSrcBE;
|
||||
assign ResultM = IEUResultM; assign WriteDataE = ForwardedSrcBE;
|
||||
end
|
||||
|
||||
// handle Store Conditional result if atomic extension supported
|
||||
|
Loading…
Reference in New Issue
Block a user