mirror of
https://github.com/openhwgroup/cvw
synced 2025-01-24 05:24:49 +00:00
More btb cleanup.
This commit is contained in:
parent
554e7d0973
commit
03a6679ba0
@ -92,15 +92,11 @@ module btb #(parameter Depth = 10 ) (
|
||||
assign {BTBIClassF, BTAF} = MatchX ? ForwardBTBPredictionF : {TableBTBPredF};
|
||||
|
||||
|
||||
logic UpdateEn;
|
||||
|
||||
// An optimization may be using a PC relative address.
|
||||
ram2p1r1wbe #(2**Depth, `XLEN+4) memory(
|
||||
.clk, .ce1(~StallF | reset), .ra1(PCNextFIndex), .rd1(TableBTBPredF),
|
||||
.ce2(~StallW & ~FlushW), .wa2(PCMIndex), .wd2({InstrClassM, IEUAdrM}), .we2(BTBWrongM), .bwe2('1));
|
||||
|
||||
assign UpdateEn = |InstrClassM | IClassWrongM;
|
||||
|
||||
flopenrc #(`XLEN) BTBD(clk, reset, FlushD, ~StallD, BTAF, BTAD);
|
||||
|
||||
// BTAE is not strickly necessary. However it is used by two parts of wally.
|
||||
@ -108,8 +104,7 @@ module btb #(parameter Depth = 10 ) (
|
||||
// 2. BTAWrongE is used by the performance counters to track when the BTB's BTA or instruction class is wrong.
|
||||
flopenrc #(`XLEN) BTBTargetEReg(clk, reset, FlushE, ~StallE, BTAD, BTAE);
|
||||
assign BTAWrongE = (BTAE != IEUAdrE) & (InstrClassE[0] | InstrClassE[1] & ~InstrClassE[2]);
|
||||
//assign BTBWrongE = BTAWrongE | IClassWrongE;
|
||||
//flopenrc #(1) BTBWrongMReg(clk, reset, FlushM, ~StallM, BTBWrongE, BTBWrongM);
|
||||
|
||||
flopenrc #(1) BTAWrongMReg(clk, reset, FlushM, ~StallM, BTAWrongE, BTAWrongM);
|
||||
assign BTBWrongM = BTAWrongM | IClassWrongM;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user