Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							72363f5c66 
							
						 
					 
					
						
						
							
							Added the ability to exclude branch predictor.  
						
						 
						
						
						
					 
					
						2021-04-26 14:27:42 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							6e803b724e 
							
						 
					 
					
						
						
							
							Merge branch 'tests' into icache-almost-working  
						
						 
						
						
						
					 
					
						2021-04-25 21:25:36 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							27ef10df07 
							
						 
					 
					
						
						
							
							almost working icache.  
						
						 
						
						
						
					 
					
						2021-04-23 16:47:23 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							020fb65adf 
							
						 
					 
					
						
						
							
							Fixed icache for 32 bit.  
						
						 
						
						... 
						
						
						
						Merge branch 'cache' into main 
						
					 
					
						2021-04-22 16:45:29 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							c42399bdb5 
							
						 
					 
					
						
						
							
							Yes. The hack to not repeat the d memory operation fixed this issue.  
						
						 
						
						
						
					 
					
						2021-04-22 15:22:56 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							d8ab7a5de2 
							
						 
					 
					
						
						
							
							Partially working icache.  
						
						 
						
						... 
						
						
						
						The current issue is a StallF is required to halt the icache from getting an updated PCF. However
if the dmemory is the reason for a stall it is possible for the icache stall to hold the d memory request continuously causing d memory to repeatedly read from memory.  This keeps StallF high and
the icache FSM is never allowed to complete. 
						
					 
					
						2021-04-22 10:20:36 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							7b3735fc25 
							
						 
					 
					
						
						
							
							Fixed for the instruction spills.  
						
						 
						
						
						
					 
					
						2021-04-21 16:47:05 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							532c8771ba 
							
						 
					 
					
						
						
							
							major progress.  
						
						 
						
						... 
						
						
						
						It's running the icache is imperas tests now.
Compressed does not work yet. 
						
					 
					
						2021-04-21 08:39:54 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							f3093ac612 
							
						 
					 
					
						
						
							
							Why was the linter messed up?  
						
						 
						
						... 
						
						
						
						There are a number of combo loops which need fixing outside the icache.  They may be fixed in main.
We get to instruction address 50 now! 
						
					 
					
						2021-04-20 22:06:12 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							99424fb983 
							
						 
					 
					
						
						
							
							Progress on icache. Fixed some issues aligning the PC with instruction. Still broken.  
						
						 
						
						
						
					 
					
						2021-04-20 21:19:53 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							251ece20fe 
							
						 
					 
					
						
						
							
							Broken icache. Design is done. Time to debug.  
						
						 
						
						
						
					 
					
						2021-04-20 19:55:49 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								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  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							4322694f7a 
							
						 
					 
					
						
						
							
							Switch to use RV64IC for the benchmarks.  
						
						 
						
						... 
						
						
						
						Still not working correctly with the icache.
