mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			26 lines
		
	
	
		
			702 B
		
	
	
	
		
			Systemverilog
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			702 B
		
	
	
	
		
			Systemverilog
		
	
	
	
	
	
typedef RISCV_instruction #(ILEN, XLEN, FLEN, VLEN, NHART, RETIRE) test_ins_rv64i_t;
 | 
						|
 | 
						|
covergroup test_fencei_cg with function sample(test_ins_rv64i_t ins);
 | 
						|
    option.per_instance = 1; 
 | 
						|
    option.comment = "Fence.I";
 | 
						|
  
 | 
						|
    cp_asm_count : coverpoint ins.ins_str == "fence.i"  iff (ins.trap == 0 )  {
 | 
						|
        option.comment = "Number of times instruction is executed";
 | 
						|
        bins count[]  = {1};
 | 
						|
    }
 | 
						|
endgroup
 | 
						|
 | 
						|
function void test_fencei_sample(int hart, int issue);
 | 
						|
    test_ins_rv64i_t ins;
 | 
						|
 | 
						|
    case (traceDataQ[hart][issue][0].inst_name)
 | 
						|
        "fenci"     : begin 
 | 
						|
            ins = new(hart, issue, traceDataQ); 
 | 
						|
            test_fencei_cg.sample(ins); 
 | 
						|
        end
 | 
						|
    endcase
 | 
						|
 | 
						|
endfunction
 | 
						|
 | 
						|
 |