David Harris 
							
						 
					 
					
						
						
						
						
							
						
						
							24bb3f4baf 
							
						 
					 
					
						
						
							
							Added more pipeline stage suffixes to divider  
						
						 
						
						
						
					 
					
						2021-10-02 22:54:01 -04:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							99d675b872 
							
						 
					 
					
						
						
							
							Finished adding the d cache flush.  Required ensuring the write data, address, and size are  
						
						 
						
						... 
						
						
						
						correct when transmitting to AHBLite interface. 
						
					 
					
						2021-09-17 13:03:04 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							d4398c23fb 
							
						 
					 
					
						
						
							
							Added states and all control and data path logic to support d cache flush.  This is currently untested; however the existing regresss test passes.  
						
						 
						
						
						
					 
					
						2021-09-16 18:32:29 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							eb7b5f1d63 
							
						 
					 
					
						
						
							
							Added invalidate to icache.  
						
						 
						
						
						
					 
					
						2021-09-16 16:15:54 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							5bc90ef32f 
							
						 
					 
					
						
						
							
							Slight modification to wave file.  
						
						 
						
						
						
					 
					
						2021-09-08 10:40:46 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							00f50184d8 
							
						 
					 
					
						
						
							
							Changed name of memory in icache.  
						
						 
						
						
						
					 
					
						2021-09-06 20:54:52 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							5c2deab4e4 
							
						 
					 
					
						
						
							
							Partial multiway set associative icache.  
						
						 
						
						
						
					 
					
						2021-08-30 10:49:24 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							de9e234ffa 
							
						 
					 
					
						
						
							
							Modified icache to no longer need StallF in the PCMux logic.  Instead this is handled in the icachefsm.  
						
						 
						
						... 
						
						
						
						One downside is it increases the icache complexity.  However it also fixes an untested bug.  If a region
was uncacheable it would have been possible for the request to be made multiple times.  Now that is
not possible.  Additionally spills were oscillating between the spill hit states without this change.
The impact was 'benign' as the final spilled instruction always had the correct upper 16 bits. 
						
					 
					
						2021-08-27 11:03:36 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							cbb47956cb 
							
						 
					 
					
						
						
							
							Swapped out the icachemem for cacheway.  cacheway is modified to optionally support dirty bits.  
						
						 
						
						
						
					 
					
						2021-08-26 15:43:02 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							642efbb563 
							
						 
					 
					
						
						
							
							Converted the icache type from logic to state type.  
						
						 
						
						
						
					 
					
						2021-08-26 10:41:42 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							d2b3b7345e 
							
						 
					 
					
						
						
							
							Moved dcache fsm to separate module.  
						
						 
						
						
						
					 
					
						2021-08-25 21:37:10 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							7be0a73db1 
							
						 
					 
					
						
						
							
							Moved LRU and storage for the LRU into a single module.  Also found a subtle bug with the update address used to write the cache's memory.  
						
						 
						
						... 
						
						
						
						This was correct for the LRU but incorrect for the data, tag, valid, and dirty storage. 
						
					 
					
						2021-08-25 21:09:42 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							c48556836b 
							
						 
					 
					
						
						
							
							Removed generate around the dcache memories.  
						
						 
						
						
						
					 
					
						2021-08-25 13:27:26 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							4f3f26c5cb 
							
						 
					 
					
						
						
							
							Switched ExceptionM to dcache to be just exceptions.  
						
						 
						
						... 
						
						
						
						Added test bench logic to hold forces until the W stage is unstalled. 
						
					 
					
						2021-08-13 15:53:50 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							cd8a66353c 
							
						 
					 
					
						
						
							
							Patched up changes for wally-pipelined.do and wally-buildroot.do to support moved common testbench files.  
						
						 
						
						
						
					 
					
						2021-07-30 14:24:50 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							32ec457e09 
							
						 
					 
					
						
						
							
							Removed the hardware page table walker fault state from the icache so that the icache will only unstall CPU for 1 cycle.  
						
						 
						
						... 
						
						
						
						In the dcache we added a register to save the load read data in the event an itlb miss occurs concurrently with
