From 0324329ed92f61cf183befaf901e7fce9dc1297e Mon Sep 17 00:00:00 2001 From: Noah Boorstin Date: Mon, 26 Apr 2021 14:34:38 -0400 Subject: [PATCH] linux: start using internal branch predictor signal --- wally-pipelined/regression/wave-dos/busybear-waves.do | 3 ++- wally-pipelined/testbench/testbench-busybear.sv | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/wally-pipelined/regression/wave-dos/busybear-waves.do b/wally-pipelined/regression/wave-dos/busybear-waves.do index 1ce0cf48..e8bcc3bd 100644 --- a/wally-pipelined/regression/wave-dos/busybear-waves.do +++ b/wally-pipelined/regression/wave-dos/busybear-waves.do @@ -21,6 +21,7 @@ add wave -hex /testbench/dut/hart/ifu/InstrRawD add wave /testbench/CheckInstrD add wave /testbench/lastCheckInstrD add wave /testbench/speculative +add wave /testbench/dut/hart/ifu/bpred/BPPredWrongE add wave /testbench/lastPC2 add wave -divider add wave -divider @@ -125,4 +126,4 @@ configure wave -snapdistance 10 configure wave -datasetprefix 0 configure wave -rowmargin 4 configure wave -childrowmargin 2 -set DefaultRadix hexadecimal \ No newline at end of file +set DefaultRadix hexadecimal diff --git a/wally-pipelined/testbench/testbench-busybear.sv b/wally-pipelined/testbench/testbench-busybear.sv index 93ebbdd1..1a2aa678 100644 --- a/wally-pipelined/testbench/testbench-busybear.sv +++ b/wally-pipelined/testbench/testbench-busybear.sv @@ -554,12 +554,13 @@ module testbench(); endcase //check things! - if ((~speculative) && (~equal(dut.hart.ifu.PCD,pcExpected,3))) begin + if ((~dut.hart.ifu.bpred.BPPredWrongE) && (~equal(dut.hart.ifu.PCD,pcExpected,3))) begin + //if ((~speculative) && (~equal(dut.hart.ifu.PCD,pcExpected,3))) begin $display("%0t ps, instr %0d: PC does not equal PC expected: %x, %x", $time, instrs, dut.hart.ifu.PCD, pcExpected); `ERROR end InstrMask = CheckInstrD[1:0] == 2'b11 ? 32'hFFFFFFFF : 32'h0000FFFF; - if ((~forcedInstr) && (~speculative) && ((InstrMask & dut.hart.ifu.InstrRawD) !== (InstrMask & CheckInstrD))) begin + if ((~forcedInstr) && (~dut.hart.ifu.bpred.BPPredWrongE) && ((InstrMask & dut.hart.ifu.InstrRawD) !== (InstrMask & CheckInstrD))) begin $display("%0t ps, instr %0d: InstrD does not equal CheckInstrD: %x, %x, PC: %x", $time, instrs, dut.hart.ifu.InstrRawD, CheckInstrD, dut.hart.ifu.PCD); `ERROR end