mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Fix FPU without S_SUPPORTED - #840
This commit is contained in:
		
							parent
							
								
									607a09ca62
								
							
						
					
					
						commit
						c3cb4e5d1c
					
				@ -262,7 +262,7 @@ module csr import cvw::*;  #(parameter cvw_t P) (
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Floating Point CSRs in User Mode only needed if Floating Point is supported
 | 
					  // Floating Point CSRs in User Mode only needed if Floating Point is supported
 | 
				
			||||||
  if (P.F_SUPPORTED | P.D_SUPPORTED) begin:csru
 | 
					  if (P.F_SUPPORTED) begin:csru
 | 
				
			||||||
    csru #(P) csru(.clk, .reset, .InstrValidNotFlushedM, 
 | 
					    csru #(P) csru(.clk, .reset, .InstrValidNotFlushedM, 
 | 
				
			||||||
      .CSRUWriteM, .CSRAdrM, .CSRWriteValM, .STATUS_FS, .CSRUReadValM,  
 | 
					      .CSRUWriteM, .CSRAdrM, .CSRWriteValM, .STATUS_FS, .CSRUReadValM,  
 | 
				
			||||||
      .SetFflagsM, .FRM_REGW, .WriteFRMM, .WriteFFLAGSM,
 | 
					      .SetFflagsM, .FRM_REGW, .WriteFRMM, .WriteFFLAGSM,
 | 
				
			||||||
 | 
				
			|||||||
@ -99,7 +99,7 @@ module csrsr import cvw::*;  #(parameter cvw_t P) (
 | 
				
			|||||||
  assign STATUS_UXL  = P.U_SUPPORTED ? 2'b10 : 2'b00; // 10 if user mode supported
 | 
					  assign STATUS_UXL  = P.U_SUPPORTED ? 2'b10 : 2'b00; // 10 if user mode supported
 | 
				
			||||||
  assign STATUS_SUM  = P.S_SUPPORTED & P.VIRTMEM_SUPPORTED & STATUS_SUM_INT; // override reigster with 0 if supervisor mode not supported
 | 
					  assign STATUS_SUM  = P.S_SUPPORTED & P.VIRTMEM_SUPPORTED & STATUS_SUM_INT; // override reigster with 0 if supervisor mode not supported
 | 
				
			||||||
  assign STATUS_MPRV = P.U_SUPPORTED & STATUS_MPRV_INT; // override with 0 if user mode not supported
 | 
					  assign STATUS_MPRV = P.U_SUPPORTED & STATUS_MPRV_INT; // override with 0 if user mode not supported
 | 
				
			||||||
  assign STATUS_FS   = (P.S_SUPPORTED & (P.F_SUPPORTED | P.D_SUPPORTED)) ? STATUS_FS_INT : 2'b00; // off if no FP  
 | 
					  assign STATUS_FS   = P.F_SUPPORTED ? STATUS_FS_INT : 2'b00; // off if no FP
 | 
				
			||||||
  assign STATUS_SD   = (STATUS_FS == 2'b11) | (STATUS_XS == 2'b11); // dirty state logic
 | 
					  assign STATUS_SD   = (STATUS_FS == 2'b11) | (STATUS_XS == 2'b11); // dirty state logic
 | 
				
			||||||
  assign STATUS_XS   = 2'b00; // No additional user-mode state to be dirty
 | 
					  assign STATUS_XS   = 2'b00; // No additional user-mode state to be dirty
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user