mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Updated spill logic to reflect changes in textbook.
This commit is contained in:
parent
3da62558ec
commit
731e1fe08f
@ -148,7 +148,7 @@ module ifu import cvw::*; #(parameter cvw_t P) (
|
|||||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
if(P.ZCA_SUPPORTED) begin : Spill
|
if(P.ZCA_SUPPORTED) begin : Spill
|
||||||
spill #(P) spill(.clk, .reset, .StallD, .FlushD, .PCF, .PCPlus4F, .PCNextF, .InstrRawF, .InstrUpdateDAF, .CacheableF,
|
spill #(P) spill(.clk, .reset, .StallF, .FlushD, .PCF, .PCPlus4F, .PCNextF, .InstrRawF, .InstrUpdateDAF, .CacheableF,
|
||||||
.IFUCacheBusStallF, .ITLBMissF, .PCSpillNextF, .PCSpillF, .SelSpillNextF, .PostSpillInstrRawF, .CompressedF);
|
.IFUCacheBusStallF, .ITLBMissF, .PCSpillNextF, .PCSpillF, .SelSpillNextF, .PostSpillInstrRawF, .CompressedF);
|
||||||
end else begin : NoSpill
|
end else begin : NoSpill
|
||||||
assign PCSpillNextF = PCNextF;
|
assign PCSpillNextF = PCNextF;
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
module spill import cvw::*; #(parameter cvw_t P) (
|
module spill import cvw::*; #(parameter cvw_t P) (
|
||||||
input logic clk,
|
input logic clk,
|
||||||
input logic reset,
|
input logic reset,
|
||||||
input logic StallD, FlushD,
|
input logic StallF, FlushD,
|
||||||
input logic [P.XLEN-1:0] PCF, // 2 byte aligned PC in Fetch stage
|
input logic [P.XLEN-1:0] PCF, // 2 byte aligned PC in Fetch stage
|
||||||
input logic [P.XLEN-1:2] PCPlus4F, // PCF + 4
|
input logic [P.XLEN-1:2] PCPlus4F, // PCF + 4
|
||||||
input logic [P.XLEN-1:0] PCNextF, // The next PCF
|
input logic [P.XLEN-1:0] PCNextF, // The next PCF
|
||||||
@ -96,7 +96,7 @@ module spill import cvw::*; #(parameter cvw_t P) (
|
|||||||
case (CurrState)
|
case (CurrState)
|
||||||
STATE_READY: if (TakeSpillF) NextState = STATE_SPILL;
|
STATE_READY: if (TakeSpillF) NextState = STATE_SPILL;
|
||||||
else NextState = STATE_READY;
|
else NextState = STATE_READY;
|
||||||
STATE_SPILL: if(StallD) NextState = STATE_SPILL;
|
STATE_SPILL: if(StallF) NextState = STATE_SPILL;
|
||||||
else NextState = STATE_READY;
|
else NextState = STATE_READY;
|
||||||
default: NextState = STATE_READY;
|
default: NextState = STATE_READY;
|
||||||
endcase
|
endcase
|
||||||
|
Loading…
Reference in New Issue
Block a user