instr
addr   correct   got 
						
					 
					
						2021-04-07 19:12:43 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							c91436d3b7 
							
						 
					 
					
						
						
							
							Merge branch 'icache_bp_bug' into tests  
						
						 
						
						... 
						
						
						
						Not sure this merge is right. 
						
					 
					
						2021-04-06 21:46:40 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							bff2d61a1f 
							
						 
					 
					
						
						
							
							Steps to getting branch predictor benchmarks running.  
						
						 
						
						
						
					 
					
						2021-04-06 21:20:51 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							d21006d048 
							
						 
					 
					
						
						
							
							Partial fix to the integer divide stall issue.  
						
						 
						
						
						
					 
					
						2021-04-02 15:32:15 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							a64a37d702 
							
						 
					 
					
						
						
							
							Merge of main with the new icache and the branch predictor.  I believe there is a bug in the icache with unaligned memory access.  The second part of the access is incorrectly relying on the PCF being the address of the next two bytes of the instruction. However this is not always the case as the branch predictor can get the wrong target address.  The icache needs to generate the +2 address internally.  
						
						 
						
						
						
					 
					
						2021-03-30 23:18:20 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								ushakya22 
							
						 
					 
					
						
						
						
						
							
						
						
							6b9ae41302 
							
						 
					 
					
						
						
							
							Merge branch 'main' of  https://github.com/davidharrishmc/riscv-wally  into main  
						
						 
						
						
						
					 
					
						2021-03-30 15:25:07 -04:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								ShreyaSanghai 
							
						 
					 
					
						
						
						
						
							
						
						
							139c2076a1 
							
						 
					 
					
						
						
							
							Removed PCW and InstrW from ifu  
						
						 
						
						
						
					 
					
						2021-03-26 01:53:19 +05:30  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							a99c0502e5 
							
						 
					 
					
						
						
							
							Fixed bugs with the csr interacting with StallW.  StallW is required to pervent updating a csr. Now have a working branch predictor and performance counters to track the number of commited branches and mispredictions.  
						
						 
						
						
						
					 
					
						2021-03-24 15:56:55 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							11109e5a88 
							
						 
					 
					
						
						
							
							Updated the function radix to have a new name FunctionName and it now pervents false transisions from the current function name when the PCD is flushed.  
						
						 
						
						
						
					 
					
						2021-03-24 13:03:43 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							1c6e37120e 
							
						 
					 
					
						
						
							
							Fixed RAS errors.  Still some room for improvement with the BTB and RAS.  
						
						 
						
						
						
					 
					
						2021-03-23 23:00:44 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							84ad1353e4 
							
						 
					 
					
						
						
							
							Fixed a bunch of bugs with the RAS.  
						
						 
						
						
						
					 
					
						2021-03-23 21:49:16 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							49348d734b 
							
						 
					 
					
						
						
							
							fixed issue with BTB's valid bit not updating.  There is still a problem is valid not ocurring in the correct clock cycle.  
						
						 
						
						
						
					 
					
						2021-03-23 20:06:45 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							95dbc5f1fa 
							
						 
					 
					
						
						
							
							fixed a whole bunch of bugs with the branch predictor.  Still an issue with how PCNextF is not updated because the CPU is stalled.  
						
						 
						
						
						
					 
					
						2021-03-23 16:53:48 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							174557ae89 
							
						 
					 
					
						
						
							
							Simulation definitely shows the branch predictor counters and branch predictor don't work. :(  
						
						 
						
						
						
					 
					
						2021-03-23 14:04:58 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Shreya Sanghai 
							
						 
					 
					
						
						
						
						
							
						
						
							bbe0957df5 
							
						 
					 
					
						
						
							
							Merge branch 'gshare' into main  
						
						 
						
						... 
						
						
						
						Conflicts:
	wally-pipelined/regression/wave.do 
						
					 
					
						2021-03-18 17:25:48 -04:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							8f4051543c 
							
						 
					 
					
						
						
							
							Fixed minor bug with the size of gshare.  
						
						 
						
						
						
					 
					
						2021-03-18 16:00:09 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							9f8f0242ca 
							
						 
					 
					
						
						
							
							Added possibly working OSU test bench as a precursor to running a bp benchmark.  
						
						 
						
						... 
						
						
						
						Fixed a few bugs with the function radix. 
						
					 
					
						2021-03-17 11:06:32 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							7743d8edc3 
							
						 
					 
					
						
						
							
							Cleanup of the branch predictor flush and stall controls.  
						
						 
						
						
						
					 
					
						2021-03-12 14:57:53 -06:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							318b642359 
							
						 
					 
					
						
						
							
							Improve version of the function radix which does not cause the wave file rendering to slow down.  
						
						 
						
						
						
					 
					
						2021-03-11 17:12:21 -06:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							f92f766573 
							
						 
					 
					
						
						
							
							Added debug option to disable the function radix if not needed.  
						
						 
						
						... 
						
						
						
						Function radix slows the simulation by 70 to 76 s (8.5%) for the rv64i tests. 
						
					 
					
						2021-03-10 15:17:02 -06:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							dcae90e3ad 
							
						 
					 
					
						
						
							
							I finally think I got the function radix debugger working across both 32 and 64 bit applications.  
						
						 
						
						
						
					 
					
						2021-03-10 14:43:44 -06:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							50a92247b3 
							
						 
					 
					
						
						
							
							Finally I think I have the function radix mapping across all applications correctly.  I still need to clean up the code a bit so it is easier to understand.  
						
						 
						
						
						
					 
					
						2021-03-10 11:00:51 -06:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							7592a0dacb 
							
						 
					 
					
						
						
							
							Shreya and I found a bug with the exeuction of JAL and JALR instructions.  The link was only set in the writeback stage.  Once the branch predictor started correctly predicting JAL(R)s the ALU and forwarding logic need to have the PCLinkE at the execution stage in case an instruction in the next two clocks need the data.  
						
						 
						
						
						
					 
					
						2021-02-26 20:12:27 -06:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							37e6a45d76 
							
						 
					 
					
						
						
							
							Updating the test bench to include a function radix.  Not done.  
						
						 
						
						
						
					 
					
						2021-02-26 19:43:40 -06:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							9b3637bd87 
							
						 
					 
					
						
						
							
							RAS needs to be reset or preloaded.  For now I just reset it.  
						
						 
						
						... 
						
						
						
						Fixed bug with the instruction class.
Most tests now pass.  Only Wally-JAL and the compressed instruction tests fail.  Currently the bpred does not support compressed.  This will be in the next version. 
						
					 
					
						2021-02-19 20:09:07 -06:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							00de91cc87 
							
						 
					 
					
						
						
							
							Added FlushF to hazard unit.  
						
						 
						
						... 
						
						
						
						Fixed some typos with the names of signals in the branch predictor.  They were causing signals to be not set.  Note there is a modelsim flag which prevents it from compiling if a logic is undefined.
I will look this up and add it to the compiler. 
						
					 
					
						2021-02-19 16:36:51 -06:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							f25de68b7d 
							
						 
					 
					
						
						
							
							minor change to wave file.  
						
						 
						
						
						
					 
					
						2021-02-19 09:08:13 -06:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							c6ebe7733b 
							
						 
					 
					
						
						
							
							Hacked the sram memory models to reset their internal registers.  This allows the simulation to run but is only temporary.  
						
						 
						
						... 
						
						
						
						About 149307ns of simulation run. 
						
					 
					
						2021-02-18 21:32:15 -06:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							de9e383bc6 
							
						 
					 
					
						
						
							
							Wrote a bash script to generate custom modelsim radix which maps instruction addresses into human readable lables.  
						
						 
						
						... 
						
						
						
						Once combined with some simulation verilog this will display the current function in modelsim. 
						
					 
					
						2021-02-17 22:20:28 -06:00