mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	LSU partitioning
This commit is contained in:
		
							parent
							
								
									36d49a8a74
								
							
						
					
					
						commit
						291deb5c39
					
				| @ -122,9 +122,18 @@ module lsu | ||||
|   logic 					   BusCommittedM, DCacheCommittedM; | ||||
|    | ||||
| 
 | ||||
|   // Execute Stage Logic
 | ||||
| 
 | ||||
| 
 | ||||
|   // Execute-Memory Stage Registers (and Cache fires on this edge)
 | ||||
| 
 | ||||
|   flopenrc #(`XLEN) AddressMReg(clk, reset, FlushM, ~StallM, IEUAdrE, IEUAdrM); | ||||
| 
 | ||||
|   // Memory Stage Logic
 | ||||
| 
 | ||||
|   assign IEUAdrExtM = {2'b00, IEUAdrM}; | ||||
| 
 | ||||
|   // HPTW and Interlock FSM (only needed if VM supported)
 | ||||
|   if(`MEM_VIRTMEM) begin : MEM_VIRTMEM | ||||
|     logic 					   AnyCPUReqM; | ||||
|     logic [`PA_BITS-1:0] 		   HPTWAdr; | ||||
| @ -195,6 +204,7 @@ module lsu | ||||
|     assign DTLBStorePageFaultM = 1'b0; | ||||
|   end | ||||
| 
 | ||||
| 
 | ||||
|   // **** look into this confusing signal.
 | ||||
|   // This signal is confusing.  CommittedM tells the CPU's trap unit the current instruction
 | ||||
|   // in the memory stage is a memory operaton and that memory operation is either completed
 | ||||
| @ -205,6 +215,9 @@ module lsu | ||||
|   // to flush the memory operation at that time.
 | ||||
|   assign CommittedM = SelHPTW | DCacheCommittedM | BusCommittedM; | ||||
| 
 | ||||
|   // Outside Pipeline Logic
 | ||||
| 
 | ||||
|   // MMU and Misalignment fault logic required if privileged unit exists
 | ||||
|   if(`ZICSR_SUPPORTED == 1) begin : dmmu | ||||
|     logic 					   DataMisalignedM; | ||||
| 
 | ||||
| @ -229,6 +242,7 @@ module lsu | ||||
|       .PMPCFG_ARRAY_REGW, .PMPADDR_ARRAY_REGW | ||||
|       ); // *** the pma/pmp instruction access faults don't really matter here. is it possible to parameterize which outputs exist?
 | ||||
| 
 | ||||
|     // *** lump into lsumislaigned module
 | ||||
|     // Determine if an Unaligned access is taking place
 | ||||
|     // hptw guarantees alignment, only check inputs from IEU.
 | ||||
|     always_comb | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user