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