the load in the memory stage.  Under this situation we need to record the load ReadDataM into a temporary register,
SavedReadDataM.  At this time the CPU is stall; however the walker is going to change the address in the dcache
which destroys this data.  When leaving the PTW_READY state via a walker instruction fault or ITLB write we select
this SavedReadDataM so that the CPU can capture it. 
						
					 
					
						2021-07-22 19:42:19 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							007812dbdc 
							
						 
					 
					
						
						
							
							Moved the ReadDataW register into the datapath.  
						
						 
						
						... 
						
						
						
						The StallW from the hazard unit controls this.
Previously it was in the dcache and controlled by both the HPTW and hazard unit.
This caused an issue when the CPU expected the data to stay constant while
stalled, but the HPTW was causing the data to be modified. 
						
					 
					
						2021-07-22 14:52:03 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							e907d57340 
							
						 
					 
					
						
						
							
							Tested all numbers of ways for dcache 1, 2, 4, and 8.  
						
						 
						
						
						
					 
					
						2021-07-22 10:38:07 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							511c36fb1b 
							
						 
					 
					
						
						
							
							Improved address bus names and usages in the walker, dcache, and tlbs.  
						
						 
						
						... 
						
						
						
						Merge branch 'walkerEnhance' into main 
						
					 
					
						2021-07-21 14:55:09 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							39fc9278ba 
							
						 
					 
					
						
						
							
							Fixed remaining bugs in 2 way set associative dcache.  
						
						 
						
						
						
					 
					
						2021-07-21 10:35:23 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							8d0a552b5b 
							
						 
					 
					
						
						
							
							Partially working 2 way set associative d cache.  
						
						 
						
						
						
					 
					
						2021-07-20 17:51:42 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							2ee97efb9c 
							
						 
					 
					
						
						
							
							Fixed a complex bug in the dcache, where back to back loads would lose data on the load before a stall occurred.  The solution was to modify the logic for SelAdrM in the dcache so that a stall would cause the SRAM to reread the address in the Memory stage rather than Execution stage.  This also required updating the ReadDataWEn control so it is always enabled on ~StallW.  
						
						 
						
						
						
					 
					
						2021-07-19 12:32:16 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							6ccbdc372d 
							
						 
					 
					
						
						
							
							Broken.  
						
						 
						
						... 
						
						
						
						Possible change to walker, dcache, tlb addressing.
