mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Removed 2-cycle FPU-IEU latency stall
This commit is contained in:
		
							parent
							
								
									1404d1c248
								
							
						
					
					
						commit
						564281b8c1
					
				@ -123,6 +123,7 @@ module datapath (
 | 
			
		||||
  flopenrc #(`XLEN) IFResultWReg(clk, reset, FlushW, ~StallW, IFResultM, IFResultW);
 | 
			
		||||
  flopenrc #(5)     RdWReg(clk, reset, FlushW, ~StallW, RdM, RdW);
 | 
			
		||||
 | 
			
		||||
  // *** simplify WriteDataE in this merge
 | 
			
		||||
  // floating point interactions: fcvt, fp stores
 | 
			
		||||
  if (`F_SUPPORTED&(`LLEN>`XLEN)) begin:fpmux
 | 
			
		||||
    logic [`XLEN-1:0] IFCvtResultW;
 | 
			
		||||
 | 
			
		||||
@ -58,7 +58,7 @@ module forward(
 | 
			
		||||
 | 
			
		||||
  // Stall on dependent operations that finish in Mem Stage and can't bypass in time
 | 
			
		||||
  assign MatchDE = (Rs1D == RdE) | (Rs2D == RdE); // Decode-stage instruction source depends on result from execute stage instruction
 | 
			
		||||
  assign FPUStallD = FWriteIntE & MatchDE; 
 | 
			
		||||
  assign FPUStallD = 0; // FWriteIntE & MatchDE; // FPU to Integer transfers have single-cycle latency
 | 
			
		||||
  assign LoadStallD = (MemReadE|SCE) & MatchDE;  
 | 
			
		||||
  assign MDUStallD = MDUE & MatchDE; 
 | 
			
		||||
  assign CSRRdStallD = CSRReadE & MatchDE;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user