mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Updating changes to fctrl.sv to reach 100% coverage. Excluding un-used sources of instructions for the ifu.
This commit is contained in:
		
							parent
							
								
									6f308e85ed
								
							
						
					
					
						commit
						1dab409bae
					
				@ -47,3 +47,17 @@ coverage exclude -srcfile lzc.sv
 | 
			
		||||
# StallFCause is hardwired to 0
 | 
			
		||||
#coverage exclude -togglenode /dut/core/hzu/StallFCause
 | 
			
		||||
 | 
			
		||||
# Excluding peripherals as sources of instructions for the ifu
 | 
			
		||||
coverage exclude -scope /dut/core/ifu/immu/immu/pmachecker/adrdecs/clintdec
 | 
			
		||||
coverage exclude -scope /dut/core/ifu/immu/immu/pmachecker/adrdecs/gpiodec
 | 
			
		||||
coverage exclude -scope /dut/core/ifu/immu/immu/pmachecker/adrdecs/uartdec
 | 
			
		||||
coverage exclude -scope /dut/core/ifu/immu/immu/pmachecker/adrdecs/plicdec
 | 
			
		||||
 | 
			
		||||
coverage exclude -scope /dut/core/ifu/immu/immu/pmachecker/adrdecs/bootromdec
 | 
			
		||||
coverage exclude -scope /dut/core/ifu/immu/immu/pmachecker/adrdecs/uncoreramdec
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#Excluding the bootrom, uncoreran, and clint as sources for the lsu
 | 
			
		||||
coverage exclude -scope /dut/core/lsu/dmmu/dmmu/pmachecker/adrdecs/bootromdec
 | 
			
		||||
#set line [GetLineNum ../src/mmu/adrdec.sv "& SizeValid"]
 | 
			
		||||
#coverage exclude -scope /dut/core/lsu/dmmu/dmmu/pmachecker/adrdecs/clintdec -linerange $line-$line -item e 1 -fecexprrow 5
 | 
			
		||||
 | 
			
		||||
@ -242,11 +242,13 @@ module fctrl (
 | 
			
		||||
  
 | 
			
		||||
  //    X - all except int->fp, store, load, mv int->fp
 | 
			
		||||
  assign XEnD = ~(((FResSelD==2'b10)&~FWriteIntD)|                                                 // load/store
 | 
			
		||||
                  // ((FResSelD==2'b11)&FRegWriteD)|                                                  // mv int to float
 | 
			
		||||
                  ((FResSelD==2'b00)&FRegWriteD&(OpCtrlD==3'b011))|                             // mv int to float - There was an issue here, this condition was not refering to mv int -> fp  // ((FResSelD==2'b11)&FRegWriteD)|
 | 
			
		||||
                  ((FResSelD==2'b01)&(PostProcSelD==2'b00)&OpCtrlD[2]));                           // cvt int to float
 | 
			
		||||
 | 
			
		||||
  //    Y - all except cvt, mv, load, class, sqrt
 | 
			
		||||
  assign YEnD = ~(((FResSelD==2'b10)&(FWriteIntD|FRegWriteD))|                                     // load or class                                                             // mv both ways
 | 
			
		||||
  assign YEnD = ~(((FResSelD==2'b10)&(FWriteIntD|FRegWriteD))|                                     // load or class 
 | 
			
		||||
                  ((FResSelD==2'b00)&FRegWriteD&(OpCtrlD==3'b011))|                                // mv int to float as above // previously mv both ways - Another issue here, previously (FResSelD==2'b11)| does not cover mv both way int-> fp and fp-> int
 | 
			
		||||
                  ((FResSelD==2'b11)&(PostProcSelD==2'b00))|                                    // mv float to int                   // mv both ways
 | 
			
		||||
                  ((FResSelD==2'b01)&((PostProcSelD==2'b00)|((PostProcSelD==2'b01)&OpCtrlD[0])))); // cvt both or sqrt
 | 
			
		||||
 | 
			
		||||
                  // Removed (FResSelD==2'b11)| removed to avoid redundancy 
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user