From d2c3c8591e341a93d397a86438614f7061967800 Mon Sep 17 00:00:00 2001 From: Greg Chadwick Date: Mon, 5 Feb 2024 14:51:56 +0000 Subject: [PATCH] [fcov] Fix illegal bins related to stall types An instruction stall on a FENCE.I had been mistakenly placed in an illegal bin. A FENCE.I acts much like a branch or jump so can produce instruction stalls just as those instructions can. --- dv/uvm/core_ibex/fcov/core_ibex_fcov_if.sv | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dv/uvm/core_ibex/fcov/core_ibex_fcov_if.sv b/dv/uvm/core_ibex/fcov/core_ibex_fcov_if.sv index 1ef6a5e085..9d3d83dff0 100644 --- a/dv/uvm/core_ibex/fcov/core_ibex_fcov_if.sv +++ b/dv/uvm/core_ibex/fcov/core_ibex_fcov_if.sv @@ -656,7 +656,8 @@ interface core_ibex_fcov_if import ibex_pkg::*; ( illegal_bins illegal = // Only Div, Mul, Branch and Jump instructions can see an instruction stall (!binsof(cp_id_instr_category) intersect {InstrCategoryDiv, InstrCategoryMul, - InstrCategoryBranch, InstrCategoryJump} && + InstrCategoryBranch, InstrCategoryJump, + InstrCategoryFenceI} && binsof(cp_stall_type_id) intersect {IdStallTypeInstr}) || // Only ALU, Mul, Div, Branch, Jump, Load, Store and CSR Access can see a load hazard stall @@ -701,7 +702,8 @@ interface core_ibex_fcov_if import ibex_pkg::*; ( illegal_bins illegal = // Only Div, Mul, Branch and Jump instructions can see an instruction stall (!binsof(cp_id_instr_category) intersect {InstrCategoryDiv, InstrCategoryMul, - InstrCategoryBranch, InstrCategoryJump} && + InstrCategoryBranch, InstrCategoryJump, + InstrCategoryFenceI} && binsof(cp_stall_type_id) intersect {IdStallTypeInstr}) || // Only ALU, Mul, Div, Branch, Jump, Load, Store and CSR Access can see a load hazard stall