I am trying to write constraint for overlapping sequence detector, let’s say pattern is 101101. How can I cover all overlapping cases. This case is bit simpler, there may more complex pattern that I may not be able write constraints for all overlapping patterns. How to write a constraint in such a way that I should be able cover correct patterns, invalid patterns, overlapping patterns etc., overlapping patterns are 10101101,10110101101
My understanding:
class seq_item;
rand bit data;
bit [5:0] pattern = 6'b101101;
constraint pat{ data dist{0:=33, 1:=67};}
constraint c2{foreach(pattern[i]){
soft data == pattern[i];
}
}
endclass
I understanding, I am not covering all cases including overlapping. How to write constriant covering all cases?