Improves the naming of address signals.
But has a problem when the walker finishes the dcache does not get the correct
address on the cycle the DTLB is updated.  This leads to incorrect index
selection in the dcache. 
						
					 
					
						2021-07-19 10:33:27 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							abce241f68 
							
						 
					 
					
						
						
							
							Also changed the shadow ram's dcache copy widths.  
						
						 
						
						... 
						
						
						
						Merge branch 'dcache' into main 
						
					 
					
						2021-07-16 14:21:09 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							bebc7cc5e3 
							
						 
					 
					
						
						
							
							Updated wave file.  
						
						 
						
						
						
					 
					
						2021-07-16 12:34:37 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							d3715acf2d 
							
						 
					 
					
						
						
							
							Fixed walker fault interaction with dcache.  
						
						 
						
						
						
					 
					
						2021-07-16 12:22:13 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							96aa106852 
							
						 
					 
					
						
						
							
							Found bug in the PMA such that invalid addresses were sent to the tim.  Once addressing this issue the sv48 test fails early with a pma access fault.  
						
						 
						
						
						
					 
					
						2021-07-15 11:56:35 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							5fb5ac3d5a 
							
						 
					 
					
						
						
							
							Updated wave file.  
						
						 
						
						
						
					 
					
						2021-07-15 11:04:49 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							f234875779 
							
						 
					 
					
						
						
							
							dcache STATE_CPU_BUSY needs to assert CommittedM.   This is required to ensure a completed memory operation is not bound to an interrupt.  ie. MEPC should not be PCM when committed.  
						
						 
						
						
						
					 
					
						2021-07-14 23:08:07 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							6163629204 
							
						 
					 
					
						
						
							
							Finally have the ptw correctly walking through the dcache to update the itlb.  
						
						 
						
						... 
						
						
						
						Still not working fully. 
						
					 
					
						2021-07-14 22:26:07 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							d3a1a2c90a 
							
						 
					 
					
						
						
							
							Fixed d cache not honoring StallW for uncache writes and reads.  
						
						 
						
						
						
					 
					
						2021-07-14 17:23:28 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							771c7ff130 
							
						 
					 
					
						
						
							
							Routed CommittedM and PendingInterruptM through the lsu arb.  
						
						 
						
						
						
					 
					
						2021-07-14 16:18:09 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							ef598d0e79 
							
						 
					 
					
						
						
							
							Implemented uncached reads.  
						
						 
						
						
						
					 
					
						2021-07-13 23:03:09 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							278bbfbe3c 
							
						 
					 
					
						
						
							
							Partially working changes to support uncached memory access.  Not sure what CommitedM is.  
						
						 
						
						
						
					 
					
						2021-07-13 17:24:59 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							b780e471b4 
							
						 
					 
					
						
						
							
							Fixed interaction between icache stall and dcache.  On hit dcache needs to enter a cpu busy state when the cpu is stalled.  
						
						 
						
						
						
					 
					
						2021-07-13 14:51:42 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							51249a0e04 
							
						 
					 
					
						
						
							
							Fixed the fetch buffer accidental overwrite on eviction.  
						
						 
						
						
						
					 
					
						2021-07-13 14:21:29 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							2034a6584f 
							
						 
					 
					
						
						
							
							Dcache AHB address generation was wrong. Needed to zero the offset.  
						
						 
						
						
						
					 
					
						2021-07-13 14:19:04 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							ee09fa5f58 
							
						 
					 
					
						
						
							
							Moved StoreStall into the hazard unit instead of in the d cache.  
						
						 
						
						
						
					 
					
						2021-07-13 13:20:50 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							17dc488010 
							
						 
					 
					
						
						
							
							Got the shadow ram cache flush working.  
						
						 
						
						
						
					 
					
						2021-07-13 10:03:47 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							9fe6190763 
							
						 
					 
					
						
						
							
							Team work on solving the dcache data inconsistency problem.  
						
						 
						
						
						
					 
					
						2021-07-12 23:46:32 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							8ca8b9075d 
							
						 
					 
					
						
						
							
							Progress towards the test bench flush.  
						
						 
						
						
						
					 
					
						2021-07-12 14:22:13 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							a82c4c99c2 
							
						 
					 
					
						
						
							
							Actually writes the correct data now on stores.  
						
						 
						
						
						
					 
					
						2021-07-10 17:48:47 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							71a23626d5 
							
						 
					 
					
						
						
							
							Fixed bug in the LSU pagetable walker interlock.  
						
						 
						
						
						
					 
					
						2021-07-06 10:41:36 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							f2c4df0a5b 
							
						 
					 
					
						
						
							
							Removed the TranslationVAdrQ as it is not necessary.  
						
						 
						
						
						
					 
					
						2021-07-04 16:49:34 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							8ae0a5bd7d 
							
						 
					 
					
						
						
							
							relocated lsuarb and pagetable walker inside the lsu. Does not pass busybear or buildroot, but passes rv32ic and rv64ic.  
						
						 
						
						
						
					 
					
						2021-07-04 13:49:38 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							3dae02818c 
							
						 
					 
					
						
						
							
							OMG. It's working!  
						
						 
						
						
						
					 
					
						2021-07-01 17:37:53 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							c3eaa3169e 
							
						 
					 
					
						
						
							
							Fixed the wrong virtual address write into the dtlb.  
						
						 
						
						
						
					 
					
						2021-07-01 16:55:16 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							9d9415ea67 
							
						 
					 
					
						
						
							
							Got some stores working in virtual memory.  
						
						 
						
						
						
					 
					
						2021-07-01 12:49:09 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							4530e43df6 
							
						 
					 
					
						
						
							
							The icache ptw interlock is actually correct now.  There needed to be a 1 cycle delay.  
						
						 
						
						
						
					 
					
						2021-06-30 17:02:36 -05:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ross Thompson 
							
						 
					 
					
						
						
						
						
							
						
						
							07a0b66fdf 
							
						 
					 
					
						
						
							
							Major rewrite of ptw to remove combo loop.  
						
						 
						
						
						
					 
					
						2021-06-30 16:25:03 -05:00