cvw/wally-pipelined/regression
Ross Thompson e73e16e57a Created special test for driving the instruction spill error.
The extact problem occurs when a 4 byte instruction startles two cache blocks (or without a cache two ahbi words) and the code jumps to a cache block other than the next cache block. Consider the following sample of code.

0000000000000080 <test_spill>:
  80:	42a9                	li	t0,10
  82:	0001                	nop
  84:	0001                	nop
  86:	0001                	nop
  88:	02bd                	addi	t0,t0,15
  8a:	00628e33          	add	t3,t0,t1
  8e:	01ce8963          	beq	t4,t3,a0 <match>

0000000000000092 <failure>:
  92:	557d                	li	a0,-1
  94:	8082                	ret
  96:	00000013          	nop
  9a:	00000013          	nop
  9e:	0001                	nop

00000000000000a0 <match>:
  a0:	1ffd                	addi	t6,t6,-1
  a2:	fc0f9fe3          	bnez	t6,80 <test_spill>
  a6:	4501                	li	a0,0
  a8:	8082                	ret

Instructions 0x88, 0x8a and 0x8e are read incorrectly.  However once the branch predictor begins to correctly predict the beq at 0x8e the instrution at 0xa0 is loaded incorrectly as the 2 upper bytes of 0x8e and the two bytes of 0x92.  This amalgamation causes c.addi at 0xa0 to do something else and the loop never terminates.

The button of wavefile wave.do shows the exact problem in the 'icache'.
2021-04-08 15:05:08 -05:00
..
wave-dos Merge branch 'main' into cache 2021-03-30 12:55:01 -04:00
regression-wally.py regression: use busybear batch instead 2021-03-25 15:34:10 -04:00
sim-busybear busybear: add sim-busybear and sim-busybear-batch based on sim-wally 2021-03-01 21:01:15 +00:00
sim-busybear-batch busybear: make a second .do file with better optimization for command line mode 2021-03-08 19:35:00 +00:00
sim-wally Added test configurations 2021-01-25 11:28:43 -05:00
sim-wally-batch Fixed issue with sim-wally-batch. Are people still using this script? 2021-03-17 11:17:52 -05:00
sim-wally-rv32ic AHB bugfixes and sim waveview refactoring 2021-03-18 18:25:12 -04:00
wally-busybear-batch.do Converted branch predictor preloads to use system verilog rather than modelsim's load command. 2021-03-15 12:39:44 -05:00
wally-busybear.do Merge branch 'main' into cache 2021-03-30 12:55:01 -04:00
wally-coremark_bare.do Removed PCW and InstrW from ifu 2021-03-26 01:53:19 +05:30
wally-coremark.do Removed PCW and InstrW from ifu 2021-03-26 01:53:19 +05:30
wally-peripherals-signals.do refactored sim file 2021-03-05 14:25:16 -05:00
wally-peripherals.do Converted branch predictor preloads to use system verilog rather than modelsim's load command. 2021-03-15 12:39:44 -05:00
wally-pipelined-batch.do Condense the parallel and non-parallel wally-pipelined-batch.do files into one 2021-03-16 18:15:13 -04:00
wally-pipelined-ross.do Converted branch predictor preloads to use system verilog rather than modelsim's load command. 2021-03-15 12:39:44 -05:00
wally-pipelined.do AHB bugfixes and sim waveview refactoring 2021-03-18 18:25:12 -04:00
wally-privileged.do Fix bugs with privileged tests 2021-03-25 14:06:05 -04:00
wave-all.do Removed PCW and InstrW from ifu 2021-03-26 01:53:19 +05:30
wave.do Created special test for driving the instruction spill error. 2021-04-08 15:05:08 -05:00