mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Merge pull request #387 from ross144/main
The SATP fpga fix broke rv32gc. This fixes that bug.
This commit is contained in:
		
						commit
						dcef4cc9ce
					
				
							
								
								
									
										2
									
								
								src/cache/cachefsm.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								src/cache/cachefsm.sv
									
									
									
									
										vendored
									
									
								
							@ -156,7 +156,7 @@ module cachefsm import cvw::*; #(parameter cvw_t P,
 | 
				
			|||||||
  // write enables internal to cache
 | 
					  // write enables internal to cache
 | 
				
			||||||
  assign SetValid = CurrState == STATE_WRITE_LINE | 
 | 
					  assign SetValid = CurrState == STATE_WRITE_LINE | 
 | 
				
			||||||
                    (CurrState == STATE_READY & CMOp[3]); // *** RT: NOT completely right has to be a hit
 | 
					                    (CurrState == STATE_READY & CMOp[3]); // *** RT: NOT completely right has to be a hit
 | 
				
			||||||
  assign ClearValid = P.ZICBOM_SUPPORTED & ((CurrState == STATE_READY & CMOp[0]) |
 | 
					  assign ClearValid = P.ZICBOM_SUPPORTED & ((CurrState == STATE_READY & CMOp[0] & CacheHit) |
 | 
				
			||||||
                      (CurrState == STATE_CMO_WRITEBACK & CMOp[2] & CacheBusAck));
 | 
					                      (CurrState == STATE_CMO_WRITEBACK & CMOp[2] & CacheBusAck));
 | 
				
			||||||
  // coverage off -item e 1 -fecexprrow 8
 | 
					  // coverage off -item e 1 -fecexprrow 8
 | 
				
			||||||
  assign LRUWriteEn = (CurrState == STATE_READY & AnyHit) |
 | 
					  assign LRUWriteEn = (CurrState == STATE_READY & AnyHit) |
 | 
				
			||||||
 | 
				
			|||||||
@ -88,8 +88,8 @@ module csrs import cvw::*;  #(parameter cvw_t P) (
 | 
				
			|||||||
  assign WriteSEPCM       = STrapM | (CSRSWriteM & (CSRAdrM == SEPC));
 | 
					  assign WriteSEPCM       = STrapM | (CSRSWriteM & (CSRAdrM == SEPC));
 | 
				
			||||||
  assign WriteSCAUSEM     = STrapM | (CSRSWriteM & (CSRAdrM == SCAUSE));
 | 
					  assign WriteSCAUSEM     = STrapM | (CSRSWriteM & (CSRAdrM == SCAUSE));
 | 
				
			||||||
  assign WriteSTVALM      = STrapM | (CSRSWriteM & (CSRAdrM == STVAL));
 | 
					  assign WriteSTVALM      = STrapM | (CSRSWriteM & (CSRAdrM == STVAL));
 | 
				
			||||||
  // assign WriteSATPM       = CSRSWriteM & (CSRAdrM == SATP) & (PrivilegeModeW == P.M_MODE | ~STATUS_TVM);
 | 
					  if(P.XLEN == 64) assign WriteSATPM       = CSRSWriteM & (CSRAdrM == SATP) & (PrivilegeModeW == P.M_MODE | ~STATUS_TVM) & (CSRWriteValM[63:60] != 4'hA);
 | 
				
			||||||
  assign WriteSATPM       = CSRSWriteM & (CSRAdrM == SATP) & (PrivilegeModeW == P.M_MODE | ~STATUS_TVM) & (CSRWriteValM[63:60] != 4'hA);
 | 
					  else assign WriteSATPM       = CSRSWriteM & (CSRAdrM == SATP) & (PrivilegeModeW == P.M_MODE | ~STATUS_TVM);
 | 
				
			||||||
  assign WriteSCOUNTERENM = CSRSWriteM & (CSRAdrM == SCOUNTEREN);
 | 
					  assign WriteSCOUNTERENM = CSRSWriteM & (CSRAdrM == SCOUNTEREN);
 | 
				
			||||||
  assign WriteSENVCFGM    = CSRSWriteM & (CSRAdrM == SENVCFG);
 | 
					  assign WriteSENVCFGM    = CSRSWriteM & (CSRAdrM == SENVCFG);
 | 
				
			||||||
  assign WriteSTIMECMPM   = CSRSWriteM & (CSRAdrM == STIMECMP) & STCE;
 | 
					  assign WriteSTIMECMPM   = CSRSWriteM & (CSRAdrM == STIMECMP) & STCE;
 | 
				
			||||||
 | 
				
			|||||||
@ -153,7 +153,7 @@ module testbench;
 | 
				
			|||||||
  `define SSCRATCH    `CSR_BASE.csrs.csrs.SSCRATCHreg.q
 | 
					  `define SSCRATCH    `CSR_BASE.csrs.csrs.SSCRATCHreg.q
 | 
				
			||||||
  `define MTVEC       `CSR_BASE.csrm.MTVECreg.q
 | 
					  `define MTVEC       `CSR_BASE.csrm.MTVECreg.q
 | 
				
			||||||
  `define STVEC       `CSR_BASE.csrs.csrs.STVECreg.q
 | 
					  `define STVEC       `CSR_BASE.csrs.csrs.STVECreg.q
 | 
				
			||||||
  `define SATP        `CSR_BASE.csrs.csrs.genblk1.SATPreg.q
 | 
					  `define SATP        `CSR_BASE.csrs.csrs.genblk2.SATPreg.q
 | 
				
			||||||
  `define INSTRET     `CSR_BASE.counters.counters.HPMCOUNTER_REGW[2]
 | 
					  `define INSTRET     `CSR_BASE.counters.counters.HPMCOUNTER_REGW[2]
 | 
				
			||||||
  `define MSTATUS     `CSR_BASE.csrsr.MSTATUS_REGW
 | 
					  `define MSTATUS     `CSR_BASE.csrsr.MSTATUS_REGW
 | 
				
			||||||
  `define SSTATUS     `CSR_BASE.csrsr.SSTATUS_REGW  
 | 
					  `define SSTATUS     `CSR_BASE.csrsr.SSTATUS_REGW  
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user